PluginBench
Skill
Pass
Audit score 90

rating-prompt-strategy

appeeky/aso-skills

Optimize when and how your app prompts for reviews to maximize ratings while filtering out dissatisfied users.

What is rating-prompt-strategy?

This skill helps you improve your app's star rating by strategically timing review prompts at moments of user success and filtering out unhappy users before they rate. Use it when you want to increase ratings volume, recover from a rating drop, or optimize your review-prompt strategy on iOS (SKStoreReviewRequest) or Android (Play In-App Review API).

  • Define success moments in your app where users are most satisfied and likely to rate highly
  • Implement pre-prompt surveys to filter out dissatisfied users before triggering native review prompts
  • Apply session-based criteria (minimum sessions, days since install, no crashes) to target only engaged users
  • Reset ratings per version on iOS and run targeted prompt campaigns after major fixes
  • Diagnose rating drops by correlating with release dates and reading negative reviews, then execute recovery campaigns

How to install rating-prompt-strategy

npx skills add https://github.com/appeeky/aso-skills --skill rating-prompt-strategy
Claude Code
Cursor
Windsurf
Cline

How to use rating-prompt-strategy

  1. 1.Identify 1–3 success moments in your app where users experience clear value (e.g., completing a workout, finishing a task, winning a level)
  2. 2.Implement a pre-prompt survey asking "Are you enjoying [App Name]?" that routes yes-responses to the native prompt and no-responses to feedback forms
  3. 3.Set up session-based trigger criteria: minimum 3 sessions, 3+ days since install, activation event completed, no crash in last session, not already rated this version
  4. 4.On iOS, call SKStoreReviewController.requestReview() at the success moment; on Android, use ReviewManagerFactory.create() and launchReviewFlow()
  5. 5.Monitor your rating trend weekly and adjust prompt frequency (1–2× per version on iOS, 1× per 30 days per user on Android)
  6. 6.If rating drops below 4.0, diagnose the issue from negative reviews, ship a fix, reply to every 1–3 star review, then run a recovery prompt campaign targeting your most engaged users

Use cases

Good for
  • Recover from a 1-star rating period by fixing the root issue, replying to negative reviews, and running a filtered prompt campaign to engaged users
  • Increase ratings volume on a fitness app by prompting users immediately after they complete a workout (success moment)
  • Implement a pre-prompt survey on a productivity app to ask "Are you enjoying [App]?" and only show the native prompt to users who answer yes
  • Reset ratings on iOS after shipping a major bug fix and run an aggressive prompt campaign in the first 7 days targeting your most loyal users
  • Prevent low ratings on a shopping app by never prompting after a failed checkout, only after successful purchases and deliveries
Who it's for
  • iOS and Android app developers seeking to improve App Store ratings
  • Product managers optimizing for search ranking and conversion on app store product pages
  • Growth teams recovering from rating drops or bad review periods
  • Teams building fitness, productivity, games, finance, meditation, or shopping apps

rating-prompt-strategy FAQ

Why should I use a pre-prompt survey instead of just showing the native prompt?

Pre-prompt surveys filter out dissatisfied users before they can rate you 1–2 stars. Users who answer "not really" are routed to feedback forms instead of the native prompt, improving your average rating by 0.3–0.8 stars.

What's the difference between iOS and Android rating limits?

iOS limits native prompts to 3 times per 365 days (Apple-enforced) and resets ratings per version. Android has no hard limit but Google throttles excessive calls, and ratings are permanent and cumulative across all versions.

How do I recover from a bad rating period?

Diagnose the issue from 1-star reviews, ship a fix, reply to negative reviews saying "Fixed in version X.X — please update," then run a prompt campaign targeting your most loyal users (highest session count) for 2–4 weeks.

When should I reset ratings on iOS?

Reset ratings after a major improvement that fixes top-complained issues. Do not reset after a controversial change. After resetting, run an aggressive filtered prompt campaign in the first 7 days targeting your most engaged users.

Can I customize the native review prompt UI?

No. iOS's SKStoreReviewRequest and Android's Play In-App Review API are controlled by Apple and Google respectively. You can only control when you trigger them and use a pre-prompt survey to filter users.

Full instructions (SKILL.md)

Source of truth, from appeeky/aso-skills.


name: rating-prompt-strategy description: When the user wants to improve their app's star rating, increase ratings volume, optimize when and how they prompt users for a review, or recover from a bad rating period. Use when the user mentions "app rating", "star rating", "review prompt", "SKStoreReviewRequest", "In-App Review API", "ask for review", "low rating", "rating drop", "get more reviews", or "recover from 1-star". For responding to reviews, see review-management. For overall ASO health, see aso-audit. metadata: version: 1.0.0

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 TypeGood Prompt MomentsBad Prompt Moments
FitnessAfter completing a workoutAfter skipping a session
ProductivityAfter completing a project/taskAfter a failed save or sync error
GamesAfter winning a level or beating a bossAfter losing or failing
FinanceAfter first successful transactionAfter a confusing error
MeditationAfter completing a sessionOn cold open
ShoppingAfter a successful purchase/deliveryAfter 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

  1. Check which version caused the drop — correlate with release dates
  2. Read the 1-star reviews for that period — find the common complaint
  3. Fix the issue in the next release
  4. Reply to every 1–3 star review (see review-management skill)

Recovery Campaign

After the fix is shipped:

  1. Reply to negative reviews: "Fixed in version X.X — please update and let us know"
  2. Some users will update their rating after a reply
  3. Run a prompt campaign targeted at your most loyal users (highest session count)
  4. 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

PlatformMaximumRecommended
iOS3× per 365 days (Apple-enforced)1–2× per version
AndroidNo 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 rating
  • onboarding-optimization — Fix activation issues that drive 1-star reviews
  • android-aso — Play In-App Review API context
  • retention-optimization — Engaged users give better ratings