このガイドでは、Unity を使用してアプリにアプリ内レビューを統合する方法について説明します。Kotlin または Java、ネイティブ コード、Unreal Engine を使用している場合は、個別の統合ガイドを参照してください。
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.reviewOpenUPM
Unity のメニュー オプション [Edit](編集)> [Project Settings](プロジェクト設定)> [Package Manager] を選択して、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.reviewUnity のメニュー オプション [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 を作成する
アプリと Google Play API 間の通信を処理する ReviewManager のインスタンスを作成します。
using Google.Play.Review;
// 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 launchFlowOperation.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.
次のステップ
アプリのアプリ内レビューフローをテストして、統合が正しく機能していることを検証します。