SKStoreReviewController: The New Review Prompt for iOS

In iOS 10.3, Apple introduced the SKStoreReviewController, a new standardized way to prompt users to review apps. It’s critical to accumulate as many positive App Store reviews as possible in order to drive future downloads. That’s why developers shouldn’t take review prompts lightly.   Apple’s new prompt is different from what you’ve used in the past, and since developers are no longer allowed to implement custom ratings prompts, it’s important to understand how to use SKStoreReviewController for maximum effect.

The Code

For starters, you need a little code to show the prompt. Here’s the Objective-C approach.

if ([SKStoreReviewController class]) {
[SKStoreReviewController requestReview];

The class is brand new, so first we have to check if the user’s operating system can handle it. Then, we fire off the review request. That’s it! If you’re using Swift, the code looks like this.

if #available( iOS 10.3,*) {

For either of these approaches, make sure to import StoreKit. If you fire up in a blank app, it looks like this.

SKStoreReviewController Request

What’s Different

The most exciting reason to implement the SKStoreReviewController prompts is that users can leave a rating without leaving your app. Previously, you had to redirect users to the App Store to leave a review. That’s a much more cumbersome experience, because few users want to leave the game. Consequently, the conversion rate on getting users to leave a review when prompted should increase dramatically.

Moreover, there is a good chance that these incremental ratings will trend to the higher side. The users who were motivated to quit playing the app and leave a review are often the ones having a negative experience. Now you can collect ratings from users who are having too much fun to leave the app!

While conversions will go up, the number of prompts will go down. The new requestReview method doesn’t guarantee that the user will even see a prompt. In fact, you can only show a user three prompts per year! On the whole, this will be a major improvement for users who are tired of apps bombarding them with review requests. If the user didn’t review the app after the third request, they probably weren’t going to anyway, so this shouldn’t be a tremendous loss for developers. Just make sure to use your requests wisely. If you’ve developed a game, try throwing a review prompt after the user has beaten a level or done something else rewarding. You’ll have a better conversion rate. Also, don’t hook up the requestReview method to a button in your interface. Since the method doesn’t guarantee the prompt to appear, you don’t want a user tapping away at a button with nothing happening!

Finally, Apple added an option under Settings that allows users to disable all SKStoreReviewController prompts. Many users will certainly go this route, but these are likely the same users that wouldn’t have reviewed your app anyway. Nevertheless, this will have negative impact on the number of reviews you could have potentially accumulated under the new system.


On the whole, the new system is a big win for users. It prevents developers from displaying users with too many review requests without giving them a way to turn off the prompts. The ability to rate without exiting the app is sure to improve conversion rates, which will help developers out too.

This will bring an end to some of the elaborate custom solutions of the past. Some developers had grown fond of asking users if they were enjoying the app before directing happy users to the App Store to leave a review and directing unhappy users to an email address to leave a complaint. That kept some of the negative reviews out of the App Store. I’m sure these developers are sad to see Apple do away with this. Nevertheless, forcing everyone onto a standard system improves the integrity of App Store ratings, so I’m for it!