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