Sync reviews
Reviews sync as part of the daily pipeline, which starts atCRON_DAILY and defaults to 03:00 UTC. Each review is stored once, keyed by the app and the store review id, so re running a sync does not duplicate rows.
A reviewer on Google Play can edit a review after it was posted, and the store keeps the same review id. The daily sync takes the newer score, title, text, version and date of an edited review it already stored, and sends no alert for it. When the store also shows a developer reply that is older than the edit, the review is Updated after reply, described under Reply to reviews.
A Google Play review can carry a star rating and no text. It is stored like any other review, shows as “No written review” on the reviews page, counts in the star filters and the negative review totals, and sends a review.negative alert that reads “no written review” when its rating is at or below ALERT_REVIEW_SCORE_MAX. A review whose text is only white space is shown the same way. It contributes nothing to the keyword ideas mined from review text.
Review sync stays on the home market, like category ranks and the ratings history. See Countries and markets.
Stored reviews are listed on the app’s reviews page, filtered by star, version, period and reply state, sorted, searched, and exported to CSV. The period filter keeps the reviews written in the last 30, 90 or 180 days, the same windows as the ratings chart, so it answers what came in since a release. The version filter lists the newest version first and compares the numbers in each version, so 3.123.0 ranks above 3.95.0 and 450.0.0.24.77 above 6.12.2. See Export reviews to CSV.
See what people mention
Above the list, What people mention shows the phrases that stand out in two rows. Complaints come up mostly in reviews at or belowALERT_REVIEW_SCORE_MAX stars, such as server problem or credit card. Praise comes up mostly in the other reviews. A phrase that reviews of every rating use is neither, so it is not shown. The strip shows up to six complaints and four praise phrases, the strongest first, and is hidden when nothing stands out.
Each phrase is compared with the newest 500 reviews in the version and period filters, so the strip still names complaints when the star filter keeps only one star reviews. When most of those reviews are high rated, a complaint has to stand out clearly against them, while a phrase counts as praise as soon as it leans as positive as they do. When most are low rated, the roles swap, so a bad release still lists its complaints. The number on a phrase counts the first 200 reviews that match every filter in the list’s order, the same reviews a search reaches, and a phrase needs at least two of them. Pressing a phrase searches the list for it in quotes, so the list holds the reviews the number counted, and pressing it again clears the search.
A phrase holds up to four words and never starts or ends with the app’s own name, a word such as app, good, love, use or time, or a function word of the review’s language, so a Spanish review in a United States storefront adds no que. asobeast skips the function words of English and of the 15 languages listed under How are auto tracked keywords chosen?, so a review in another language, such as Russian, keeps its function words as phrases. When a longer phrase covers most mentions of a shorter one, only the longer is shown, so encountered a fatal error replaces fatal error. The phrases come from the same extraction as the keyword ideas described under Mine reviews for keyword ideas. No AI is involved and no store request is made.
Reply to reviews
Every review on the reviews page has a Reply button that opens a composer under it. Write the reply yourself or, withOPENAI_API_KEY set, press Draft with AI. With the store connected under Store connections, press Post to App Store or Post to Google Play to send it, as described under Post a reply. Without a connection, press Copy, open the store console with the link beside it, paste the reply there and press Mark as replied. What a draft sends and what it costs is on Enable the optional AI features.
The text is saved on the review as you leave the field and whenever you press a button, so a reload or a teammate sees the same draft and a draft is never paid for twice. Emptying the field does not remove a saved reply, because an empty text is never saved, and the composer says so under the counter. Discard removes the text and the replied mark. The counter under the text measures it against the store’s limit without the spaces and line breaks around it, which are not saved or copied, so a reply pasted with a trailing line break still fits, and the buttons wait until the text fits. The limits and the two sources of a replied review are explained once, under Developer replies.
Each review shows one of four states. Needs reply has no reply anywhere, Draft saved has a reply kept here that is not marked, and Replied is a reply the store shows, a reply posted from asobeast or a review you marked. The badge says which: Pending publication, Posted or Edited since posting for a reply posted from asobeast, Replied on Google Play for a reply Google Play shows, or Marked replied. Updated after reply is a Google Play review the reviewer edited after the developer reply the store shows, often with a new rating, so it is worth reading again. That state appears in the counts and the filter only while a review is in it. The counts at the top of the list filter it by state, and pressing Needs reply also sorts the lowest scores first, because a reply queue is worked worst first. The toolbar sorts the newest or the lowest scores first and searches the titles, texts, authors and replies of the reviews loaded on the page. A search in quotes, such as "dark mode", matches whole words in a single sentence of the title or of the text, the way a phrase is counted, so "update" leaves out updated and a reply that mentions an update. Emoji are searched as written, so 🎉 lists the reviews that hold it and 🎉🎉 the ones with two in a row, while punctuation such as (*) is ignored and lists every review. The page loads 50 reviews, and Show all or a search raises that to 200.
Post a reply
With the store connected, the composer’s main button is Post to App Store or Post to Google Play. It saves the text first, then asks you to confirm: the dialog shows the exact text and the store’s rules. A reply is public under the review, a review has one reply, and a reply must not ask for a rating or offer anything in return. Only a click posts, and only through a signed in session, so a personal API token or an agent never posts. Members can post as well as the owner. Once the store accepts the reply, the review counts as replied everywhere: the badge, the counts and the filter read it at once, and the Action Center on its next run. On the App Store the badge reads Pending publication, because Apple publishes a response within 24 hours. On Google Play it reads Posted, and the next daily sync reads the same reply back from the store. Editing a posted reply shows Edited since posting and turns the button into Update on App Store or Update on Google Play. Posting again replaces the reply on the store. On the App Store, Withdraw from App Store deletes the response after a confirmation and keeps the text here, and Discard appears again once the response is withdrawn, so a live response is never left without a way to remove it. Google’s API offers no way to remove a reply, so remove it in Play Console if you need to. Mark as replied without posting stays for a reply you sent another way. The App Store review feed and App Store Connect name a review differently, so the first post of an App Store reply looks the review up in App Store Connect by its storefront, rating, title, text and author, and remembers what it found for every later post and the withdraw. A key that may not reply is named on the composer and on the connection card, with the role or permission it needs.Translate a review
With AI configured, a review written in a language other than your browser’s shows Translate next to its author. Pressing it spends one AI call and shows the title and text in your language with the language it was translated from. Show original and Show translation switch back and forth without another call, because the translation is kept on the review, so a reload or a teammate who reads the same language sees it for free. Translating into another language replaces the kept translation, and a reviewer’s edit clears it. A translation that adds a link or an address the review does not contain is refused, and the call stays counted. asobeast guesses the language of a review from its words and script, and falls back to the storefront’s language when a review is too short to tell. What a translation sends is on Enable the optional AI features.Reply guidelines
With AI configured, the Reply guidelines button on the toolbar keeps up to 1,000 characters for the app: who signs, the support address, what never to promise. Every draft for the app follows them.What a draft does
A draft is written in the review’s language, addresses the reviewer by name when there is one and stays on the one thing the review says. It never asks for a better rating, never promotes, and names a link or an address only when your guidelines or your instruction contain it; asobeast checks the draft for that and refuses one that adds any other, which still counts as a call. The text of the review is handed to the model as data, so a review that tries to give the model instructions does not steer the draft. It suggests updating only when the review was left on an older version than the listing shows, and describes a fix only when the release notes say so. Pick a tone, friendly, neutral or formal, and add a one line instruction for this review if you want to steer it. A draft that would run past the store’s limit is shortened on a sentence boundary and the composer says so. The Action Center’s unanswered reviews action opens this page filtered to the reviews that need a reply, lowest first. See Work the Action Center.Read the ratings history
The ratings chart tracks the average rating and the rating count over time, taken from each snapshot rather than recomputed from individual reviews. It is the fastest way to see whether a release damaged your rating, and it feeds the ratings factor of the audit. See Run an ASO audit.Compare ratings across markets
The ratings history above is the home storefront’s. To see how the same App Store app is rated elsewhere, open the app overview: Ratings by market lists every market where asobeast has captured the app’s listing, which is every market where you track a keyword. See Countries and markets. Each row shows the storefront, the average rating with a grade word, the number of ratings and the UTC day of the listing the numbers come from. The home market comes first and the others follow by number of ratings. The market chosen in the Market switcher is marked Selected. The last row averages the listed markets weighted by their number of ratings, so a storefront with 24,000 ratings counts far more than one with 12. It covers only the markets listed, never every storefront, and each market was captured on its own day, so read it as a summary and not as a store figure. A market with no rating yet shows a dash and No rating yet. The card reads the daily run and makes no store request, so a newly tracked market appears after its first listing is captured. An app with a single market shows a note instead of a table, and Google Play apps have no card, because Google Play reports one number of ratings for the whole store page in every country, so the markets could not be compared or weighted by it.Mine reviews for keyword ideas
asobeast extracts repeated phrases from review text and offers them as keyword suggestions, alongside store suggest and competitor derived ideas. Adding one tracks it like any other keyword. A phrase is one to three words from a single sentence of the title or of the text, never both. It never starts or ends with a stopword, a function word of the storefront’s languages, which skips a few more words in reviews than in listings, or a filler such asjust, please, now or also, so crashes on launch is offered and to use or the driver is not. A contraction reads as the word it contracts, so don't and it's add nothing on their own, and a version number such as 0.78.8 separates words rather than becoming one. The same phrases feed the review theme of the ASO audit and the review theme actions.
These ideas are worth a look because they are phrased the way users search rather than the way you describe your own product.
Watch for a growing theme
A phrase becomes an action item when it appears in at least 3 negative reviews of the latest version and at least twice as often as it did in the previous version’s reviews. The rule needs at least 5 reviews on the version before it will fire, so a single angry review is never enough. The action resolves when the version is superseded without the theme recurring, or when mentions fall below the minimum. At most 3 review themes open per app per run. See Work the Action Center.Alert on negative reviews
ALERT_REVIEW_SCORE_MAX sets the highest star rating treated as negative. It defaults to 2 and accepts 1 to 4, so the default fires on one and two star reviews.
Subscribe a webhook or an email channel to review.negative to receive them. See Send alerts. To receive every review, or only chosen stars, subscribe to review.new instead; see Choose the stars of new reviews.
The review backfill queued at import, described in Import an app, stores its reviews without sending alerts, so an import does not alert on reviews that were already on the store. Every later sync alerts for each new review at or below ALERT_REVIEW_SCORE_MAX, so when the backfill comes back empty, the first daily sync that finds reviews alerts on them.
The dashboard’s new low ratings and the weekly digest’s negative review count answer a different question. They count reviews at or below ALERT_REVIEW_SCORE_MAX that were written in the window, using the date the store gives each review, so reviews stored by the backfill count only when they were written that week. A review with no store date counts from the day asobeast stored it.
Troubleshooting
- No reviews appear. The store returns reviews for the home storefront, and a new or low volume app may genuinely have none in the window the store exposes.
- The rating count moves without new reviews. Ratings and reviews are different things. Users can rate without writing.
- A theme did not fire. Check that the version has at least 5 reviews and that the phrase reached 3 negative mentions with twice the previous version’s rate.
- Translate is missing. No
OPENAI_API_KEYis set, or the review is already in your browser’s language. A kept translation still shows without a key. - A review moved to Updated after reply. The reviewer edited it on Google Play after the developer reply. Read it again and update the reply in Play Console if needed.
- Draft with AI is missing. No
OPENAI_API_KEYis set. With the monthly AI allowance spent the button stays but is disabled until the 1st. - The badge says replied but I never replied here. Google Play shows a reply someone posted in Play Console, and asobeast reads it with the next daily sync.
- The post says the review was not found in App Store Connect. The public feed and App Store Connect can disagree for a few days after a review is written or edited. Try again later, or post it in App Store Connect and press Mark as replied without posting.
- The post says the key cannot respond to reviews. The connected App Store Connect key needs the Admin or Customer Support role, and a Google Play service account or Google account needs Reply to reviews in Play Console. A Google sign in also needs to have allowed Play Console access; sign in with Google again to allow it.
- The post says the Google Play Android Developer API is not enabled. Google refused the reply because the API is off in the Google Cloud project behind the connection: the OAuth client’s project for a Google sign in, the service account’s project for a key. Enable the API in the project the message names, wait a few minutes and post again. Reconnecting does not help, and the connection keeps its reply access. See Use a service account key.
- Withdraw is missing on a Google Play reply. Google’s API offers no way to remove a reply. Edit it here and post again, or remove it in Play Console.
- Drafting fails with “added a link or an address”. The model put a link or an email address in the draft that your guidelines do not contain. Draft again, or add the address to the guidelines if it is yours.
- My reply is cut. It ran past the store’s limit. Shorten it or edit it before you copy it.
- I cleared the reply and it came back after a reload. Emptying the field saves nothing, so the saved reply stays. Press Discard to remove the text and the replied mark.
- A review has stars and no text. Google Play lets users rate without writing, and a few old reviews on the store carry only the rating. They are kept so the star counts stay right.
Related
Track keywords
Turn a mined phrase into a tracked keyword.
Send alerts
Get told about a negative review the day it lands.