Unityで作ったアプリをユーザーさんにレビューしてもらう機能を実装します。
レビュー機能の実装:各プラットフォームごとの注意点など
実装するにあたり、iOS/Androidごとに、どのようなところに注意する必要があるのかを知りましょう。
iOSの場合
Unityのバージョンにもよりますが、iOSの場合はレビューを行うAPIが用意されています。該当の場所で下記スクリプトを呼び出すだけでOK。
UnityEngine.iOS.Device.RequestStoreReview();
Androidの場合
Androidでレビューを行うには、パッケージを導入する必要があります。
対象のパッケージのリンクはこちら「https://developers.google.com/unity/archive#play_in-app_review」
ただ、パッケージにはコアも必要になります「https://developers.google.com/unity/archive?hl=ja#play_core」
こちらのパッケージ導入方法ですが、tgzファイル版がおすすめです。tgzのパッケージ導入に関してはこちらのリンクを参考にしてください。
レビューに関しての注意点
バージョンによって変わるかもしれませんが、レビュー機能は一般的にどのようにレビューを行ったかを知ることは出来ません。
こちらの機能はあくまでユーザーにレビューの依頼を促すことしか出来ません。
ひと昔前の、☆5レビューで石プレゼント!とかは実は本当に☆5レビューしたかどうかは、運営側にはわからないんですね
そもそも、レビューをしたかどうかもわかりません。キャンセルされたかどうかの事実も不明です!
実装サンプル
実際にゲームから呼び出すためのスクリプトを作ってみましょう。
AppReview
以下のプログラムはiOS/Android/それ以外のプラットフォームごとに対応したスクリプトになっています。#ifから開始されたif文は、選択されているプラットフォームの時しかプログラムが認識されません。(ついでに自動入力もされないので注意が必要です。)
using System.Collections;
using UnityEngine;
public static class AppReview
{
public static IEnumerator Request()
{
#if UNITY_IOS
UnityEngine.iOS.Device.RequestStoreReview();
#elif UNITY_ANDROID
var reviewManager = new Google.Play.Review.ReviewManager();
var requestFlowOperation = reviewManager.RequestReviewFlow();
yield return requestFlowOperation;
if (requestFlowOperation.Error != Google.Play.Review.ReviewErrorCode.NoError)
{
// エラー処理が必要な場合ここに追加
Debug.LogError(requestFlowOperation.Error);
yield break;
}
var playReviewInfo = requestFlowOperation.GetResult();
var launchFlowOperation = reviewManager.LaunchReviewFlow(playReviewInfo);
yield return launchFlowOperation;
if (launchFlowOperation.Error != Google.Play.Review.ReviewErrorCode.NoError)
{
// エラー処理が必要な場合ここに追加
Debug.LogError(launchFlowOperation.Error);
yield break;
}
#else
Debug.Log("RequestReview Not supported.");
#endif
yield break;
}
}
呼び出し側
ぶっちゃけ呼び出し自体は1文なので、スクリプトにする必要なさそうですが一応。下スクリプトのRevewメソッドをStartメソッドとかにすると、下スクリプトが張り付いたGameObjectがシーン内に存在すると、いきなりレビューが始まります!
using UnityEngine;
public class TestReviewRequest : MonoBehaviour
{
// Reviewメソッドを呼び出すだけ!
public void Review()
{
StartCoroutine(AppReview.Request());
}
}
コメント