데이터 패칭하기
아래 내용을 참고해 주세요.Airbridge Device ID
Airbridge의 기기 식별자 입니다. (예시: 82A16EC9-A273-48B6-9BB2-017EAB641109)iOS SDK
iOS SDK (Deprecated)
Airbridge Generated UUID
Airbridge에서 기기별로 인스톨시에 부여하는 랜덤한 UUID 입니다. (예시: 82A16EC9-A273-48B6-9BB2-017EAB641109)iOS SDK
iOS SDK (Deprecated)
ATT (App Tracking Transparency)
iOS 14.5 이상에서 다른 회사의 앱과 웹사이트에 걸쳐 사용자의 활동을 추적하거나 IDFA에 접근하려면 ATT(App Tracking Transparency)를 통해 동의를 받아야 합니다. 사용자는 시스템 프롬프트에서 앱의 추적 허용 여부를 선택할 수 있습니다. Airbridge iOS SDK를 통해 ATT 동의를 요청하고 현재 동의 상태를 조회할 수 있습니다. ATT 요청은 앱에서 명시적으로 호출해야 합니다.사용하기 전에
- Airbridge SDK를 초기화하고 호출해 주세요.
- 이 API는 일반 iOS SDK에서 제공합니다. Restricted SDK에서는 제공하지 않습니다.
- 앱의
Info.plist에NSUserTrackingUsageDescription을 추가해 주세요. 이 값은 사용자가 ATT 프롬프트에서 확인하는 추적 목적 설명입니다. 아래 예시의 문구를 앱의 실제 데이터 사용 목적에 맞게 변경해 주세요.
ATT 동의 요청하기
requestTrackingAuthorization을 호출하면 SDK가 Apple ATT API에 동의 요청을 전달합니다.
SDK는 앱이 활성화될 때까지 요청을 대기시키지 않으므로 앱이 활성 상태일 때 호출해 주세요.
앱 시작 시 요청하려면 SDK 초기화 이후의 applicationDidBecomeActive 또는 sceneDidBecomeActive 등 앱이 활성화된 시점에서 호출할 수 있습니다.
반환값과 완료 콜백은 아래와 같이 구분해 확인해 주세요.
- 반환값이
true이면 SDK가 요청을 처리하기 위해 접수한 상태입니다. 프롬프트 표시 여부와 사용자의 동의 여부는 이 값으로 판단할 수 없습니다. - SDK가 초기화되지 않았거나 비활성화된 상태이면
false를 반환하며 완료 콜백을 호출하지 않습니다. - 완료 콜백은 메인 큐에서 호출되며,
AirbridgeTrackingAuthorization으로 ATT 상태를 전달합니다.
ATT 동의 상태 조회하기
trackingAuthorizationStatus()는 현재 ATT 상태를 동기적으로 반환합니다.
상태 조회만으로 ATT 프롬프트를 표시하거나 동의를 요청하지 않습니다.
SDK가 초기화되지 않았거나 비활성화된 상태이면 notDetermined를 반환합니다.
이 경우에는 SDK 초기화 및 활성화 상태를 먼저 확인해 주세요.
ATT 상태 이해하기
요청 결과와 상태 조회에는 동일한AirbridgeTrackingAuthorization을 사용합니다.
iOS 14 미만 등 ATT를 지원하지 않는 환경에서는, 초기화되고 활성화된 일반 SDK의 요청 결과와 상태 조회가
authorized를 반환합니다.
이 값은 미지원 환경에 대한 SDK의 반환값이며 ATT 프롬프트에서 사용자가 동의했다는 뜻으로 해석하지 않아야 합니다.
API를 호출하기 위해 앱 코드에서 iOS 버전 분기를 추가할 필요는 없습니다.
프롬프트가 표시되지 않는 경우
ATT 프롬프트의 표시 여부는 Apple의 동작과 사용자의 설정에 따라 결정됩니다. 요청 반환값이true여도 프롬프트가 표시되지 않을 수 있습니다.
아래 내용을 확인해 주세요.
- 앱이 활성 상태인지 확인해 주세요. 앱이 활성화되기 전이나 백그라운드에서 요청하면 프롬프트가 표시되지 않을 수 있습니다.
- 알림 등 다른 권한 요청이 사용자의 응답을 기다리는 중인지 확인해 주세요. 권한 요청을 동시에 호출하지 않고 앞선 요청이 완료된 후 ATT를 요청해 주세요. iOS는 동시에 발생한 권한 요청을 나중에 표시하도록 보관하지 않습니다.
- 완료 콜백 또는 상태 조회 결과를 확인해 주세요.
notDetermined이면 표시 조건을 확인한 뒤 앱에서 다시 요청할 수 있습니다. SDK는 자동 재요청이나 중복 요청 병합을 수행하지 않습니다. - 사용자가 설정에서 앱의 추적을 거부했거나 시스템에서 추적 요청을 제한했는지 확인해 주세요. 이미 결정된 상태에서 다시 호출하는 것만으로 프롬프트가 다시 표시되거나 권한이 변경되는 것은 보장되지 않습니다.
Info.plist의NSUserTrackingUsageDescription설정을 확인해 주세요.
기존 ATT 대기 설정과 함께 사용하기
ATT 동의를 요청하는 API와 SDK의 ATT 결정 대기 설정을 함께 확인해 주세요. 기존 SDK의 ATT 상태 확인 및 처리 대기 동작은 유지됩니다. 기본 설정에서는 ATT 상태가 결정될 때까지 install 이벤트와 디퍼드 딥링크, 어트리뷰션 관련 처리가 최대 30초 대기합니다. 대기 시간을 설정한 경우 해당 설정값을 따릅니다.requestTrackingAuthorization은 ATT 동의 요청을 전달하며, 기존 대기 시간을 다시 시작하거나 늘리지 않습니다.
trackingAuthorizationStatus()도 ATT 결정 처리나 저장된 처리 상태를 변경하지 않습니다.
ATT 동의가 아직 결정되지 않은 상태에서 대기 시간이 끝나면 SDK의 대기 중인 처리가 진행될 수 있습니다.
앱의 요청 시점과 사용자의 응답에 필요한 시간을 고려해 기존 autoDetermineTrackingAuthorizationTimeout 설정을 확인해 주세요.
이 설정은 SDK의 처리 대기 시간에 적용되며, ATT 프롬프트의 표시 여부나 사용자의 동의 상태를 변경하지 않습니다.