Stay organized with collections
Save and categorize content based on your preferences.
Follow the steps in this guide to test your integration of in-app reviews in
your app or game.
Test using the Google Play Store
In-app reviews require your app to be published in Play Store. However, you can
test your integration without publishing your app to production using either
internal test tracks or internal app sharing. Both methods are described in this
section.
Test using an internal test track
Upload your app to the internal test track and install it on a device with a
user account that has access to the internal test track. When using an internal
test track, the following conditions must be met:
The user account is part of the Internal Test Track.
The user account is the primary account and it's selected in the Play Store.
The user account has downloaded the app from the Play Store (the app is
listed in the user's Google Play library).
The user account does not currently have a review for the app.
After the account on the device has downloaded the app at least once from the
internal test track and is part of the testers list, you can deploy new
versions of the app locally to that device (for example, using Android Studio).
Test using internal app sharing
Alternatively, for rapid iteration you can use internal app sharing
to test your integration. This method lets you quickly test changes by skipping
some of the verification that happens with other test tracks.
Test using FakeReviewManager
The in-app review artifact contains a FakeReviewManager implementation that
allows you to fake the behavior of the API.
This should only be used for unit or integration tests to verify the behaviour
of the app once the review is completed. To use the FakeReviewManager, replace
the ReviewManager instance with an instance of FakeReviewManager, as shown
in the following example:
As you integrate and test in-app reviews, you might run into some issues. The
following table outlines the most common issues that can prevent the in-app
review dialog from displaying in your app:
Issue
Solution
Your app is not published yet in the Play Store.
Your app doesn't have to be published to test, but your app's
applicationID must be available at least in the internal
testing track.
The user account can't review the app.
Your app must be in the user's Google Play library. To add your app to
the user's library, download your app from the Play Store using that
user's account.
The primary account is not selected in the Play Store.
When multiple accounts are available in the device, ensure that
the primary account is the one selected in the Play Store.
The user account is protected (for example, with enterprise
accounts).
There is an issue with the Google Play Store or Google Play Services on
the device.
This commonly occurs when the Play Store was sideloaded onto the device.
Use a different device that has a valid version of the Play Store and
Google Play Services.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-07-21 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-21 UTC."],[],[],null,["# Test in-app reviews\n\nFollow the steps in this guide to test your integration of in-app reviews in\nyour app or game.\n\nTest using the Google Play Store\n--------------------------------\n\nIn-app reviews require your app to be published in Play Store. However, you can\ntest your integration without publishing your app to production using either\ninternal test tracks or internal app sharing. Both methods are described in this\nsection.\n\n### Test using an internal test track\n\nUpload your app to the internal test track and install it on a device with a\nuser account that has access to the internal test track. When using an internal\ntest track, the following conditions must be met:\n\n1. The user account is part of the Internal Test Track.\n2. The user account is the primary account and it's selected in the Play Store.\n3. The user account has downloaded the app from the Play Store (the app is listed in the user's Google Play library).\n4. The user account does not currently have a review for the app.\n\nAfter the account on the device has downloaded the app at least once from the\ninternal test track and is part of the testers list, you can deploy new\nversions of the app locally to that device (for example, using Android Studio).\n| **Note:** The quota limits are **not** enforced if the app is downloaded from the internal test track.\n\n### Test using internal app sharing\n\nAlternatively, for rapid iteration you can use [internal app sharing](https://play.google.com/console/internal-app-sharing/)\nto test your integration. This method lets you quickly test changes by skipping\nsome of the verification that happens with other test tracks.\n| **Important:** When using an app installed with internal app sharing, reviews **can't be submitted**. To emphasize this difference, the button is disabled in the UI.\n\nTest using FakeReviewManager\n----------------------------\n\nThe in-app review artifact contains a `FakeReviewManager` implementation that\nallows you to fake the behavior of the API.\n\nThis should only be used for unit or integration tests to verify the behaviour\nof the app once the review is completed. To use the `FakeReviewManager`, replace\nthe `ReviewManager` instance with an instance of `FakeReviewManager`, as shown\nin the following example: \n\n### Kotlin\n\n```kotlin\nval manager = FakeReviewManager(context)\n```\n\n### Java\n\n```java\nReviewManager manager = new FakeReviewManager(context);\n```\n| **Note:** `FakeReviewManager` does not simulate the UI. It only fakes the API method result by always providing a fake `ReviewInfo` object and returning a success status when the in-app review flow is launched.\n\nTroubleshooting\n---------------\n\nAs you integrate and test in-app reviews, you might run into some issues. The\nfollowing table outlines the most common issues that can prevent the in-app\nreview dialog from displaying in your app:\n\n| Issue | Solution |\n|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Your app is not published yet in the Play Store. | Your app doesn't have to be published to test, but your app's `applicationID` must be available at least in the internal testing track. |\n| The user account can't review the app. | Your app must be in the user's Google Play library. To add your app to the user's library, download your app from the Play Store using that user's account. |\n| The primary account is not selected in the Play Store. | When multiple accounts are available in the device, ensure that the primary account is the one selected in the Play Store. |\n| The user account is protected (for example, with enterprise accounts). | Use a Gmail account instead. |\n| The user has already reviewed the app. | Delete the review directly from Play Store. |\n| The quota has been reached. | Use an [internal test track](#internal-test-track) or [internal app sharing](#internal-app-sharing). |\n| There is an issue with the Google Play Store or Google Play Services on the device. | This commonly occurs when the Play Store was sideloaded onto the device. Use a different device that has a valid version of the Play Store and Google Play Services. |"]]