You need ratings to rank. But users hate being nagged. This is the central tension every app developer faces - and most handle it poorly. They either never ask for reviews (and wonder why their rating is 3.2) or bombard users on first launch (and collect angry 1-star reviews).
This guide covers everything in one place: how to implement review prompts correctly with actual code, when to show them for maximum impact, how long the App Store review process takes, and how to use expedited reviews when things go wrong. No other guide connects all four topics - or shows how ratings directly affect your ASO rankings.
Q:How long does App Store review take?
A: Most App Store reviews complete within 24 hours, often under 12 hours. For critical bugs, Apple offers expedited reviews that can be approved in as little as 30 minutes. Review times have improved significantly in recent years - developers report consistent sub-24-hour turnarounds in 2026.
- 1.Standard review: typically 12-24 hours (down from 2-3 days historically)
- 2.Expedited review: 30 minutes to a few hours for critical issues
- 3.Ratings above 4.0 are the minimum threshold for competitive ASO rankings
- 4.SKStoreReviewController is limited to 3 prompts per app per year
- 5.Pre-prompt filtering can increase your effective rating by 0.5-1.0 stars
How App Store ratings impact your ASO rankings
Ratings are the most underrated ASO lever - and the one you have the most direct control over. Apple's algorithm weighs ratings heavily when deciding which apps to show in search results. A jump from 3.5 to 4.5 stars can meaningfully change your visibility.
The feedback loop is simple: higher ratings lead to better search rankings, which lead to more downloads, which lead to more ratings. The hard part is getting the loop started. That's where review prompts come in.
Apps below 4.0 stars are effectively invisible in competitive categories. Users scroll past them. Apple deprioritizes them in search. If your app is sitting at 3.5 stars, fixing your review strategy is the highest-ROI thing you can do for growth - more impactful than any keyword optimization.
Implementing review prompts with SKStoreReviewController
Apple provides SKStoreReviewController as the official way to request reviews. It shows a native popup that lets users rate your app from 1-5 stars and optionally write a review - all without leaving your app.
SwiftUI implementation
In SwiftUI, you use the requestReview environment action. This is the cleanest approach for modern iOS apps:
import SwiftUI
import StoreKit
struct ContentView: View {
@Environment(\.requestReview) var requestReview
var body: some View {
Button("Rate this app") {
requestReview()
}
}
}UIKit implementation
For UIKit apps, call the class method directly. You need a reference to the current window scene:
import StoreKit
func requestAppReview() {
guard let scene = UIApplication.shared
.connectedScenes
.first(where: { $0.activationState == .foregroundActive })
as? UIWindowScene
else { return }
SKStoreReviewController.requestReview(in: scene)
}โ ๏ธ Apple's 3-per-year limit
Apple throttles SKStoreReviewController to approximately 3 prompts per app per 365-day period. After that, the system silently ignores your requestReview() calls. You cannot check how many prompts remain. This makes timing critical - you only get 3 shots per year to ask each user for a review.
Important: requestReview() is a request, not a guarantee. Apple may choose not to show the prompt based on frequency limits, system conditions, or other factors. In development builds, the prompt always appears for testing. In production, Apple controls the actual display logic.
Import StoreKit
Add import StoreKit to any file where you want to trigger the review prompt. Works in both SwiftUI and UIKit.
Choose your trigger point
Pick a moment after a positive user action - not on app launch. After completing a task, achieving a milestone, or finishing a successful flow.
Call requestReview()
In SwiftUI, use the @Environment action. In UIKit, call SKStoreReviewController.requestReview(in: windowScene). The system handles the UI.
Test in development
The prompt always shows in debug builds. To test production behavior, use TestFlight - it simulates the real throttling behavior.
Basic review prompt implementation flow
When to show the review prompt (timing strategies)
The biggest mistake developers make is showing the review prompt at the wrong time. Prompt on first launch and you'll get 1-star reviews from users who haven't even tried your app. Prompt after a crash and you'll get exactly the rating you deserve.
Professional approach to timing review prompts
โAt a few companies I've worked at I've implemented an 'engagement manager' in the app. We would pick points in the user experience where the user has just finished a 'positive flow'. For instance if they have just successfully bought an item in an e-commerce app.โView on Reddit
The "positive flow" approach is the gold standard. Identify moments where the user just accomplished something meaningful in your app, and trigger the prompt there. The user is already feeling good about your app - that's when you ask.
| Strategy | How it works | Best for | Risk level |
|---|---|---|---|
| After positive flow | Prompt after task completion, purchase, or achievement | E-commerce, productivity, games | Low |
| Session count filter | Only prompt users who opened the app 3+ times | All app types | Low |
| Time-based delay | Wait 7-14 days after install before first prompt | Subscription apps, utilities | Low |
| Milestone trigger | Prompt after user hits a usage milestone (10 photos, 5 workouts) | Content creation, fitness, habit apps | Very low |
| On app launch | Show immediately when app opens | Nothing - don't do this | High |
Timing strategies ranked by effectiveness
The 3+ sessions rule for filtering negative reviews
โI have my prompts just set up to only prompt once the user has opened the app like 3 times or more. You'll filter out 95% of negative reviews if you hold off asking until they're using your app repeatedly.โView on Reddit
The session count filter is the easiest to implement and surprisingly effective. If someone has opened your app 3 or more times, they probably don't hate it. Combine this with a positive flow trigger for even better results.
The pre-prompt pattern: should you filter before showing the native prompt?
Many apps show their own custom dialog first - "Are you enjoying this app?" - before triggering the native SKStoreReviewController prompt. If the user says yes, show the native prompt. If they say no, redirect them to a feedback form instead. This is the "pre-prompt pattern" and it's genuinely controversial.
Why apps use the two-step pre-prompt approach
โTons of apps do this, including Reddit so I assume it must work. The biggest reasons are measurement and getting to show the prompt as often as you want since Apple will throttle to 3 times in the year or something like that.โView on Reddit
Pre-prompt pattern: the debate
Pros
- โLets you measure prompt impressions (native prompt doesn't report this)
- โFilters unhappy users away from the native prompt
- โBypasses Apple's 3-per-year limit for your own dialog
- โRedirects negative feedback to a private channel instead of a public 1-star review
- โUsed by Reddit, Spotify, and most major apps
Cons
- โSome users find it manipulative and give 1-star reviews specifically because of it
- โApple could scrutinize apps that gate the native prompt behind a satisfaction check
- โAdds friction - an extra tap before the user can actually leave a review
- โCreates a selection bias in your public ratings (only happy users leave reviews)
The case for asking directly
โI believe in showing the prompt. Humans are funny like that. If you don't ask you don't get. That's why literally every YT video has 'don't forget like and subscribe!' Because it works.โView on Reddit
The verdict: the pre-prompt pattern works, but use it ethically. If you redirect unhappy users to a feedback form, actually read and act on that feedback. The pattern becomes manipulative when you use it solely to suppress negative reviews without addressing the underlying issues.
How long does App Store review take in 2026?
The App Store review process has gotten dramatically faster over the past few years. What used to take 2-3 days now typically completes in under 24 hours - sometimes in just a few hours.
Developer experience with improving review times
โI find even their normal review process has gotten faster than it used to be in the last year or so, normally less than 24 hours for us now. Used to take 2-3 days.โView on Reddit
Several factors can affect your review duration. Updates to existing apps typically review faster than brand new submissions. Apps using newer APIs and frameworks tend to pass faster. Apps that have been flagged or rejected before may get extra scrutiny.
The "In Review" status in App Store Connect means a reviewer is actively looking at your app. Most developers see this status change to "Ready for Distribution" within a few hours. If you've been in review for more than 48 hours with no response, something may be wrong - consider reaching out to Apple or submitting an expedited review request.
How to request an expedited App Store review
When your production app has a critical bug, a security vulnerability, or a compliance deadline, you can request an expedited review. This is one of the best features Apple offers developers - and most don't know it exists.
Developer praising expedited reviews
โYep, saved my ass multiple times. This is a part of App Store that works really well!โView on Reddit
Submit your update through App Store Connect
Upload your build and submit it for review as normal. You need an active submission before you can request an expedited review.
Go to the Contact Us page
Visit Apple's developer Contact Us page at developer.apple.com/contact. Sign in with your developer account.
Select 'App Review' then 'Request Expedited Review'
Navigate through the category menu: App Store and Distribution > App Review > Request Expedited Review.
Explain the critical issue clearly
Be specific and concise. Describe the exact bug, the user impact, and why it's urgent. 'Critical crash on launch after Core Data migration' works. 'Please review faster' doesn't.
Submit and wait
Apple typically responds to expedited requests within 30 minutes to a few hours. You'll receive an email confirmation when the request is acknowledged.
Steps to request an expedited App Store review
Real-world emergency that justified an expedited review
โI recently created a new version of my app where I needed to migrate the Core Data schema. It worked when I tested it but when I released the app, a few users had to wait for a minute and then the app would crash on the launch screen because it was killed by the system.โView on Reddit
๐ซ Don't abuse expedited reviews
Apple tracks expedited review requests. If you use them for non-critical issues or submit them too frequently, Apple may start denying your requests. Reserve expedited reviews for genuine emergencies: crashes, security vulnerabilities, legal compliance issues, or time-sensitive events. Feature updates and minor bug fixes should go through the normal review process.
Google Play in-app reviews: how it differs from iOS
Google Play offers its own In-App Review API that works similarly to Apple's SKStoreReviewController but with some key differences. If you're building for both platforms, you need to understand these distinctions.
| Feature | iOS (App Store) | Android (Google Play) |
|---|---|---|
| API | SKStoreReviewController | ReviewManager (Play Core Library) |
| Yearly limit | ~3 prompts per year | Quota managed by Google (no fixed number) |
| User can write review? | Yes, in the native prompt | Yes, in the native flow |
| Leaves the app? | No - shows inline popup | No - shows bottom sheet |
| Can detect if user reviewed? | No | No (review flow completes silently) |
| Pre-prompt filtering | Common but controversial | Same pattern applies |
| Review process time | Typically < 24 hours | Usually a few hours to 3 days |
| Expedited review | Yes - via Contact Us form | No equivalent process |
iOS vs Android review prompt comparison
The biggest difference: Google doesn't offer expedited reviews. If you ship a broken update on Android, you're waiting for the standard review process. This makes pre-release testing even more critical for Android apps. Use staged rollouts (starting at 1-5% of users) to catch crashes before they reach your full user base.
Measuring your review strategy's impact on rankings
Implementing review prompts is only half the equation. You need to measure whether your strategy is actually working - both in terms of rating improvements and the downstream effect on your keyword rankings.
Track three metrics after implementing your review prompt strategy: your average rating over time, the volume of new reviews per week, and your search ranking position for target keywords. The correlation between rating improvements and ranking gains is real - but it takes 2-4 weeks to show up in search results.
Track how ratings affect your keyword rankings
ASO Maniac's rank tracking lets you monitor how rating improvements translate into keyword ranking gains. Set up tracking for your target keywords, implement your review prompt strategy, and watch the correlation over time. Combine with keyword research to identify which rankings benefit most from rating improvements.
The data from the Reddit community confirms this works. One developer shared their experience of watching their rating climb from 3.79 after implementing SKStoreReviewController with proper timing. The key insight: the rating improvement alone wasn't the win. The win was the compound effect on search visibility and organic downloads that followed.
For more on how app discoverability channels work together, check our full guide on the 8 channels most developers ignore.
Your review strategy checklist
Ratings are the most underrated ASO lever - and the one you have the most direct control over. Here's everything from this guide condensed into an actionable checklist:
โ App Store review strategy checklist
Complete these steps to maximize your app's rating and ASO impact
Implement SKStoreReviewController (SwiftUI or UIKit)
Use the environment action in SwiftUI or class method in UIKit
Set up session count filtering (3+ sessions minimum)
Filter out users who haven't used your app enough to give a fair review
Trigger prompts after positive flows, not on launch
After purchases, task completion, achievements, or milestones
Consider pre-prompt filtering for rating optimization
Use ethically - redirect unhappy users to feedback, not a dead end
Know how to request an expedited review for emergencies
Via developer.apple.com/contact - keep descriptions clear and specific
Track rating changes alongside keyword ranking movements
Use ASO Maniac to monitor how rating gains translate to ranking gains
Implement Google Play In-App Review API for Android builds
Similar flow but no expedited review option - use staged rollouts instead
Test review prompts in TestFlight (not just debug builds)
Debug builds always show the prompt - TestFlight simulates real throttling
The developers who get the best ratings aren't the ones with the best apps. They're the ones who ask for reviews at the right time, from the right users, in the right way. Implement these strategies and your rating will follow.
