[.NET MAUI]iOSトラッキング確認ダイアログの表示方法

APP開発

パーソナライズされた広告のトラッキング確認

AppTrackingTransparencyダイアログ

.NET MAUIのiOSアプリにAdMobを組み込んでパーソナライズされた広告を表示するには、AppTrackingTransparency(ATT)ダイアログの表示と許可を得る必要があります。

このダイアログの表示方法です。

環境

OS: Windows 11 Pro
IDE: Visual Studio Community 2022 Version 17.13.6
iOS: 18.4.1

対応手順

AppTrackingTransparencyManager.csの作成

Platforms/iOS/AppTrackingTransparencyManager.cs

C#
using UIKit;
using AppTrackingTransparency;

namespace YourAppNamespace.Platforms.iOS
{
    public static class AppTrackingTransparencyManager
    {
        public static void RequestPermission()
        {
            // iOS 14以降かチェック
            if (UIDevice.CurrentDevice.CheckSystemVersion(14, 0))
            {
                ATTrackingManager.RequestTrackingAuthorization((status) =>
                {
                    Console.WriteLine($"ATT Status: {status}");

                    switch (status)
                    {
                        case ATTrackingManagerAuthorizationStatus.Authorized:
                            Console.WriteLine("Tracking authorized.");
                            break;
                        case ATTrackingManagerAuthorizationStatus.Denied:
                            Console.WriteLine("Tracking denied.");
                            break;
                        case ATTrackingManagerAuthorizationStatus.NotDetermined:
                            Console.WriteLine("Tracking not determined.");
                            break;
                        case ATTrackingManagerAuthorizationStatus.Restricted:
                            Console.WriteLine("Tracking restricted.");
                            break;
                    }
                });
            }
            else
            {
                Console.WriteLine("iOS version < 14: tracking automatically allowed.");
            }
        }
    }
}

AppDelegate.csの編集

Platforms/iOS/AppDelegate.cs

C#
using Foundation;
using UIKit;
using Google.MobileAds;
using YourAppNamespace.Platforms.iOS;

namespace YourAppNamespace
{
    [Register("AppDelegate")]
    public class AppDelegate : MauiUIApplicationDelegate
    {
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            // ATT許可ダイアログを表示
            AppTrackingTransparencyManager.RequestPermission();

            // AdMob初期化
            MobileAds.SharedInstance.Start(completionHandler: null);

            return base.FinishedLaunching(app, options);
        }
    }
}

Info.plistの編集

XML
<key>NSUserTrackingUsageDescription</key>
<string>このアプリでは、広告のパーソナライズのためにユーザーの識別子を使用します。</string>

Info.plist にこのキーを追加しないと ATTダイアログは表示されません。

追加した文字列がダイアログに表示されます。

動作確認

前提条件

  • iOS 14以降のリモートデバイスの実機で確認する
    • シミュレーターやiOS 14未満ではATTダイアログは表示されない

確認手順

  • [設定アプリ]-[プライバシーとセキュリティ]-[トラッキング]
    • [アプリからのトラッキング要求を許可]を有効にする
    • 対象のアプリがリストにあれば無効にする
iOS 設定アプリ トラッキング
  • [設定アプリ]-[プライバシーとセキュリティ]-[Appleの広告]-
    • [パーソナライズされた広告]を有効にする
iOS 設定アプリ Appleの広告
  • リモートデバイスにアプリがインストールされている場合、アンインストールする
  • Visual Studioでリモートデバイスのデバッグを開始する
    • リモートデバイスにアプリがインストールされ、自動起動する
  • リモートデバイスでATTダイアログが表示される

コメント

タイトルとURLをコピーしました