rating-prompt-strategy
Rating Prompt Strategy
You optimize when, how, and to whom an app shows review prompts — maximizing high ratings while minimizing negative ones. Ratings are an App Store ranking signal and a conversion factor on the product page.
Why Ratings Matter for ASO
- Search ranking — Apps with higher ratings rank better for competitive keywords
- Conversion — Rating stars are visible in search results; a 4.8 beats 4.2 at a glance
- iOS: Rating resets per version (you can request a reset in App Store Connect)
- Android: Ratings are permanent and cumulative — one bad period is hard to recover
The Core Rule
Only prompt users who have experienced value. Prompting too early produces low ratings. Prompting at a success moment produces 4–5 star ratings.
iOS — SKStoreReviewRequest
Apple's native prompt. Rules:
- Shows at most 3 times per year regardless of how many times you call it
- Apple controls the display logic — calling it doesn't guarantee it shows
- Never prompt after an error, crash, or frustrating moment
- Cannot customize the prompt UI
import StoreKit
// Call at the right moment
if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
SKStoreReviewController.requestReview(in: scene)
}
Android — Play In-App Review API
Google's native prompt. Rules:
- No hard limits, but Google throttles it if called too often
- Show after a clear positive moment
- Cannot determine if the user actually rated (privacy)
val manager = ReviewManagerFactory.create(context)
val request = manager.requestReviewFlow()
request.addOnCompleteListener { task ->
if (task.isSuccessful) {
val reviewInfo = task.result
val flow = manager.launchReviewFlow(activity, reviewInfo)
flow.addOnCompleteListener { /* proceed */ }
}
}
Timing Framework
The Success Moment Trigger
Define 1–3 "success moments" in your app where users are most satisfied:
| App Type | Good Prompt Moments | Bad Prompt Moments |
|---|---|---|
| Fitness | After completing a workout | After skipping a session |
| Productivity | After completing a project/task | After a failed save or sync error |
| Games | After winning a level or beating a boss | After losing or failing |
| Finance | After first successful transaction | After a confusing error |
| Meditation | After completing a session | On cold open |
| Shopping | After a successful purchase/delivery | After a failed checkout |
Session-Based Rules
Only prompt users who meet all criteria:
Criteria to prompt:
✓ Sessions >= 3 (not a first-time user)
✓ Time since install >= 3 days
✓ Has completed [activation event] at least once
✓ No crash in last session
✓ No negative signal (error, cancellation) in current session
✓ Not already rated this version
Pre-Prompt Survey (Recommended)
Before triggering the native prompt, show a single in-app question:
"Are you enjoying [App Name]?"
[Yes, love it!] [Not really]
- "Yes" → trigger
SKStoreReviewRequest/ Play In-App Review - "Not really" → show a feedback form (email or in-app), do not trigger the native prompt
This filters out dissatisfied users before they can rate you 1–2 stars.
Expected improvement: 0.3–0.8 stars on average with a pre-prompt filter.
Version-Gating (iOS)
iOS allows you to reset ratings per version in App Store Connect. Use this strategically:
- Reset after a major improvement — If you fixed the top-complained issues
- Do not reset after a controversial change that users disliked
- After a reset, run an aggressive (but filtered) prompt campaign in the first 7 days
- Target your most engaged users first (longest session history)
Recovering from a Rating Drop
Diagnosis
- Check which version caused the drop — correlate with release dates
- Read the 1-star reviews for that period — find the common complaint
- Fix the issue in the next release
- Reply to every 1–3 star review (see
review-managementskill)
Recovery Campaign
After the fix is shipped:
- Reply to negative reviews: "Fixed in version X.X — please update and let us know"
- Some users will update their rating after a reply
- Run a prompt campaign targeted at your most loyal users (highest session count)
- Do not prompt users who left a negative review
Timeline
Day 0: Issue identified — hotfix or patch in progress
Day 1–3: Reply to every negative review acknowledging the issue
Day 7: Fix shipped — reply to previous negative reviews "Fixed in X.X"
Day 8+: Enable prompt for sessions >= 5, no crash last 7 days
Week 3: Monitor rating trend — should recover 0.2–0.5 stars in 2–4 weeks
Prompt Frequency
| Platform | Maximum | Recommended |
|---|---|---|
| iOS | 3× per 365 days (Apple-enforced) | 1–2× per version |
| Android | No hard limit (Google throttles) | 1× per 30 days per user |
Never show the prompt twice in the same session.
Output Format
Rating Strategy Plan
Current rating: [X.X] ★ ([N] ratings)
Platform: iOS / Android / Both
Success moments identified:
1. [Event name] — fires when [condition]
2. [Event name] — fires when [condition]
Pre-prompt survey: Yes / No
If yes: "Are you enjoying [App Name]?" → Yes / Not really
Prompt trigger logic:
Sessions >= [N]
Days since install >= [N]
No crash in last [N] sessions
[Activation event] completed: yes
Already rated this version: no
Expected outcome: +[X] stars over [N] weeks
Recovery plan (if rating < 4.0):
1. [Fix] — ship by [date]
2. [Reply strategy] — [N] reviews to address
3. [Prompt campaign] — start [date], target [segment]
Related Skills
review-management— Respond to reviews to recover ratingonboarding-optimization— Fix activation issues that drive 1-star reviewsandroid-aso— Play In-App Review API contextretention-optimization— Engaged users give better ratings
More from eronred/aso-skills
aso-audit
When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
1.5Kmonetization-strategy
When the user wants to design or optimize their app's monetization — pricing, paywalls, subscriptions, or in-app purchases. Also use when the user mentions "pricing", "paywall", "subscription", "IAP", "how to monetize", "revenue optimization", "free trial", or "conversion to paid". For retention impact, see retention-optimization. For competitive pricing, see competitor-analysis.
1.4Kkeyword-research
When the user wants to discover, evaluate, or prioritize App Store keywords. Also use when the user mentions "keyword research", "find keywords", "search volume", "keyword difficulty", "keyword ideas", or "what keywords should I target". For implementing keywords into metadata, see metadata-optimization. For auditing current keyword performance, see aso-audit.
1.3Kmetadata-optimization
When the user wants to optimize App Store metadata — title, subtitle, keyword field, or description. Also use when the user mentions "optimize my title", "ASO metadata", "keyword field", "character limits", "app description", or "write my subtitle". For keyword discovery, see keyword-research. For full ASO audits, see aso-audit.
1.3Kcompetitor-analysis
When the user wants to analyze competitors' App Store strategy, find keyword gaps, or understand competitive positioning. Also use when the user mentions "competitor analysis", "competitive research", "keyword gap", "what are my competitors doing", or "compare my app to". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
1.2Kscreenshot-optimization
When the user wants to design, optimize, or evaluate App Store screenshots and preview videos. Also use when the user mentions "screenshots", "app preview", "product page design", "screenshot design", "creative assets", or "what should my screenshots show". For A/B testing screenshots, see ab-test-store-listing. For full ASO audit, see aso-audit.
1.2K