Engineering

Improve iOS App Ratings with SKStoreReviewController

Starting with iOS 10.3, Apple has made significant changes to its app rating and review functionality, including adding a new API to manage and streamline user rating requests.

The SKStoreReviewController API, carries the big benefit of letting users leave a rating without leaving your app – reducing friction and (in theory) leading to more ratings.

Using the API is dead simple, in Swift:

import StoreKit

and then

SKStoreReviewController.requestReview()

Here’s what the displayed rating dialog looks like:

 

But there are some things to keep in mind:

  1. You should only call requestReview when it makes sense in the user experience flow of your app, and then only after the user has demonstrated engagement.
  2. You have no control over exactly when and if the user sees the rating dialog, that is determined entirely by the system.
  3. Because the system may or may not show a ratings prompt, it’s not appropriate to call the API in response to a button tap or other user action.
  4. No matter how many times you call the API, the system will only show up to a maximum of 3 prompts to the same user in a 365-day period.
  5. And remember, the App Store defaults to showing ratings and reviews only for your app’s most recent version.

With these caveats in mind, some strategy is in order.

For one, you want to identify users likely to give you a good rating (reduced friction cuts both ways!), so its important to choose and track a meaningful engagement metrics to trigger your API call.

Moreover, because the App Store defaults to showing only ratings for your latest app version, consider limiting ratings requests to a once-per-user-per-app-version cycle (or rationing rating requests across different cohorts of users if you find yourself updating your app more than 3 times per year).

To get you started, here’s an Improve your app user ratings and review project that implements the SKStoreReviewController API, along with a simple demo engagement tracking trigger and an app version request limit.

We’ve seen promising results using this approach, with a 50% increase in 5-star ratings in our implementation, so give it a try!

  • hemendra619

    Does this rating only for ios 11 or from ios 10.3 ?

    • Peter Wilkniss

      the discussion is re iOS 10.3, although the API’s discussed look unchanged in the current iOS 11 beta.

,

4000

55 billion

1 billion

10 billion