広告識別子(IDFA)を記録したい場合は、ユーザーの許諾を得るためのプロンプトを表示する必要があります。これを行うには、アプリにAppleのApp Tracking Transparency(ATT)frameworkを組み込む必要があります。Adjust SDKはユーザーの許諾状況を保存し、リクエストごとにAdjustサーバーに送信します。
承認ステータス
| ステータス(Status) | コード | 説明 | 
|---|---|---|
ATTrackingManagerAuthorizationStatusNotDetermined | 0 | ユーザーがアクセスプロンプトに応答していない。 | 
ATTrackingManagerAuthorizationStatusRestricted | 1 | アプリ関連データへのアクセスがデバイスレベルでブロックされている | 
ATTrackingManagerAuthorizationStatusDenied | 2 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを拒否 | 
ATTrackingManagerAuthorizationStatusAuthorized | 3 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを承認 | 
ATT承認ラッパー
requestTrackingAuthorizationWithCompletionHandler: (handler: (status: number) => void) => voidAdjust SDKには、AppleのrequestTrackingAuthorizationWithCompletionHandlerメソッドのラッパーが含まれています。ATTプロンプトをカスタマイズしない場合は、このラッパーを使用することができます。
コールバックメソッドは、ユーザーが同意ダイアログに応答した時にトリガーされ、ユーザーの同意ステータスコードをAdjustサーバーに送信します。コールバック関数内で各ステータスコードに対するレスポンスを定義することができます。
ATTのテキスト内容を指定する必要があります。これを行うには、Info.plistファイルでNSUserTrackingUsageDescriptionキーにテキストを追加してください。
Adjust.requestTrackingAuthorizationWithCompletionHandler(function (status) {   switch (status) {      case 0:         // ATTrackingManagerAuthorizationStatusNotDetermined case         break;      case 1:         // ATTrackingManagerAuthorizationStatusRestricted case         break;      case 2:         // ATTrackingManagerAuthorizationStatusDenied case         break;      case 3:         // ATTrackingManagerAuthorizationStatusAuthorized case         break;   }});例
この例では、ユーザーがプロンプトと対話したときに、ユーザーの認証状態について人間が読み取れる説明をログに記録する方法を示しています。
Adjust.requestTrackingAuthorizationWithCompletionHandler(function (status) {   switch (status) {      case 0:         console.log("The user has not responded to the access prompt yet.");         break;      case 1:         console.log(            "Access to app-related data is blocked at the device level.",         );         break;      case 2:         console.log(            "The user has denied access to app-related data for device measurement.",         );         break;      case 3:         console.log(            "The user has approved access to app-related data for device measurement.",         );         break;   }});現在の承認ステータスを取得
getAppTrackingAuthorizationStatus: (callback: (authorizationStatus: number) => void) => voidユーザーの現在の認証ステータスはいつでも取得することができます。getAppTrackingAuthorizationStatusメソッドを呼び出し、numberで認証ステータスコードを返してください。
Adjust.getAppTrackingAuthorizationStatus();例
この例では、ユーザーの認証ステータスを収集し、stringに変換する方法を示しています。この情報はauthorizationStatusという変数に割り当てられ、"status"というキーでセッション パートナー パラメーターとしてパスされます。
var authorizationStatus = String(Adjust.getAppTrackingAuthorizationStatus());Adjust.addSessionPartnerParameter("status", authorizationStatus);承認ステータスの変更を確認する
checkForNewAttStatus: () => voidカスタムATTプロンプトを使用する場合、ユーザーの認証ステータスに変更があった場合、Adjust SDKに通知する必要があります。checkForNewAttStatusメソッドを呼び出し、Adjustサーバーに認証ステータスを送信してください。
Adjust.checkForNewAttStatus();プロンプトのタイミングをカスタム設定
AdjustConfig.prototype.setAttConsentWaitingInterval = function(attConsentWaitingInterval);アプリにオンボーディングプロセスまたはチュートリアルが含まれる場合、ユーザーがこのプロセスを完了するまで、ユーザーのATT同意ステータスの送信を遅らせたい場合があります。これを行うには、attConsentWaitingIntervalプロパティを設定して、データの送信を 最大120秒 遅延させ、ユーザーに最初のオンボーディングを完了する時間を与えることができます。タイムアウトが終了した後、またはユーザーが同意ステータスを設定した後に、SDKはユーザーの同意ステータスと共に遅延中に記録した全ての情報をAdjustのサーバーに送信します。
const adjustConfig = new AdjustConfig(   "{YourAppToken}",   AdjustConfig.EnvironmentSandbox,);//...adjustConfig.setAttConsentWaitingInterval(30);//...Adjust.create(adjustConfig);