アプリ内レビューを統合する(Unity)

このガイドでは、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

  1. Unity のメニュー オプション [Edit] > [Project Settings] > [Package Manager] を選択して、パッケージ マネージャーの設定を開きます。

  2. 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
    
  3. Unity のメニュー オプション [Window] > [Package Manager] を選択して、Package Manager メニューを開きます。

  4. マネージャー スコープのプルダウンで [My Registries] を選択します。

  5. パッケージのリストから Google Play Integrity plugin for Unity パッケージを選択し、[Install] を押します。

GitHub からインポート

  1. GitHub から最新の .unitypackage リリースをダウンロードします。

  2. 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.

次のステップ

アプリのアプリ内レビューフローをテストして、統合が正しく機能していることを検証します。