Launch In-App Review
This is an asynchronous function that triggers the native Google Play in-app review flow.
The review dialog is displayed and controlled entirely by the Play Store β your game cannot force or customize its appearance.
You must wait until the user finishes interacting with the dialog before continuing your app logic.
Once the operation completes, one of two delegates will be called β On Success or On Failure.
π‘ According to Google Play policy, regardless of the outcome β success or failure β
your app must always continue its normal flow after calling this function.
Do not block gameplay or force the player to submit a review.
Parameters
1. On Success
This delegate is triggered once the user has completed the in-app review flow.
The Google Play API does not reveal whether the user actually submitted a review or whether the dialog was displayed β the call only indicates that the process has finished successfully.
You can simply drag this pin in Blueprint to create a custom event and execute any follow-up logic (e.g., show a thank-you message or resume gameplay).
2. On Failure
A delegate that is triggered if the initialization fails.
It provides two parameters:
- Response Code β
EInAppReviewResponseCodeindicating the type of error. - Message β
FStringwith additional debug information describing the failure reason.
Use this delegate to handle initialization errors and show appropriate messages to the player.
Example
In this example, the Launch In-App Review node is used to display the native Google Play review dialog.
Two execution pins handle the possible outcomes β On Success and On Failure.
In both cases, the app must continue its regular logic flow without interruption,
as required by Google Playβs policy.
C++ Usage
You can also launch in-app review flow directly from C++ using delegates for success and failure callbacks.
#include "InAppReviewCPPLibrary.h"
void UMyGameInstance::LaunchInAppReview()
{
FOnInAppReviewSuccessfulNative OnSuccess;
OnSuccess.BindLambda([]()
{
UE_LOG(LogTemp, Log, TEXT("In-App Review call successfull."));
});
FOnInAppReviewFailedNative OnFailure;
OnFailure.BindLambda([](EInAppReviewResponseCode Code, const FString& Message)
{
UE_LOG(LogTemp, Error, TEXT("In-App Review call failed: %s (Code: %d)"), *Message, static_cast<int32>(Code));
});
UInAppReviewCPPLibrary::LaunchInAppReview(OnSuccess, OnFailure);
}