【Unity + Adjust】iOS14.5以降のIDFAオプトイン対応
概要
Adjustを導入している場合、iOS14.5からIDFAのオプトイン対応をしていないとリジェクト対象になります。
というわけで、Unity で Adjust を利用している場合の対処法をメモしておきます。
◆執筆時の各環境バージョン
Unity 2019.4.18f1
Adjust Unity SDK 4.26.1
Xcode 12.4
実装
まずXcodeのバージョンを12以上に、Adjust Unity SDKを以下のgithubから最新版に更新しておきます。
更新後、Unityにて
Unityメニュー -> Assets -> Adjust -> Check iOS 14 Support Status
をクリックしてiOS14サポートがenabledになっているか確認します。
disabledだった場合、
Unityメニュー -> Assets -> Adjust -> Toggle iOS 14 Support Status
でenabledにします。
次にIDFAオプトインポップアップを表示したい箇所で Adjust.requestTrackingAuthorizationWithCompletionHandler
を呼び出します。
これを呼ぶだけで初回ならポップアップが表示され、一度でも設定されているならば次回からは表示しない、と良い感じにやってくれます。
メソッドの引数のコールバックはIDFAのオプトインのステータスが返ってきますので、ステータスに合わせて処理を挟むこともできます。
基本的には呼ぶだけでOKで、あとは裏側でAdjustが頑張ってくれるのでコールバックでは何もしなくても特に問題はないです。
最後に、Info.plist
にオプトイン表示時の文言を追加する必要があるのでXcode設定自動化クラスに設定を記述します。
ユーザーにIDFA承諾のメリットを説明できる箇所はここだけ&1回しか表示されないので、文言はよく考えることを推奨します。
適当な説明だとAppleからリジェクトくらう可能性が高い点も気をつけてください。
なお、このポップアップを出す前にIDFAに関する説明を事前に行うこと自体は可能です。
ただし承諾するように誘導したり、承諾時に何かしらの報酬をあげる行為は禁止されていますのでご注意ください。
詳細はAppleのガイドラインを御覧ください。
以上で設定は終わりです。
検証方法
iOS14以上の端末を持っていない場合はXcodeのシミュレーターで見ます。
シミュレーターで見る場合はUnityでビルドする前に、
Unityメニュー -> Build Settings -> Player Settings -> Other Settings
にある「Target SDK」を"Device SDK"から"Simulator SDK"にすることでシミュレーターで実行できるようにします。
前述した通り、IDFAのオプトインポップアップは一度しか表示されません。
再度表示させるには一度アプリをシミュレーター上から削除して再ビルドすることで表示可能です。
(端末の「設定」 -> プライバシー -> トラッキング からアプリが消えていればOK)