Unity×iOS

【Unity×iOS】アプリレビューをストアで促す方法|SKStoreReviewControllerを使った簡単実装

ユーザーからのレビューは、App Storeの評価や検索順位に大きく影響します。
しかし「レビューしてください」とただ表示するだけでは逆効果。
iOSには、ユーザーの操作を妨げずに標準UIでレビュー依頼を表示できる機能があります。
この記事では、UnityからiOSの「レビュー依頼ポップアップ」を表示する方法を、コピペOKで解説します!

この記事で分かること

  • iOS標準のレビュー依頼APIの使い方
  • Unity×Objective-C++連携でSKStoreReviewControllerを呼び出す手順
  • 【コピペOK】Unityでレビュー依頼ポップアップを表示する方法
  • 表示タイミングの工夫と審査上の注意点

iOSのレビュー依頼はSKStoreReviewController

Appleは、App Storeのレビュー促進のために以下の標準APIを提供しています

[SKStoreReviewController requestReview];

このAPIを使うと、ユーザーがアプリを使っている中で 非強制的にレビュー依頼ダイアログを表示することができます。

【コピペOK】Unityからレビュー依頼を表示する方法

.mmファイルを作成(iOSネイティブ)

Assets/Plugins/iOS/ReviewRequest.mm

#import <StoreKit/StoreKit.h>

extern "C" void RequestAppReview()
{
    if (@available(iOS 10.3, *)) {
        [SKStoreReviewController requestReview];
    }
}

Unity C# 側の呼び出しコード

using System.Runtime.InteropServices;
using UnityEngine;

public class ReviewRequester : MonoBehaviour
{
#if UNITY_IOS && !UNITY_EDITOR
    [DllImport("__Internal")]
    private static extern void RequestAppReview();
#endif

    public void RequestReview()
    {
#if UNITY_IOS && !UNITY_EDITOR
        RequestAppReview();
#else
        Debug.Log("レビュー依頼は実機iOSでのみ動作します。");
#endif
    }
}

使用例:ゲームクリア後やプレイ3回目以降に表示

void OnLevelCleared()
{
    if (PlayerPrefs.GetInt("ClearCount", 0) >= 3)
    {
        FindObjectOfType<ReviewRequester>().RequestReview();
    }

    PlayerPrefs.SetInt("ClearCount", PlayerPrefs.GetInt("ClearCount", 0) + 1);
}

実装上の注意点

項目内容
表示はApple側の制御呼び出しても毎回出るとは限らない(回数制限あり)
強制表示はNGApp Store審査でリジェクトされる可能性あり
表示タイミングが重要ゲームクリア後など、満足度の高い瞬間を狙う
開発中は動作しないサンドボックス環境では表示されないことが多い

注意点

・表示回数はAppleのサーバー側で1年に3回までなど制限されています。
・カスタムUIはできない。

まとめ

ユーザーの体験を邪魔せず、
自然な形でレビューを集めたい方は、ぜひこの仕組みを導入してみてください!

ポイント内容
SKStoreReviewControllerを使えばレビュー依頼を標準UIで表示可能
Unityからネイティブコード経由で簡単に呼び出せる
表示回数・審査には注意が必要
タイミング次第で高評価レビューの確率が上がる