このガイドでは、Unity を使用してアプリにアプリ内レビューを統合する方法について説明します。Kotlin または Java を使用している場合とネイティブ コードを使用している場合は、個別の統合ガイドを参照してください。
Unity SDK の概要
Play In-App Review API は、Play Core SDK ファミリーの一部です。Unity 向けの API には ReviewManager
クラスが用意されており、RequestReviewFlow
メソッドと LaunchReviewFlow
メソッドを使用してフローをリクエストおよび起動できます。リクエストの実行後、アプリは ReviewErrorCode
を使用してリクエストのステータスを確認できます。
開発環境をセットアップする
OpenUPM-CLI
OpenUPM CLI がインストールされている場合は、次のコマンドを使用して OpenUPM レジストリをインストールできます。
openupm add com.google.play.review
OpenUPM
Unity のメニュー オプション [Edit] > [Project Settings] > [Package Manager] を選択して、パッケージ マネージャーの設定を開きます。
OpenUPM をスコープ付きレジストリとして Package Manager ウィンドウに追加します。
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.review
Unity のメニュー オプション [Window] > [Package Manager] を選択して、Package Manager メニューを開きます。
マネージャー スコープのプルダウンで [My Registries] を選択します。
パッケージのリストから Google Play Integrity plugin for Unity パッケージを選択し、[Install] を押します。
GitHub からインポート
GitHub から最新の
.unitypackage
リリースをダウンロードします。Unity メニュー オプションの [Assets] > [Import Package] > [Custom Package] を選択し、すべてのアイテムをインポートして、
.unitypackage
ファイルをインポートします。
ReviewManager を作成する
アプリと API 間の通信を処理する ReviewManager
のインスタンスを作成します。
// Create instance of ReviewManager
private ReviewManager _reviewManager;
// ...
_reviewManager = new ReviewManager();
ReviewInfo オブジェクトをリクエストする
アプリ内レビューをリクエストするタイミングのガイダンスに沿って、アプリのユーザーフロー内でユーザーにレビューを求める適切なポイント(たとえば、ゲームの特定のレベルの終了時に表示される概要画面をユーザーが閉じた後)を決定します。アプリがいずれかのポイントに近づいたら、ReviewManager
インスタンスを使用して非同期オペレーションを作成します。次の例をご覧ください。
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();
呼び出しが成功すると、API は PlayReviewInfo
オブジェクトを返します。このオブジェクトは、アプリがアプリ内レビューフローを開始するために必要です。この例では、非同期オペレーションを実行するためにコルーチン内で呼び出しが行われます(これによってメインスレッドがブロックされることはありません)。この呼び出しは非同期で行われるため、最大で数秒かかります。したがって、ユーザーフロー内でアプリ内レビューを表示するポイントにアプリが到達する前に、この呼び出しを行う必要があります。
アプリ内レビューフローを開始する
アプリは、PlayReviewInfo
インスタンスを受け取ったら、アプリ内レビューフローを開始できます。PlayReviewInfo
オブジェクトは一定期間のみ有効であるため、アプリはフローの開始を長時間待つべきではありません。
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.
次のステップ
アプリのアプリ内レビューフローをテストして、統合が正しく機能していることを検証します。