Guide · 7 min read
App Review Prompt Timing: When to Ask for a Rating (and When to Never Ask)
Apple gives you three chances per year to ask users for a review — three `SKStoreReviewController` calls that the system will actually show. If you burn those three on the wrong moments, you collect mediocre ratings from disengaged users and have nothing left for the people who love your app. Timing isn't a minor UX detail. It's the whole variable. Here's the framework that makes each of those three shots count.
App review prompt limit: 3 per year per app, enforced by iOS
Apple caps `SKStoreReviewController` at three displayed prompts per user per 365-day period. You can call `requestReview()` as many times as you want in code — the system simply ignores calls beyond the cap. There is no error thrown, no feedback that the prompt was suppressed. Your app fires the call, nothing happens, and the opportunity is gone.
This limit is not documented prominently but is observable in behavior and confirmed in Apple developer forums. It changes the calculus entirely: you are not deciding "when is a good time to ask." You are deciding which three moments are worth spending. Apps that treat the prompt as something to trigger frequently, hoping for volume, are optimizing for the wrong metric — they exhaust their cap on low-goodwill moments and have no shots left when users are genuinely delighted.
The cap also means A/B testing prompt timing using production calls is impractical — you would exhaust user caps in the process. Test your logic in development, where `requestReview()` always shows regardless of cap, and ship with confidence rather than treating live users as your experiment subjects.
The success-moment rule: ask immediately after the user wins, not randomly
The highest-converting prompt timing is immediately after a discrete success — a task marked complete, a workout logged, a budget balanced, a document exported, a level cleared. Not after the session ends. Not at app launch. Immediately after the win, while the dopamine of completion is still active and the user's relationship with your app is at a local peak.
The mechanism is straightforward: at the moment of success, the user has just received value from your app. The emotional state is positive. A review prompt at that moment is asking "was this useful?" at the exact instant the answer is most likely to be yes. A prompt at launch is asking the same question when the user hasn't yet done anything — the answer is neutral at best, annoyed at worst.
Define "success" precisely for your app type. For a habit tracker, it's streak completion. For a finance app, it's a first budget saved or a bill paid on time. For a photo editor, it's the export. For a meditation app, it's session completion, not session start. Every app has a moment where the transaction with the user is complete and they've received what they came for. That is the only moment worth spending a review call on.
The three moments to never trigger a review prompt
First launch or onboarding. This is the most common mistake and the most damaging. The user has not yet experienced anything. They cannot honestly say the app is good because they don't know yet. The ratings you collect here skew toward the people who install enthusiastically and rate immediately — a population that over-represents curious early installers and under-represents actual users. Prompting during onboarding is trading long-term rating quality for short-term volume, and the trade is always bad.
After an error, a crash recovery, a failed operation, or a support ticket submission. The user's emotional state is negative. Even users who are generally satisfied with your app will rate lower when asked immediately after friction. Apple's own guidelines explicitly call this out. If your app crashed and just re-launched, or if a network call failed and the user hit an error state, suppress the prompt call entirely — you'll get another turn.
Mid-task interruption. Asking for a review while the user is in the middle of doing something is the clearest possible signal that your prompt logic is disconnected from actual app usage. A writing app that prompts mid-document, a navigation app that prompts mid-route, a game that prompts mid-level — these feel broken. The user is in flow and you are pulling them out to do you a favor. The answer will be dismissal if they're polite, one star if they're not.
Session depth threshold: wait for the user who is actually retained
A second timing layer beyond success-moment is session depth. The user who has completed their third session is categorically more valuable as a reviewer than the user completing their first. They are retained, they have formed a habit with your app, and their rating reflects actual sustained experience — not first impressions. First-session ratings are noisier, less predictive of quality, and more likely to be negative simply because new users encounter onboarding friction.
A reasonable threshold that most apps can implement without heavy analytics: require at least three distinct app sessions before the review prompt is eligible to fire, in addition to the success-moment trigger. A user must have both experienced a success moment AND been in the app at least three times. This filters out the install-and-immediately-rate population and targets the people with real opinions.
For subscription apps, an even more specific threshold works well: first renewal. A user who renewed their subscription has voted with their wallet that your app is worth keeping. That is the strongest possible endorsement state, and asking for a written review at that moment captures the sentiment that just converted into cash. The pricing screen conversion guide covers what brings users to that renewal moment.
iOS 26.5 beta regression: what changed for SKStoreReviewController in debug builds
As of iOS 26.5 beta (build 23F5043k), `SKStoreReviewController.requestReviewInScene()` no longer displays the review prompt in debug or development builds — a regression from iOS 26.4 and earlier where debug builds always showed the prompt regardless of cap, making testing straightforward. Apple developer forums flagged this in June 2026 and it remains unresolved at the time of writing.
The practical impact: if you are testing your review prompt logic on iOS 26.5 beta devices, the prompt will silently not appear in development builds. This can be mistaken for a code bug when the issue is the beta OS. Workarounds currently circulating include testing on a device running iOS 26.4 or earlier, or using a scheme flag to mock prompt confirmation without relying on the system UI. Watch the Apple developer forums thread for status — if this ships in the final iOS 26.5 release, Apple will likely fix it quickly given the number of devs flagging it.
The broader lesson: never use live production users to test prompt timing logic. Development mode has always been the right place to verify that your trigger fires at the right event. This regression makes that even more important to do on a stable OS version, not a beta.
Sentiment gating: the pre-question that filters your star distribution
Sentiment gating is a technique where you ask a binary pre-question before invoking `requestReview()`: "Are you enjoying [App Name]?" or "Is [App Name] helping you?" Users who answer yes get the system review prompt. Users who answer no get routed to in-app feedback or a support link instead.
The effect is significant: you expose the official review prompt only to users who have already self-identified as satisfied. Dissatisfied users get a path to give you feedback privately rather than publicly in the App Store. The resulting rating distribution shifts upward because you are no longer sampling from the full sentiment population — you are sampling from the satisfied subset.
Apple's guidelines prohibit "incentivizing" users to leave positive reviews (discounts, in-app currency, content unlocks). But sentiment gating — simply routing users based on stated satisfaction before showing the prompt — is not prohibited. The important line not to cross: do not promise anything in exchange for a rating, and do not suppress the review UI for users who say yes but then rate you one star. The purpose of gating is to time the ask intelligently, not to manufacture a false distribution. The App Store listing editor can help you preview how your star count appears in your listing once reviews start accumulating.
Response strategy: why replying to reviews is now a ranking signal worth taking seriously
App Store Connect allows developer responses to reviews. Apps that respond to reviews — especially to critical ones — exhibit better sustained ratings over time than apps that do not. The mechanism is partly behavioral (users who see a response to their complaint sometimes update their rating) and partly reputational (potential users reading reviews see that the developer is engaged, which increases trust and install confidence).
The response strategy that works: reply to every 1-star and 2-star review within 48 hours. Acknowledge the specific complaint. State what changed or what you are investigating. Do not be defensive. For 5-star reviews, a short acknowledgment keeps the relationship warm and signals to readers that the developer is present. For 3-star reviews, prioritize the ones with specific actionable complaints — users who take time to write detail are telling you what would move their rating up.
At scale, response time is the bottleneck. If your app crosses a threshold where review volume outpaces your response capacity, prioritize by recency (fresh reviews are still indexed prominently) and by rating (negative reviews have asymmetric impact on browse conversion). The full review ethics guide covers what you can and cannot do when soliciting and responding to ratings.
Three prompts a year: make each one count
The apps with the best rating distributions are not the ones that ask most aggressively — they are the ones that ask at the exact moment the user's goodwill peaks. Success moment, sufficient session depth, no recent friction. That is the whole framework.
Your App Store listing is the context where those ratings land. A 4.8 rating looks different depending on how polished the rest of the listing is around it. Once your review timing is dialed in, AppsTemple's editor lets you preview exactly how your icon, screenshots, and star rating appear together in the App Store browse view.
Preview your App Store listing in the editor →
Frequently asked questions
how many times can an app ask for a review on ios
Apple's SKStoreReviewController limits displayed prompts to 3 per app per user per 365-day period. You can call requestReview() more often in code, but the system silently suppresses calls beyond the cap — no error is thrown. Plan your three prompts carefully: each one is a finite resource.
when is the best time to ask for an app review
Immediately after a discrete success moment — task completion, workout logged, document exported, level cleared. The user has just received value from your app and their sentiment is at a local peak. Avoid asking on first launch, during onboarding, mid-task, or after any error or friction event.
what is sentiment gating for app reviews
Sentiment gating is a pre-question technique: ask 'Are you enjoying [App Name]?' before showing the system review prompt. Users who answer yes see the official SKStoreReviewController prompt. Users who answer no are routed to in-app feedback or a support channel instead. The effect is that your App Store reviews reflect your satisfied users rather than a random sample. Apple permits this as long as you don't offer incentives for positive reviews.
does responding to app store reviews help your rating
Yes, in two ways. First, users who receive a developer response to a negative review sometimes update their rating — particularly when the complaint was acknowledged and a fix was shipped. Second, potential users reading reviews see developer engagement as a trust signal that increases install confidence. Apple's App Store Connect allows developer responses. Responding to 1- and 2-star reviews within 48 hours is the highest-leverage use of the tool.
skstorereviewcontroller not showing in ios 26 beta
There is a confirmed regression in iOS 26.5 beta (build 23F5043k) where SKStoreReviewController.requestReviewInScene() does not display the prompt in debug or development builds — behavior that worked correctly in iOS 26.4 and earlier. This is a beta-only issue flagged in Apple developer forums. Test your prompt logic on a device running a stable iOS release, or wait for the fix in a subsequent beta build.