Prompting for app reviews and ratings on iOS and Android

The ultimate guide on libraries, when to prompt and much more

We are often asked about prompting for reviews and ratings for mobile apps. Google and Apple are both very open about the importance of reviews and ratings to the success of a mobile app and how they are a significant signal for ranking algorithms.

The following is our advice after talking to thousands of mobile app developers on the best techniques for prompting for reviews and ratings on iOS and Android.

When to prompt

Apple share some great tips on when to prompt for reviews and ratings.

Specifically:

Prompting on iOS

Apple strongly encourage you to use their method of prompting for reviews and ratings. In my experience it’s extremely effective so I would recommend going with their library.

Their library SKStoreReviewController is very simple to use.

SKStoreReviewController.requestReview()

One thing to keep in mind is the prompt can only displayed to a user a maximum of three times within a 365-day period. That means that it might not be shown every time you request it to be shown.

Apple have an excellent example of not showing the prompt until the user is really engaged.

I like to hand craft when the rating prompt will be shown, but if you’d like something that wraps up much of the functionality for you then I recommend checking out Appirater.

If you’d like to add a button to ask for a review (say on your Settings screen) then Apple provide a way to deep link:

      @IBAction func requestReviewManually() {
          // Note: Replace the XXXXXXXXXX below with the App Store ID for your app
          //       You can find the App Store ID in your app's product URL
          guard let writeReviewURL = URL(string: "https://apps.apple.com/app/idXXXXXXXXXX?action=write-review")
              else { fatalError("Expected a valid URL") }
          UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil)
      }
Example iOS Prompt

Prompting on Android

Android has recently introduced a native prompt as well.

Android also limit the number of times the prompt can be shown, but they aren't specific around what the limits are.

The API is very simple to use and there is great sample code for a variety of languages.

val manager = ReviewManagerFactory.create(context)
      val request = manager.requestReviewFlow()
      request.addOnCompleteListener { request ->
          if (request.isSuccessful) {
              // We got the ReviewInfo object
              val reviewInfo = request.result
          } else {
              // There was some problem, continue regardless of the result.
          }
      }
      val flow = manager.launchReviewFlow(activity, reviewInfo)
      flow.addOnCompleteListener { _ ->
          // The flow has finished. The API does not indicate whether the user
          // reviewed or not, or even whether the review dialog was shown. Thus, no
          // matter the result, we continue our app flow.
      }
Example Android Prompt - developer.android.com/guide/playcore/in-app-review

Conclusion

It's been widely proven that prompting for reviews and ratings on Android and iOS is extremely effective. With such easy and efficient libraries provided by the major platforms there is no excuse to delay adding in a prompt.



About The Author

Stuart is Co-founder & Co-CEO of Appbot - App review & ratings analysis for mobile teams. You can connect with him on Twitter.