In-app ratings & reviews 10.3

Google Play’s In-App Review API allows you to request ratings/reviews from users without them having to leave your app. Those reviews will be submitted directly to your app’s Play Store listing.

The in-app review flow can be triggered at any time in your app’s user journey. During that flow, the user can rate your app 1–5 stars and leave an optional comment (review).

Google have strict guidelines that your app must follow to prevent abuse of this API, which you can read about in the Guidelines section below.

In-app review flow (credit to developer.android.com)

Implementation

Step 1: Add the dependency to your build.gradle (:app) file.

If you already have the Play Core dependency, make sure it’s v1.8.0 or above. This contains the In-App Review Library.

dependencies {

// This dependency is downloaded from Google's Maven repository.  
// Make sure you also include that repository in your project's build.gradle file.  
implementation 'com.google.android.play:core:1.10.3'  
}

Otherwise, you can just add the In-App Review Library by itself.

dependencies {

// This dependency is downloaded from Google’s Maven repository.  
// Make sure you also include that repository in your project's build.gradle file.  
implementation 'com.google.android.play:review:2.0.1'  
}

Step 2: Add this Activity extension function

fun Activity.launchInAppReview(

onComplete: (() -> Unit)? = null,  
) {
val reviewManager = ReviewManagerFactory.create(this)  
val request = reviewManager.requestReviewFlow()  
request.addOnCompleteListener { task ->  
    if (task.isSuccessful) {  
        val reviewInfo = task.result  
        val flow = reviewManager.launchReviewFlow(this, reviewInfo)  
        flow.addOnCompleteListener {  
            // The flow has finished. The API doesn't indicate whether the user  
            // reviewed or not, or even whether the review dialog was shown.  
            // Therefore, no matter the result, continue with your app's flow.  
            onComplete?.invoke()  
        }  
    } else {  
        // Log or handle error if you want to  
        onComplete?.invoke()  
    }  
}  
}

onComplete is an optional method that you can invoke once the in-app review flow is completed.

Step 3: Call launchInAppReview

Call the extension function at a suitable point in your user flow.

A good example would be when a user completes a level in your game. You can then launch the next level from the flow.addOnCompleteListener block.

Important note: It’s not guaranteed that the user will be shown the in-app review card. However, the flow.addOnCompleteListener block will be called regardless of whether the in-app review card is shown.

Guidelines for In-App Review usage

When to request an in-app review

  1. Once the user has spent enough time on your app to provide useful feedback
  2. You should not ask the user any leading questions before making a request to the In-App Review API e.g. “Do you enjoy using this app?”
  3. Do not use a call-to-action (e.g. a button) to make a request to the In-App Review API. It’s not guaranteed that the in-app review card will be displayed, and your button will look broken.

Violating point 2 could lead to your app being removed from the Play Store.

Regarding point 3, if you want to add a button that asks the user to rate your app, that button should send the user to your Play Store listing instead of calling the In-App Review API.

Google’s design guidelines

  1. Do not attempt to alter the design of the in-app review card (e.g. by changing its size, shape, or colour scheme)
  2. Don’t try to show any view over the in-app review card, or next to it
  3. Once the in-app review card is displayed, don’t try to remove it programmatically

Quota for how often the in-app review card can be displayed

To stop the In-App Review API from being abused, Google Play enforce a time-based quota on how often you can show the in-app review card to a given user.

If you try to call launchInAppReview more than once in a short time period, Google probably won’t display the card more than once.

Google have not revealed what that time-based quota is, but a good estimate is that you can show a given user the in-app review card once per month.

Testing

If you’d like to test your In-App Review implementation, you can follow these instructions on the Android Developer site.

More info

If you want more information on the In-App Review API, for example terms of service or data safety, please check out the Android Developer documentation.

This article describes approaches and implications for using Braze to ask users to review your app. For tips on how to make an effective app rating campaign, check out The Do’s and Don’ts of Customer App Ratings.

Apple offers a native prompt, introduced with iOS 10.3, that lets users rate apps from within the app itself. If you want to request app ratings from users using an in-app message on iOS, you must use the native prompt, as Apple disallows custom review prompts (see , section 5.6.1).

Per Apple guidelines, app review prompts can be displayed to a user up to three times a year, so any app review campaigns should take advantage of rate limiting. Users can also opt-out of seeing app review prompts entirely in their app settings. For more on App Store ratings, refer to Apple’s article on Ratings, Reviews, and Responses.

Using Braze to ask users for app reviews

While Apple requires you to use the native prompt, you can still take advantage of Braze campaigns to ask users to rate and review your app at the right moment. There are two main approaches you can take.

Approach 1: Deep linking to the App Store

With this approach, you want to encourage users to visit the App Store to add a review. To do so, create an in-app message campaign that deep links to the App Store.

In-app ratings & reviews 10.3

Approach 2: Soft priming

If you don’t want users to leave your app, you can first prime users with a separate in-app message. Priming is a way of asking users for permission before you send them the native App Store review prompt. To do so, create an in-app message campaign and add a custom deep link that calls the requestReview method when clicked.

For detailed steps, refer to Custom App Store review prompt.

In-app ratings & reviews 10.3

Users will submit a rating through the native App Store review prompt, and can write and submit a review without leaving the app.

Considerations

As an alternative to soft priming, you could also display the iOS app rating prompt directly without any Braze soft primer message displayed before. The advantage of this is if the user is opted-out of app review prompts, there wouldn’t be the suboptimal user experience of trying to rate the application but no prompt appearing to do so.

What is rating in app?

App rating is a score assigned to a mobile application, based on user feedback and reviews, to indicate its overall quality and user satisfaction. The rating ranges from one to five stars, with five being the highest rating.

Where can I see my app ratings?

For tips on analyzing your reviews, visit the Android Developers site. To see top trends and issues for your app, open Play Console and go to the Reviews analysis page. The following features are available on the web version of Play Console.

What is considered a good app rating?

What is a good app rating? Ideally, an app with four stars and above is considered good. Apptentive conducted a study of 1,000 iOS and Android apps and found the following: The average iOS app has a 4.53-star review with an average of 455 App Store reviews.

How to calculate app rating?

For example, if an app has received 10 ratings - four 5-star ratings, three 4-star ratings, two 3-star ratings, and one 2-star rating - the app's overall rating would be calculated as follows: (4x5 + 3x4 + 2x3 + 1x2) / 10 = 3.8 stars.