広告識別子(IDFA)を記録したい場合は、ユーザーの許諾を得るためのプロンプトを表示する必要があります。これを行うには、アプリにAppleのApp Tracking Transparency(ATT)frameworkを組み込む必要があります。Adjust SDKはユーザーの許諾状況を保存し、リクエストごとにAdjustサーバーに送信します。
承認ステータス
ステータス(Status) | コード | 説明 |
---|---|---|
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);