Airbridge Device ID 결정 로직
Airbridge Device ID는 각 OS에서 제공하는 Device UUID를 활용하여 각 디바이스를 고유하게 식별해내는 ID로 사용되고 있습니다.
Device UUID 란?
Device UUID(Universally Unique Identifier)는 iOS, Android 디바이스 마다 부여되는 고유한(Unique) 값입니다. 각각의 아이디는 e3fc0d3e-e1c7-49ea-bce3-6994721eb712
와 같은 포맷으로 이루어져 있으며, 목적에 따라 다른 용도로 활용하게 됩니다.
iOS
Airbridge는 iOS에서 제공하는 2가지 종류의 Device UUID를 사용하고 있으며, 각 Device UUID는 아래와 같은 특징을 가집니다.
IDFA (Identifier for Advertising)
- iOS에서 제공하는 Device 마다 고유한 ID
- 앱을 재설치 하여도 초기화 되지 않음
- 하나의 앱이라도 ATT 추적요청을 동의한 사용자가 설정 앱에서 모든 앱의 ATT 추적요청 응답을 거부로 바꾸면 초기화 됨
- 사용자가 ATT 추적요청에 동의하지 않은 경우,
00000000-0000-0000-0000-000000000000
값으로 고정됨 - Simulator인 경우,
00000000-0000-0000-0000-000000000000
값으로 고정됨
사용자가 ATT 추적요청에 동의하지 않은 경우
- 앱에서 ATT 추적요청을 하지 않은 경우 (아직 요청하기 이전인 상태를 포함)
- 사용자가 ATT 추적요청에 비동의를 선택한 경우
- 사용자의 연령이 광고추적을 해서는 안되는 경우
- 사용자가 설정앱에서 모든 앱의 ATT 추적요청에 자동으로 거부하는 옵션을 설정한 경우 (옵션명:
Allow Apps to Request to Track
)
Limit Ad Tracking에 대해서
- Limit Ad Tracking 은 iOS 14.0 부터 deprecated 되었으며, iOS는 14.5부터 언제나 true로 제공합니다.
- iOS 14.0 ~ 14.1 은 언제나 true로 제공합니다.
- iOS 14.2 ~ 14.4 는
Allow Apps to Request to Track
설정이 true면 false, false면 true로 제공합니다.- iOS 14.5 ~ 는 언제나 true로 제공합니다.
IDFV (Identifier for Vendor)
- iOS에서 제공하는 Device 내 App Vendor 마다 고유한 ID
- 디바이스에
com.example.1app
,com.example.2app
과 같이 Vendor가 같은 App이 복수개 설치되는 경우, 각 App은 같은 IFV 값을 가짐 - 그 Vendor의 App이 모두 삭제되고, 다시 App이 설치되면, 다른 IDFV 값을 가짐
Airbridge iOS SDK에서는 IDFA와 IDFV를 활용하여 아래와 같은 우선순위로 Airbridge Device ID를 결정하고 있습니다.
- IDFA 사용
- IDFV 사용: 사용자가 ATT 추적요청에 동의하지 않았거나 Device가 Simulator 인 경우
- Random UUID 사용: 예상하지 못한 이유로 IDFA, IDFV 모두 가져오는데 실패한 경우 Random하게 UUID를 만들어 사용합니다. (실제 데이터로 발견된 케이스 없음)
Android
Airbridge Android SDK는 Android에서 제공하는 1가지 종류의 Device UUID를 사용하고 있으며, 각 Device UUID는 아래와 같은 특징을 가집니다.
GAID (Google Advertising Identifier)
- Google Play Service에서 제공하는 Device 마다 고유한 ID
- 앱을 재설치 하여도 초기화 되지 않음
- 사용자가 설정앱에서 초기화 버튼을 클락하면 초기화 됨
- 사용자가 Limit Ad Tracking을 true로 설정하면,
00000000-0000-0000-0000-000000000000
값으로 고정됨 - Google Play Service가 없는 디바이스에서는 수집될 수 없음 (예: Amazon FireStick)
Airbridge Android SDK에서는 GAID를 활용하여 다음과 같이 Airbridge Device ID를 결정하고 있습니다.
- GAID 사용
- Random UUID 사용: Google Play Service가 해당 디바이스에 존재하지 않아 해당 값을 수집할 수 없는 경우, Random하게 UUID를 만들어 사용합니다.
Updated over 1 year ago