しっぽを追いかけて

ぐるぐるしながら考えています

Unity と猫の話題が中心   掲載内容は個人の私見であり、所属組織の見解ではありません

Unity の Localization で iOS ATT に対応する

※ これは 2022/11/17 時点の Unity 2022.1.23f1 Localization v1.4.2 の情報です

最新版では動作が異なる可能性がありますのでご注意ください

前回、Unity の Localization でアプリ名の多言語化をやってみたので、今回はさらに iOS 14 以降で必須となる App Tracking Transparency に対応してみる

まずは PackageManeger から iOS 14 Advertising Support を追加インポート

iOS 14 Advertising Support

次に Localization Table に ATT 許可ダイアログで表示する文言を UserTrakingUsage として追加

UserTrackingUsage

これを Localization 設定の iOS App Info にある User Tracking Usage に指定

iOS App Info

最後に下記のような起動時の処理を書いたスクリプトを初期シーンの適当なところにアタッチする

#if UNITY_IOS
using Unity.Advertisement.IosSupport;
#endif
using UnityEngine;

public class Bootstrap : MonoBehaviour
{
    public void Start()
    {
#if UNITY_IOS
        // iOS ATT 対応
        var status = ATTrackingStatusBinding.GetAuthorizationTrackingStatus();
        switch (status)
        {
            case ATTrackingStatusBinding.AuthorizationTrackingStatus.NOT_DETERMINED:
                // ATT 許可依頼ダイアログを表示
                ATTrackingStatusBinding.RequestAuthorizationTracking();
                break;

            case ATTrackingStatusBinding.AuthorizationTrackingStatus.AUTHORIZED:
                //TODO: トラッキングが許可された場合の処理
                break;

            case ATTrackingStatusBinding.AuthorizationTrackingStatus.DENIED:
            case ATTrackingStatusBinding.AuthorizationTrackingStatus.RESTRICTED:
                //TODO: トラッキングが不許可・制限された場合の処理
                break;
        }
#endif
    }
}

AdMob などは他のことは全部自前でやってくれるので省略

これで iOS ビルドしてみると・・・

iOS ATT 許可ダイアログ

はい、許可ダイアログがかんたんに出せた