App Tracking Transparency framework

広告ID(IDFA)を記録する場合、AppleのApp Tracking Transparency (ATT) frameworkを使用してアプリ内にプロンプトを表示し、ユーザー同意を取得する必要があります。ユーザーが許諾すると、Adjust SDKはその情報を保存します。その後Adjust SDKは、Adjustのバックエンドに送信する各パケットに情報を添付します。

注意:

この機能は、Adjust SDKバージョン4.23.0以降が要件となります。

Adjust SDKは、ユーザーの許諾状況を以下のステータスとして記録します。

State意味
Authorized(承認)ユーザーが、デバイストラッキングによるアプリ関連データへのアクセスを承認。
Denied(拒否)ユーザーが、デバイストラッキングによるアプリ関連データへのアクセスを拒否。
Not Determined(未決定)ユーザーが、アクセスをリクエストするプロンプトにまだ応答していない
Restricted(制限あり)アプリ関連データへのアクセスが、デバイスレベルでブロックされている。

Adjust SDKには、Appleのtracking authorization methodに対応したラッパーが組み込まれています。ATTプロンプトのカスタマイズを希望しない場合は、このラッパーを使用することができます。Adjust SDKが承認ステータスの変更を受信すると、その内容がAdjustのバックエンドに送信されます。

独自のATTプロンプトを使用している場合は、ラッパーメソッドを使用する必要はありません。アプリ設定AppTrackingTransparency.framework を含めるようにしてください。プロンプトは、Adjust SDKの初期化の前または後に表示できます。初期化前に表示する場合、Adjust SDKは承認ステータスをインストールイベントに付与します。初期化前の場合、Adjust SDKは承認ステータスを記録した後にバックエンドにその情報を送信します。

アプリトラッキング承認ラッパー

Adjust SDKには、 requestTrackingAuthorizationWithCompletionHandler メソッド上に構築されたラッパーが含まれています。このラッパーを使用して、ユーザーの承認ステータスに関する情報を収集できます。また、このメソッドを使用して、各レスポンス値のコールバックを定義することも可能です。ユーザーが承認ダイアログを操作すると、コールバックがトリガーされます。また、Adjust SDKはユーザーの選択をAdjustバックエンドに通知します。コールバックは、承認ステータスを示す 整数の値 を返します。

Objective-C
[Adjust requestTrackingAuthorizationWithCompletionHandler:^(NSUInteger status) {
    switch (status) {
        case 0:
            // ATTrackingManagerAuthorizationStatusNotDetermined case
            break;
        case 1:
            // ATTrackingManagerAuthorizationStatusRestricted case
            break;
        case 2:
            // ATTrackingManagerAuthorizationStatusDenied case
            break;
        case 3:
            // ATTrackingManagerAuthorizationStatusAuthorized case
            break;
    }
}];

現在の承認ステータスを取得

appTrackingAuthorizationStatus メソッド を呼び出して、現在の承認ステータスを返すことができます。SDKは、承認ステータスに関連する整数値を返します。

Objective-C
Swift
Javascript
int authorizationStatus = [Adjust appTrackingAuthorizationStatus];

承認ステータスの変更を確認

ATTラッパーを使用すると、Adjust SDKはATTプロンプトからユーザーの承認ステータスの変更を自動的に読み取ります。ラッパーを使用していない場合は、ユーザーが選択した後にステータスを確認する必要があります。checkForNewAttStatus メソッドを使用して新しいステータスを読み取り、Adjustバックエンドに送信してださい。

注意:

ユーザーが承認ステータスを変更するたびに、その変更を確認する必要があります。

Objective-C
Swift
[Adjust checkForNewAttStatus];

カスタムプロンプトのタイミング

アプリにオンボーディングプロセスまたはチュートリアルが含まれる場合、ユーザーがこのプロセスを完了するまで、ユーザーのATT同意ステータスの送信を遅らせたい場合があります。これを行うには、attConsentWaitingIntervalプロパティを設定して、データの送信を最大 120秒​ 遅延させ、ユーザーに最初のオンボーディングを完了する時間を与えることができます。タイムアウトが終了した後、 または​ ユーザーが同意ステータスを設定した後に、SDKはユーザーの同意ステータスと共に遅延中に記録した全ての情報をAdjustのサーバーに送信します。

注意:

タイムアウトが終了する前、または同意ステータスを選択する前にユーザーがアプリを閉じた場合、アプリを再度開いたときにタイムアウトが再開されます。

Swift
Objective-C
let yourAppToken = "{YourAppToken}"
let environment = ADJEnvironmentSandbox as? String
let myConfig = ADJConfig(
    appToken: yourAppToken,
    environment: environment)
//...
myConfig?.attConsentWaitingInterval = 30
//...
Adjust.appDidLaunch(myConfig)

iOS 17の同意への対応

iOS 17のリリースに伴い、Appleは開発者がサードパーティに送信するデータに関する新しいルールを導入しました。 開発者がAppleのプライバシーガイドラインに準拠していることを容易に証明できるようにするために、Adjust SDKは 同意する​ ユーザーと 同意しない​ ユーザーに対して2つの個別のエンドポイントを使用します。

デフォルトでは、Adjust SDKはanalytics.adjust.comエンドポイントを使用して、 確率的モデリング​ 向けに限られたデータセットをAdjustのサーバーに送信します。このエンドポイントは次の情報を受け取り ません​ 。

  • idfa:広告主のデバイスID(IDFA)。
  • started_at:デバイスの起動時間。

ユーザーがATTに同意した場合にのみ、Adjust SDKは 確定的アトリビューション​ のためのidfaとstart_atの両方のプロパティにアクセスできるようになり、 consent.adjust.comに完全なペイロードを送信します。

これらのエンドポイントはどちらも、全てのURL戦略で利用可能です。

urlStrategy非同意のエンドポイント同意したエンドポイント
ADJDataResidencyEUanalytics.eu.adjust.comconsent.eu.adjust.com
ADJDataResidencyTRanalytics.tr.adjust.comconsent.tr.adjust.com
ADJDataResidencyUSanalytics.us.adjust.comconsent.us.adjust.com
ADJUrlStrategyChinaanalytics.adjust.worldconsent.adjust.world
ADJUrlStrategyCnanalytics.adjust.cnconsent.adjust.cn
ADJUrlStrategyIndiaanalytics.adjust.net.inconsent.adjust.net.in