Get more app ratings: SKStoreReviewController and Play In-App Review rules
Español · Deutsch · Polski · Français
Both stores give you a system rating prompt and both limit how often it can appear. Here is how each one works and what the rules forbid.
iOS: use the system prompt
SKStoreReviewControlleris deprecated as of iOS 18. Apple points toAppStore.requestReview(in:)in UIKit andRequestReviewActionin SwiftUI (StoreKit: SKStoreReviewController (deprecated)).- The system shows the prompt at most three times in a 365-day period for a user who hasn't rated. If the user has already rated the app, it appears again only for a new app version and after more than 365 days (StoreKit: RequestReviewAction).
- Don't request a review in response to a button tap: the system may not show the prompt. For a permanent "Write a review" link, open your App Store URL with
action=write-review(StoreKit: RequestReviewAction). - Users can turn off rating prompts for all apps (Human Interface Guidelines: Ratings and reviews).
- Guideline 5.6.1: use Apple's API to prompt for ratings; custom review prompts are not allowed (App Store Review Guidelines (5.6.1, 5.6.3, 5.6.4)).
import StoreKit
import SwiftUI
struct DoneView: View {
@Environment(\.requestReview) private var requestReview
var body: some View {
Text("Export finished")
.task { requestReview() } // after a completed task, never from a button
}
}
Android: Google Play In-App Review API
- Works on Android 5.0 (API level 21) or higher with the Google Play Store installed, and on ChromeOS devices with the Play Store (Android Developers: Google Play In-App Review API).
- Trigger it after the user has used your app enough to give useful feedback, and don't prompt excessively (Android Developers: Google Play In-App Review API).
- Don't ask any questions before or while showing the card, such as "Do you like the app?" or "Would you rate this app 5 stars?". Don't change or overlay the card (Android Developers: Google Play In-App Review API).
- Google enforces a time-bound quota and doesn't publish its value; calling the API more than once in a short period (for example, less than a month) may not show a dialog. Don't use it behind a call-to-action button; link to the Play Store listing instead (Android Developers: Google Play In-App Review API).
val manager = ReviewManagerFactory.create(context)
manager.requestReviewFlow().addOnCompleteListener { task ->
if (task.isSuccessful) {
manager.launchReviewFlow(activity, task.result)
.addOnCompleteListener { /* continue the app flow either way */ }
}
}
What both stores forbid
- Google Play: no incentives for ratings or reviews, no fake or paid ratings, and no forced rating pop-ups (Play Console Help: Ratings, Reviews, and Installs policy).
- Apple, Guideline 5.6.3 (Discovery Fraud): manipulating any element of the App Store customer experience, such as charts, search, reviews or referrals, is not permitted (App Store Review Guidelines (5.6.1, 5.6.3, 5.6.4)).
Why it matters
Apple says ratings and reviews influence how your app ranks in search (Apple Developer: Creating your product page). Google Play's rating is weighted towards recent ratings (Play Console Help: View and analyze your app's ratings and reviews).
Timing is the other half: see When to ask for app reviews.
Sources
- StoreKit: SKStoreReviewController (deprecated)
- StoreKit: RequestReviewAction
- Human Interface Guidelines: Ratings and reviews
- App Store Review Guidelines (5.6.1, 5.6.3, 5.6.4)
- Android Developers: Google Play In-App Review API
- Play Console Help: Ratings, Reviews, and Installs policy
- Apple Developer: Creating your product page
- Play Console Help: View and analyze your app's ratings and reviews
Related guides
- When to ask for app reviews: rating prompt timing rules
- How to reset your iOS app rating on a new release
- ASO from app reviews: turn user words into keywords and copy
- All app developer guides
Questions
How many times can I show the iOS rating prompt?
Apple shows the system prompt at most three times in a 365-day period for a user who hasn't rated the app.
Is SKStoreReviewController deprecated?
Yes, as of iOS 18. Apple recommends AppStore.requestReview(in:) or SwiftUI's RequestReviewAction.
Can I ask "Do you like the app?" before the Google Play review card?
No. Google's guidelines say not to ask any questions before or while presenting the in-app review card.
Can I give rewards for ratings?
No. Google Play prohibits incentivised ratings and reviews, and Apple's guideline 5.6.3 prohibits manipulating reviews.