広告識別子(IDFA)を記録したい場合は、ユーザーの承認を得るためのプロンプトを表示する必要があります。これを行うには、アプリにAppleのApp Tracking Transparency(ATT)フレームワークを組み込む必要があります。Adjust SDKはユーザーの承認状況を保存し、リクエストごとにそれをAdjustサーバーに送信します。
承認ステータス
ステータス | コード | 説明 |
---|---|---|
ATTrackingManagerAuthorizationStatusNotDetermined | 0 | ユーザーがアクセスプロンプトに応答していない |
ATTrackingManagerAuthorizationStatusRestricted | 1 | アプリ関連データへのアクセスがデバイスレベルでブロックされている |
ATTrackingManagerAuthorizationStatusDenied | 2 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを拒否 |
ATTrackingManagerAuthorizationStatusAuthorized | 3 | ユーザーがデバイス計測によるアプリ関連データへのアクセスを承認 |
ATT承認ラッパー
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
この例では、ユーザーがプロンプトを操作した際の認証ステータスを、人間が読み取れる形式でログに記録する方法を示しています。
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; } });}
現在の承認ステータスを取得する
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);
承認ステータスの変更を確認する
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();
プロンプトのタイミングをカスタム設定する
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);