AppTrackingTransparency 프레임워크

기기의 IDFA를 기록하고 싶다면 사용자의 동의를 얻기 위해 앱에서 프롬프트를 보여줘야 합니다. 이를 도입하려면 Apple의 App Tracking Transparency (ATT) 프레임워크를 사용해야 합니다. 사용자가 이에 대한 결정을 하면 Adjust SDK는 해당 정보를 보관합니다. Adjust SDK는 이후 해당 정보를 Adjust 백엔드에 전송하는 각 정보 패킷에 추가합니다.

참고:

이 기능은 Adjust SDK v4.28.0 및 이상 버전이 필요합니다.

Adjust SDK는 사용자의 결정을 다음과 같은 상태로 기록합니다.

상태의미
Authorized(승인됨)사용자가 앱 관련 데이터에 대한 디바이스 트래킹 액세스를 승인함.
Denied(거부됨)사용자가 앱 관련 데이터에 대한 디바이스 트래킹 액세스를 거부함.
Not Determined(결정하지 않음)사용자가 아직 액세스 프롬프트에 응답하지 않음.
Restricted(제한됨)앱 관련 데이터에 대한 액세스가 기기 수준에서 차단됨.

Adjust SDK는 Apple의 트래킹 승인 메서드에 대해 내장된 래퍼(wrapper)가 있습니다. ATT 프롬프트를 맞춤화하는 것을 원하지 않는 경우 이 래퍼를 사용할 수 있습니다. Adjust SDK는 승인 상태 변경을 수신하고, Adjust 백엔드로 전송합니다.

자체 ATT 프롬프트를 사용하는 경우에는 래퍼 메서드를 사용할 필요가 없습니다. 어플리케이션 설정AppTrackingTransparency.framework 를 포함해야 합니다. 프롬프트는 Adjust SDK의 초기화 전 또는 후에 표시할 수 있습니다. 초기화 전에 프롬프트를 제시하는 경우 Adjust SDK는 승인 상태를 설치 이벤트에 추가합니다. 초기화 이후에 프롬프트를 제시하는 경우 Adjust SDK는 승인 상태가 기록된 시점에 Adjust 백엔드로 이를 전송합니다.

앱 트래킹 승인 래퍼

Adjust SDK는 requestTrackingAuthorizationWithCompletionHandler 메서드 에 빌드된 래퍼를 포함합니다. 이는 사용자의 승인 상태에 대한 정보를 수집하거나 각 응답 값에 대한 콜백을 정의하는 데 사용할 수 있습니다. 사용자가 승인창에 응답하면 콜백이 트리거됩니다. SDK는 사용자의 선택에 대해 Adjust SDK에 알림을 전송할 수 있습니다. 콜백은 승인 상태를 보여주는 정수 값 을 반환합니다.

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];

승인 상태 변경 확인

Adjust SDK는 ATT 래퍼를 사용하는 경우 ATT 프롬프트에서 자동으로 사용자의 승인 상태 변경 정보를 읽습니다. 래퍼를 사용하지 않는 경우, 사용자가 선택한 후에 변경 상태를 확인하실 수 있습니다. 변경된 승인 상태를 확인하고 Adjust 백엔드로 전송하기 위해 checkForNewAttStatus 메서드를 사용하시기 바랍니다.

참고:

사용자가 승인 상태를 변경할 때마다 변경 사항을 확인해야 합니다.

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는 동의 사용자와 비동의 사용자에 대해 별도의 엔드포인트를 사용합니다.

기본 설정에 따라 Adjust SDK는 analytics.adjust.com 엔드포인트를 사용한 확률론적 모델링 을 위해 제한된 데이터 세트를 Adjust 서버로 전송합니다. 이 엔드포인트는 다음의 정보를 수신 하지 않습니다 .

  • idfa: 광고주를 위한 기기 ID (IDFA).
  • started_at: 기기 시작 시간.

사용자가 ATT 동의를 부여한 경우에만 Adjust SDK는 결정론적 어트리뷰션 에 필요한 IDFA와 started_at 속성 모두에 대한 액세스를 획득하고, 전체 페이로드를 consent.adjust.com에 전송합니다.

두 엔드포인트는 모든 URL 전략 에 사용할 수 있습니다.

URL 전략비동의 엔드포인트동의 엔드포인트
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