使用環境
・Unity Editor:2021.3.18f1
この記事で分かること
- iOS標準のレビュー依頼APIの使い方
- Unity×Objective-C++連携でSKStoreReviewControllerを呼び出す手順
- 【コピペOK】Unityでレビュー依頼ポップアップを表示する方法
- 表示タイミングの工夫と審査上の注意点
アプリレビューをストアで促す方法とは?
ピッグダディ
アプリの評価って、ランキングにも売上にも直結する重要な要素なんだよね。でも「レビューお願いします!」って押しつけがましいのは逆効果なんだ。
ピッグボーイ
確かに!
ゲームの途中で急に変なダイアログが出たら萎えますもん。
ピッグガール
でもiOSって、
自然にレビューお願いできる仕組みがあるんじゃなかったっけ?
ピッグダディ
その通り!
iOSの標準UI「SKStoreReviewController」を使えば、ユーザーに違和感なくレビューをお願いできる。今回はそれをUnityから呼び出す方法を、Objective-C連携含めて丁寧に解説していくよ!
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側の制御 | 呼び出しても毎回出るとは限らない(回数制限あり) |
強制表示はNG | App Store審査でリジェクトされる可能性あり |
表示タイミングが重要 | ゲームクリア後など、満足度の高い瞬間を狙う |
開発中は動作しない | サンドボックス環境では表示されないことが多い |
注意点
・表示回数はAppleのサーバー側で1年に3回までなど制限されています。
・カスタムUIはできない。
まとめ
ユーザーの体験を邪魔せず、
自然な形でレビューを集めたい方は、ぜひこの仕組みを導入してみてください!
ポイント | 内容 |
---|---|
SKStoreReviewControllerを使えばレビュー依頼を標準UIで表示可能 | |
Unityからネイティブコード経由で簡単に呼び出せる | |
表示回数・審査には注意が必要 | |
タイミング次第で高評価レビューの確率が上がる |