広告識別子(IDFA)を記録したい場合は、ユーザーの承認を得るためのプロンプトを表示する必要があります。これを行うには、アプリにAppleのAppTrackingTransparency(ATT)フレームワークを組み込む必要があります。Adjust SDKはユーザーの承認状況を保存し、リクエストごとにそれをAdjustサーバーに送信します。
承認ステータス
ステータス | コード | 説明 |
---|---|---|
ATTrackingManagerAuthorizationStatusNotDetermined | 0 | ユーザーがアクセスプロンプトに応答していない |
ATTrackingManagerAuthorizationStatusRestricted | 1 | アプリ関連データへのアクセスがデバイスレベルでブロックされている |
ATTrackingManagerAuthorizationStatusDenied | 2 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを拒否 |
ATTrackingManagerAuthorizationStatusAuthorized | 3 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを承認 |
ATT承認ラッパー
public static void RequestAppTrackingAuthorization(Action<int> callback)
Adjust SDKには、AppleのrequestTrackingAuthorizationWithCompletionHandler
メソッドのラッパーが含まれています。ATTプロンプトをカスタマイズしない場合は、このラッパーを使用することができます。
コールバックメソッドは、ユーザーが同意ダイアログに応答した時にトリガーされ、ユーザーの同意ステータスコードをAdjustサーバーに送信します。コールバック関数内で各ステータスコードに対するレスポンスを定義することができます。
ATTのテキスト内容を指定する必要があります。これを行うには、Info.plist
ファイルでNSUserTrackingUsageDescription
キーにテキストを追加してください。
Adjust.RequestAppTrackingAuthorization((status) =>{ switch (status) { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break; case 1: // ATTrackingManagerAuthorizationStatusRestricted case break; case 2: // ATTrackingManagerAuthorizationStatusDenied case break; case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break; }});
例
この例では、ユーザーがプロンプトと対話したときに、ユーザーの認証状態について人間が読み取れる説明をログに記録する方法を示しています。
Adjust.RequestAppTrackingAuthorization((status) =>{
switch (status) { case 0: Debug.Log("The user hasn't responded to the access prompt yet."); break; case 1: Debug.Log("Access to app-related data is blocked at the device level."); break; case 2: Debug.Log("The user has denied access to app-related data for device measurement."); break; case 3: Debug.Log("The user has approved access to app-related data for device measurement."); break; }});
現在の承認ステータスを取得する
public static int GetAppTrackingAuthorizationStatus()
ユーザーの現在の認証ステータスはいつでも取得することができます。GetAppTrackingAuthorizationStatus
メソッドを呼び出し、int
で認証ステータスコードを返してください。
Adjust.GetAppTrackingAuthorizationStatus();
プロンプトのタイミングをカスタム設定する
public int? AttConsentWaitingInterval { get; set; }
アプリにオンボーディングプロセスまたはチュートリアルが含まれる場合、ユーザーがこのプロセスを完了するまで、ユーザーのATT同意ステータスの送信を遅らせたい場合があります。これを行うには、AttConsentWaitingInterval
プロパティを設定して、データの送信を 最大360秒 遅延させ、ユーザーに最初のオンボーディングを完了する時間を与えることができます。タイムアウトが終了した後、またはユーザーが同意ステータスを設定した後に、SDKはユーザーの同意ステータスと共に遅延中に記録した全ての情報をAdjustのサーバーに送信します。
AdjustConfig adjustConfig = new AdjustConfig("{YourAppToken}", AdjustEnvironment.Sandbox);//...adjustConfig.AttConsentWaitingInterval = 30;//...Adjust.InitSdk(adjustConfig);
AppTrackingTransparencyの使用を無効にする
public bool? IsAppTrackingTransparencyUsageEnabled { get; set; }
Adjust SDKによるAppTrackingTransparency.framework
との自動連携を無効化したい場合は、SDKの初期化前にAdjustConfig
インスタンスのIsAppTrackingTransparencyUsageEnabled
プロパティをfalse
に設定してください。
AdjustConfig config = new AdjustConfig("{YourAppToken}", AdjustEnvironment.Sandbox);config.IsAppTrackingTransparencyUsageEnabled = false;// ...Adjust.InitSdk(config)