知ってのとおりiOS14から、アプリ内でパーソナライズ広告を表示するためのトラッキングを許可するダイアログを実装する必要があります。
もちろんUnityのゲームでも対応する必要があるので、手っ取り早く最速で 実装する方法をまとめました。
iOS用のビルドを作るにはXcodeが必要なので、インストールできるMacOSが対象となります。
Xcodeのフレームワークを追加
アプリケーションフォルダ内のXcodeを右クリックして "パッケージの内容を表示" をクリックすると、中のフォルダが見れます。
そこで下のディレクトリを開き
Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/
AppTrackingTransparency.framework をUnityの Plugins/iOS フォルダの中にドラッグします。フォルダがなかったら作りましょう。
ダイアログを表示するプラグインを書く
同じ Plugins/iOS フォルダの中に IDFADialog.mm というObjective-cのファイルを作り編集します。
こちらのソースを参考にしました。
#import <AppTrackingTransparency/AppTrackingTransparency.h> #import <AdSupport/AdSupport.h> extern "C" void _requestIDFA() { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { }]; }
Unityから呼び出す
CSharpソースの Start あたりでプラグインを呼び出します。
... using System.Runtime.InteropServices; public class TestSystem : MonoBehaviour { #if UNITY_IOS [DllImport("__Internal")] private static extern void _requestIDFA(); #endif void Start() { #if UNITY_IOS _requestIDFA(); #endif } }
・参考
XcodeのInfo.plistを編集
左ペーンで Info.plist を選択、Information Property List の+ボタンを押し、
リストから Privacy - Tracking Usage Description を追加します。
Valueは英語で、ユーザに表示させる文字列を書き入れます。
Click "Allow Tracking" to display optimized advertisements
これで審査が通るかは別なので、各自アプリにあった文言を入れてください。
ローカライズ
Info.plist の内容を日本語で表示させるには、ローカライズを行う必要があります。
Info.plist を選択し、Xcode右ペーンの Localize ボタンをクリックします。
リストからJapaneseを選択すると、表示が Info.plist (Japanese) となるので、日本語で文言を入力します。
※I2Localizeを使っている場合、左ペーンI2 Localization の中の InfoPlist.strings (Japanese) に以下の一行を加えてもいけます。
NSUserTrackingUsageDescription = "最適化された広告を表示するには、トラッキングを許可するボタンを押してください";
これでXcodeでビルドすれば動きます。たぶん。
調査によるとこのダイアログで許可をクリックするユーザーは 4% くらいだとか。
もうフリーゲームに広告貼るより、有料アプリかアプリ内課金でマネタイズするほうを選択するべきなのかもしれません。
・参考