Integrate in-app reviews (Unity)

This guide describes how to integrate in-app reviews in your app using Unity. There are separate integration guides for if you are using Kotlin or Java or native code.

Unity SDK overview

The Play in-app review API is part of Play Core SDK family. The API for Unity offers a ReviewManager class to request and launch the flow using the RequestReviewFlow and LaunchReviewFlow methods. After a request is made, your app can check the status of the request using ReviewErrorCode.

Set up your development environment

To set up your development environment, follow the setup instructions in the Unity section of the Play Core library guide.

Create the ReviewManager

Create an instance of ReviewManager that handles communication between your app and the API.

// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();

Request a ReviewInfo object

Follow the guidance about when to request in-app reviews to determine good points in your app's user flow to prompt the user for a review (for example, after a user dismisses the summary screen at the end of a level in a game). When your app gets close one of these points, use the ReviewManager instance to create an async operation, as shown in the following example:

var requestFlowOperation = _reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != ReviewErrorCode.NoError)
    // Log error. For example, using requestFlowOperation.Error.ToString().
    yield break;
_playReviewInfo = requestFlowOperation.GetResult();

If the call is successful, the API returns the PlayReviewInfo object that your app needs to launch the in-app review flow. In the example, the call is made inside a coroutine to perform the async operation (this does not block the Main thread). Because the call is made asynchronously, it might take up to a couple of seconds, so your app should make the call before your app reaches the point in your user flow where you want to show the in-app review.

Launch the in-app review flow

After your app receives the PlayReviewInfo instance, it can launch the in-app review flow. Note that the PlayReviewInfo object is only valid for a limited amount of time, so your app should not wait too long before launching a flow.

var launchFlowOperation = _reviewManager.LaunchReviewFlow(_playReviewInfo);
yield return launchFlowOperation;
_playReviewInfo = null; // Reset the object
if (launchFlowOperation.Error != ReviewErrorCode.NoError)
    // Log error. For example, using requestFlowOperation.Error.ToString().
    yield break;
// 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.

Next steps

Test your app's in-app review flow to verify that your integration is working correctly.