How to add Android In-App Review API — and improve your Google Play ratings

by: | Apr 1, 2021

Like most people, one of the most important criteria I use when choosing an app to install is the app store rating. Both the Apple App Store and the Google Play store provide a 1- to 5-star rating scheme. If an app has high ratings, I’m more likely to give it a try.

In our experience, more users proactively go to the app store to give a rating when something negative happens. Over time, this skews ratings lower and leads to negative review bias.

That’s why we recommend our clients implement in-app review features. This best practice allows app users to provide ratings quickly and easily, without having to leave the app and go to the app store. More importantly, we can choose the right time to prompt the user for a rating — presumably when they have just had a great experience. We call these “lovable moments” (more on these later) and they are key to our philosophy of creating lovable products.

Both Apple and Google now offer in-app rating APIs. Android app developers use the In-App Review API in the Play Core library, and iOS app developers use the Store Review controller.

This post provides step-by-step instructions to implement the Google Play In-App Review API for Android apps. We also share how this helped 3M improve its Android app store ratings.

How the Android In-App Review API works

The Android In-App Review API uses native UI elements to prompt users to rate or review an app. Users select their rating, add an optional comment, and tap “Submit.” All of this happens without ever leaving the app.

Android In-App Review Example

Android In-App Review example. (source: Google)

How to implement the Android In-App Review API

Here are step-by-step instructions to add the Google Play In-App Review API to your Android app. You can implement the API in either Java or Kotlin. The examples below are in Kotlin (preferred by the ArcTouch Android app development team).

Step 1: Determine when to ask for an in-app rating

As I wrote earlier, one of the main advantages of in-app rating APIs is that you can control when to ask for the rating. Like most things, the best time to ask someone for something is when they’re most likely to respond the way you want. When it comes to app ratings, we want 5 stars. Anything less is a miss. The best time to ask for a rating is when they have the most positive feelings about your app and have successfully experienced your app’s primary purpose. If your app is transactional, it’s when they’ve completed a transaction. If your app is content-based, it’s when they’ve viewed content that they enjoyed. These “lovable moments” are times when the emotional connection is high, the user is very engaged, and they can provide meaningful feedback about the app. Every app is different. If you need help identifying the “lovable moments” in your app, please feel free to contact us.

Here are some other in-app ratings best practices we recommend:

  • Don’t interrupt a user in the middle of a task. Wait until they’ve completed the app’s primary task and reached that lovable moment.
  • Don’t prompt for ratings too early. Users need time to establish a solid connection to your app before they can provide meaningful feedback.
  • Don’t do it too frequently. Since users can choose to skip providing a rating, you will want to prompt them again later. But don’t ask again too soon or too often, since it frustrates users and can lead to a poor rating. To protect users, Google added limits to the API that prevents developers from prompting users excessively.

Patience and thoughtful UX design will reward you with positive ratings.

We’ve seen plenty of apps developed by other app development companies that violate all these best practices. They prompt for a rating during the very first time you use the app and right in the middle of trying to complete a primary task. All this accomplishes is getting even more poor reviews.

Step 2: Add the Play Core library

To support in-app reviews, your app must include the Play Core library (1.8.0 or higher). Add the library into the dependencies section of your project module, build.gradle. Make sure to declare the maven repository into the project build.gradle repositories section.

// In your project's build.gradle file:
repositories {
  maven { url "https://maven.google.com" }
}

// In your app's build.gradle file:
dependencies {
  // Version 1.8.0 or higher
  implementation 'com.google.android.play:core:1.9.1'

  // For Kotlin users: add useful extensions that make the APIs more idiomatic.
  implementation 'com.google.android.play:core-ktx:1.8.1'
}

Step 3: Prepare the review request

Next, create a ReviewManager instance, which is the app’s interface to start an in-app review flow. This is done through the ReviewManagerFactory, which creates ReviewManager instances. It only requires the application Context as a parameter. When the app is ready to request a review, use the ReviewManager instance to create a request task. If successful, it will receive the ReviewInfo necessary to prompt the user:

val reviewManager: ReviewManager = ReviewManagerFactory.create(context)

val requestReviewTask: Task = reviewManager.requestReviewFlow()
requestReviewTask.addOnCompleteListener { request ->
  if (request.isSuccessful) {
    // Request succeeded and a ReviewInfo instance was received
    val reviewInfo: ReviewInfo = request.result
  } else {
    // Request failed
  }
}

Step 4: Request the review

Now, it’s simply a matter of using the ReviewManager to launch the review flow. Pass the parameters for the current Activity and the ReviewInfo created in the previous step. This will return a Task to use as an asynchronous listener that receives a result when the flow is complete:

val launchReviewTask: Task<*> = reviewManager.launchReviewFlow(activity, reviewInfo)
launchReviewTask.addOnCompleteListener { _ ->
  // The review has finished, continue your app flow.
}

When the listener is notified, the review flow is complete. This doesn’t always mean that the user submitted a rating or review. The user may have dismissed the in-app rating request, or the In-App Review API can ignore the request if one was requested recently.

Case study: Adding In-App Review to the Filtrete Smart App

We’ve been working with 3M for many years on their Filtrete™ Smart Air Filter products. These innovative HVAC filters have an embedded sensor that continuously monitors the filter life. They communicate via Bluetooth Low Energy (BLE) with the Smart Filtrete app developed by ArcTouch, and proactively notify customers when to change their filter and streamline reordering a replacement.

Some Bluetooth connectivity issues on older Android devices resulted in poor reviews just after the app launch. While the issues have long since been resolved, these early ratings weighed down the overall Android app rating to 3.9 (compared to the iOS app rating of 4.8). The opportunity to improve that rating and attract new users was obvious. When Google introduced the Android In-App Review API in 2020, it seemed like the perfect solution – and we immediately recommended it to 3M.

“We watch our ratings and reviews closely, as they are so important to the overall success of an app and are a direct tie to our users’ experiences with our app,” said Kate Samuelson, 3M’s Mobile App Marketing Lead. “With the new In-App Review suggested and implemented by ArcTouch, we love how our ratings immediately improved. And now, we can use the feature to engage even more closely with our users — including getting more feedback at different points of their app use to help us further improve the experience.”

ROI: How In-App Review improved 3M’s Android app ratings

After integrating the In-App Review API, we did a one-week phased rollout to ensure everything was working as intended. Then we started to monitor the app ratings closely. In just a few weeks, we began to see the results we expected. Our goal was to improve the Google Play overall rating from 3.9 to 4.5. We exceeded that and reached 4.7 stars in eight weeks.

 

3M Filtrete before Android in-app review API

Before Android in-app review API: 3.8 app rating on Google Play.

 

3M Filtrete after Android in-app review API

After Android in-app review API: 4.7 app rating on Google Play.

And by having a simpler review process that asked users at just the right time in the experience, 3M saw an increase in the total number of user ratings and reviews. For comparison, the app had about 1,100 ratings on Google Play in the prior two years. Just two months after adding the In-App Review API, there were an additional 800 new ratings, a 70 percent increase.

Our rating of Google Play’s In-App Review API

Using the Google Play In-App Review improves the user experience and simplifies the development of collecting in-app ratings. Of course, just using this new API doesn’t guarantee excellent app ratings. You need to deliver a lovable app — that perfect blend of something useful and something that’s delightful to use. After you’ve done that, we highly recommend including the In-App Review API. In fact, we give it five stars.


Need to improve your app store ratings?

Do your app store ratings need a boost? Contact us today for a free consultation. Whether you want to integrate in-app ratings or redesign your user experience, we can help. Since the dawn of the app store, ArcTouch has worked with leading brands like 3M to build lovable apps for connected devices and smart products.