[Unity]ストアレビュー機能を実装する[Android,iOS]

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());
    }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次