IDFA(ID for Advertisers)를 기록하려면 사용자의 허가를 받기 위한 메시지를 표시해야 합니다. 이렇게 하려면 앱에 Apple의 ATT(App Tracking Transparency) 프레임워크를 포함해야 합니다. 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; } });}
예
This example shows how to log a human-readable description of the user’s authorization status when they interact with a prompt.
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
You can retrieve a user’s current authorization status at any time. Call the getAppTrackingAuthorizationStatus
method to return the authorization status code as an integer .
Adjust.getAppTrackingAuthorizationStatus().then((status) { // status gives you information about ATT consent value});
예
예시에서는 사용자의 인증 상태를 수집하여 String
으로 변환하는 방법을 보여줍니다. 해당 정보는 authorizationStatus
라는 변수로 할당되어 키 "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;
If your app includes an onboarding process or a tutorial, you may want to delay sending your user’s ATT consent status until after the user has completed this process. To do this, you can set the attConsentWaitingInterval
property to delay the sending of data for up to 360 seconds to give the user time to complete the initial onboarding. After the timeout ends or the user sets their consent status, the SDK sends all information it has recorded during the delay to Adjust’s servers along with the user’s consent status.
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);adjustConfig.attConsentWaitingInterval = 30;
Adjust.initSdk(adjustConfig);
App Tracking Transparency 사용 비활성화
bool? isAppTrackingTransparencyUsageEnabled;
AppTrackingTransparency.framework
와 Adjust SDK와의 자동 상호작용을 비활성화하고 싶은 경우, SDK 초기화 전에 AdjustConfig
인스턴스의 isAppTrackingTransparencyUsageEnabled
속성을 false
로 설정합니다.
AdjustConfig adjustConfig = new AdjustConfig('{YourAppToken}', AdjustEnvironment.sandbox);adjustConfig.isAppTrackingTransparencyUsageEnabled = false;
Adjust.initSdk(adjustConfig);