[Unity]AndroidのIn-App Review APIを使ってレビュー依頼を表示する
前置き
アプリからレビュー依頼を表示する際に、iOSでは専用のAPIを使用することでアプリ内にレビューポップアップを出すことが可能でした。
しかしAndoridではそのような機能はなかったため、これまではGooglePlayStoreのアプリページに飛ばすくらいしかできませんでした。
例)
Application.OpenURL("market://details?id=~~~アプリのバンドルID~~~");
しかし2020/8/5にIn-App Review APIのというものがリリースされからAndroidでもiOSと同様のことが出来るようになりました。
環境
-
Androidバージョンの要件
- Android 5.0以降(API Level 21以上)
-
本記事でのUnityバージョン
- 2019.4.10f1
PackageManager経由でインストールできるようにする
ScopedRegistryにGoogleのRegistryを登録する必要があります。
↑の設定になるように手動でやるか、
ExternalDependencyManagerのUnityPackageを導入する必要があります
パッケージのインストール
Unity上の「Window→PackageManager」を選択し、PackageMangerを開きます。
Packegesの欄をMyRegistryを選択。
検索欄で「Google」と検索したらいくつか出てくるので、「Goole Play In-app Review」を選択。
今回は1.3.0を使用
package.jsonに
"com.google.play.review": "1.3.0",
が追加されていればOKです。
呼び出しコードのサンプル
using System.Collections;
using Google.Play.Review;
using UnityEngine;
/// <summary>
/// Android端末でIn-App Review APIを呼ぶサンプル
/// </summary>
public class Sandbox_InAppReviewAPI : MonoBehaviour
{
private void Start()
{
StartCoroutine(ShowReviewCoroutine());
}
private IEnumerator ShowReviewCoroutine()
{
// https://developer.android.com/guide/playcore/in-app-review/unity
var reviewManager = new ReviewManager();
var requestFlowOperation = reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != ReviewErrorCode.NoError)
{
// エラーの場合はここで止まる.
yield break;
}
var playReviewInfo = requestFlowOperation.GetResult();
var launchFlowOperation = reviewManager.LaunchReviewFlow(playReviewInfo);
yield return launchFlowOperation;
if (launchFlowOperation.Error != ReviewErrorCode.NoError)
{
// エラーの場合はここで止まる.
yield break;
}
}
}
実機確認
自分のアプリに試しに組み込んでみました。
横持ちのアプリなので、このような見た目で表示されます。
おわり
これまではAndroidに関しては「前置き」で書いたストアに遷移する方法を使用していたのですが、iOSに比べてお手軽さにかけるせいかレビューや星が付きづらかったです。
今回のIn-App Reviewを導入することで改善されるといいなと思っています。
ちなみに、記事中で使用した「定時退社オンライン」はこちらになります。
もうすぐ1周年です。
参考
Discussion