adjust-icon

App Tracking Transparencyの設定

広告識別子(IDFA)を記録したい場合は、ユーザーの承認を得るためのプロンプトを表示する必要があります。これを行うには、アプリにAppleのApp Tracking Transparency(ATT)フレームワークを組み込む必要があります。Adjust SDKはユーザーの承認状況を保存し、リクエストごとにそれをAdjustサーバーに送信します。

承認ステータス

ステータスコード説明
ATTrackingManagerAuthorizationStatusNotDetermined0ユーザーがアクセスプロンプトに応答していない
ATTrackingManagerAuthorizationStatusRestricted1アプリ関連データへのアクセスがデバイスレベルでブロックされている
ATTrackingManagerAuthorizationStatusDenied2ユーザーがデバイス計測によるアプリ関連データへのアクセスを拒否
ATTrackingManagerAuthorizationStatusAuthorized3ユーザーがデバイス計測によるアプリ関連データへのアクセスを承認

ATT承認ラッパー

Method signature
static Future<num> requestAppTrackingAuthorization() async

The Adjust SDK contains a wrapper around Apple’s requestTrackingAuthorizationWithCompletionHandler method. You can use this wrapper if you don’t want to customize the ATT prompt.

The callback method triggers when your user responds to the consent dialog. This method sends the user’s consent status code to Adjust’s servers. You can define responses to each status code within the callback function.

You must specify text content for the ATT request dialog. To do this, add your text to the NSUserTrackingUsageDescription key in your Info.plist file.

if (Platform.isIOS) {
Adjust.requestAppTrackingAuthorization().then((status) {
final int statusInt = status.toInt();
switch (statusInt) {
case 0:
// ATTrackingManagerAuthorizationStatusNotDetermined case
break;
case 1:
// ATTrackingManagerAuthorizationStatusRestricted case
break;
case 2:
// ATTrackingManagerAuthorizationStatusDenied case
break;
case 3:
// ATTrackingManagerAuthorizationStatusAuthorized case
break;
}
});
}

Example

この例では、ユーザーがプロンプトを操作した際の認証ステータスを、人間が読み取れる形式でログに記録する方法を示しています。

main.dart
import 'package:adjust_sdk/adjust.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
initPlatformState() async {
AdjustConfig config =
new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
config.logLevel = AdjustLogLevel.verbose;
Adjust.initSdk(config);
Adjust.requestAppTrackingAuthorization().then((status) {
print('[Adjust]: Authorization status update!');
final int statusInt = status.toInt();
switch (statusInt) {
case 0:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusNotDetermined');
break;
case 1:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusRestricted');
break;
case 2:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusDenied');
break;
case 3:
print(
'[Adjust]: Authorization status update: ATTrackingManagerAuthorizationStatusAuthorized');
break;
}
});
}

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

Method signature
static Future<int> getAppTrackingAuthorizationStatus() async

ユーザーの現在の認証ステータスは、いつでも取得することができます。getAppTrackingAuthorizationStatusメソッドを呼び出し、 整数 で認証ステータスコードを返してください。

Adjust.getAppTrackingAuthorizationStatus().then((status) {
// status gives you information about ATT consent value
});

Example

This example shows how to collect the user’s authorization status and convert it to a String. This information is assigned to a variable called authorizationStatus and passed as a session partner parameter with the key "status".

String authorizationStatus = Convert.ToString(Adjust.getAppTrackingAuthorizationStatus());
Adjust.addSessionPartnerParameter("status", authorizationStatus);

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

Method signature
static void checkForNewAttStatus()

If you use a custom ATT prompt, you need to inform the Adjust SDK of changes to the user’s authorization status. Call the checkForNewAttStatus method to send the authorization status to Adjust’s servers.

Adjust.checkForNewAttStatus();

プロンプトのタイミングをカスタム設定する

Property declaration
num? attConsentWaitingInterval;

アプリにオンボーディングやチュートリアルのステップが含まれる場合、ユーザーがこのプロセスを完了するまでATT同意ステータスの送信を遅らせたいことがあるかもしれません。その場合は、attConsentWaitingIntervalプロパティを設定することで、初回オンボーディングを完了するための時間として 最大360秒 までデータの送信を遅らせることができます。タイムアウトが終了するか、ユーザーが同意ステータスを設定すると、SDKはその間に記録した全ての情報を同意ステータスとともにAdjustのサーバーへ送信します。

AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
adjustConfig.attConsentWaitingInterval = 30;
Adjust.initSdk(adjustConfig);

App Tracking Transparencyの使用を無効にする

プロパティ宣言
bool? isAppTrackingTransparencyUsageEnabled;

Adjust SDKによるAppTrackingTransparency.frameworkとの自動連携を無効にする場合は、SDKの初期化前にAdjustConfigインスタンスのisAppTrackingTransparencyUsageEnabledプロパティをfalseに設定する必要があります。

AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);
adjustConfig.isAppTrackingTransparencyUsageEnabled = false;
Adjust.initSdk(adjustConfig);