広告識別子(IDFA)を記録したい場合は、ユーザーの承認を得るためのプロンプトを表示する必要があります。これを行うには、アプリにAppleのAppTrackingTransparency(ATT)フレームワークを組み込む必要があります。Adjust SDKはユーザーの承認状況を保存し、リクエストごとにそれをAdjustサーバーに送信します。
承認ステータス
| ステータス | コード | 説明 |
|---|---|---|
ATTrackingManagerAuthorizationStatusNotDetermined | 0 | ユーザーがアクセスプロンプトに応答していない |
ATTrackingManagerAuthorizationStatusRestricted | 1 | アプリ関連データへのアクセスがデバイスレベルでブロックされている |
ATTrackingManagerAuthorizationStatusDenied | 2 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを拒否 |
ATTrackingManagerAuthorizationStatusAuthorized | 3 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを承認 |
ATT承認ラッパー
requestAppTrackingAuthorization(): Promise<number>Adjust SDKには、AppleのrequestTrackingAuthorizationWithCompletionHandler:メソッドのラッパーが含まれています。ATTプロンプトをカスタマイズしない場合は、このラッパーを使用することができます。
コールバックメソッドは、ユーザーが同意ダイアログに応答した時にトリガーされ、ユーザーの同意ステータスコードをAdjustサーバーに送信します。コールバック関数内で各ステータスコードに対するレスポンスを定義することができます。
ATTのテキスト内容を指定する必要があります。これを行うには、Info.plistファイルでNSUserTrackingUsageDescriptionキーにテキストを追加してください。
Adjust.requestAppTrackingAuthorization(function (status) { print("Authorization status update!"); switch (status) { case 0: // ATTrackingManagerAuthorizationStatusNotDetermined case break; case 1: // ATTrackingManagerAuthorizationStatusRestricted case break; case 2: // ATTrackingManagerAuthorizationStatusDenied case break; case 3: // ATTrackingManagerAuthorizationStatusAuthorized case break; }});例
この例では、ユーザーがプロンプトと対話したときに、ユーザーの認証状態について人間が読み取れる説明をログに記録する方法を示しています。
Adjust.requestAppTrackingAuthorization(function (status) { print("Authorization status update!"); 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(): Promise<number>ユーザーの現在の認証ステータスはいつでも取得することができます。getAppTrackingAuthorizationStatusメソッドを呼び出し、numberで認証ステータスコードを返してください。
Adjust.getAppTrackingAuthorizationStatus(function (status) { // check status value});プロンプトのタイミングをカスタム設定する
setAttConsentWaitingInterval(attConsentWaitingInterval: number): voidアプリにオンボーディングプロセスまたはチュートリアルが含まれる場合、ユーザーがこのプロセスを完了するまで、ユーザーのATT同意ステータスの送信を遅らせたい場合があります。これを行うには、attConsentWaitingIntervalプロパティを設定して、データの送信を 最大360秒 遅延させ、ユーザーに最初のオンボーディングを完了する時間を与えることができます。タイムアウトが終了した後、またはユーザーが同意ステータスを設定した後に、SDKはユーザーの同意ステータスと共に遅延中に記録した全ての情報をAdjustのサーバーに送信します。
const adjustConfig = new AdjustConfig( "{YourAppToken}", AdjustConfig.EnvironmentSandbox,);adjustConfig.setAttConsentWaitingInterval(30);
Adjust.initSdk(adjustConfig);AppTrackingTransparencyの使用を無効にする
disableAppTrackingTransparencyUsage(): voidAdjust SDKによるAppTrackingTransparency.frameworkとの自動連携を無効化したい場合は、SDKの初期化前にAdjustConfigインスタンスでdisableAppTrackingTransparencyUsageメソッドを呼び出してください。
const adjustConfig = new AdjustConfig( "{YourAppToken}", AdjustConfig.EnvironmentSandbox,);adjustConfig.disableAppTrackingTransparencyUsage();
Adjust.initSdk(adjustConfig);