いんでぃーづ

ゲームいろいろ、いろいろ自由

Unity : iOS14のIDFAトラッキング許可ダイアログを実装する

知ってのとおりiOS14から、アプリ内でパーソナライズ広告を表示するためのトラッキングを許可するダイアログを実装する必要があります。

もちろんUnityのゲームでも対応する必要があるので、手っ取り早く最速で 実装する方法をまとめました。

iOS用のビルドを作るにはXcodeが必要なので、インストールできるMacOSが対象となります。

Xcodeフレームワークを追加

アプリケーションフォルダ内のXcodeを右クリックして "パッケージの内容を表示" をクリックすると、中のフォルダが見れます。

f:id:sugar_affordance:20210514095332p:plain

そこで下のディレクトリを開き

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
    }
}

・参考

indie-du.com

XcodeのInfo.plistを編集

iOS用にビルドし、Xcodeでプロジェクトを開きます。

左ペーンで Info.plist を選択、Information Property List の+ボタンを押し、
リストから Privacy - Tracking Usage Description を追加します。

f:id:sugar_affordance:20210514095535p:plain

Valueは英語で、ユーザに表示させる文字列を書き入れます。

Click "Allow Tracking" to display optimized  advertisements

これで審査が通るかは別なので、各自アプリにあった文言を入れてください。

ローカライズ

Info.plist の内容を日本語で表示させるには、ローカライズを行う必要があります。

Info.plist を選択し、Xcode右ペーンの Localize ボタンをクリックします。

f:id:sugar_affordance:20210514095819p:plain

リストからJapaneseを選択すると、表示が Info.plist (Japanese) となるので、日本語で文言を入力します。

f:id:sugar_affordance:20210514100023p:plain

※I2Localizeを使っている場合、左ペーンI2 Localization の中の InfoPlist.strings (Japanese) に以下の一行を加えてもいけます。

NSUserTrackingUsageDescription = "最適化された広告を表示するには、トラッキングを許可するボタンを押してください";

これでXcodeでビルドすれば動きます。たぶん。


調査によるとこのダイアログで許可をクリックするユーザーは 4% くらいだとか。

iphone-mania.jp

もうフリーゲームに広告貼るより、有料アプリかアプリ内課金でマネタイズするほうを選択するべきなのかもしれません。

・参考

iOS 14 以降に備える  |  Google Developers


“Unity” and Unity logos are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere, and are used under license.


免責事項

当サイトの広告バナー、リンクによって提供される情報、サービス内容について、当サイトは一切の責任を負いません。

また、当サイトの情報を元にユーザ様が不利益を被った場合にも、当サイトは一切の責任を負いません。

すべて自己責任でお願いします。