EEYatHo 앱 깎는 이야기

Swift ) IDFA (ADID) (광고식별자) - EEYatHo iOS 본문

iOS, Swift

Swift ) IDFA (ADID) (광고식별자) - EEYatHo iOS

EEYatHo 2021. 11. 19. 18:35
반응형

 

정의


  • IDFA ( Identifier For Advertisers )
    iOS 의 광고식별자이다.
    Apple이 사용자의 기기에 무작위로 할당하는 기기 ID.
    IDFA는 개인 정보를 노출하지 않고 사용자를 추적하고 식별하는 데 사용하며, 광고주는 IDFA로 맞춤형 광고를 제공.


  • ADID ( Advertising Identifier )
    iOS 6.0 부터 광고식별자로 사용하라고 제공하는 디바이스 식별자이다.
    = iOS 6.0 부터, ADIDIDFA 로 사용한다. ( 그 전에는 UDID )

 

ADID 애플 문서 링크

 

 

 

 

IDFA 특징, 성질


  1. 앱의 삭제 및 재설치 여부와 관계없이, 동일한 IDFA를 가진다.
     
  2. 단일 벤더에서 모든 앱에 할당하고 해당 벤더의 모든 앱을 제거하면 바뀌는 IDFV 와는 달리, 
    IDFA는 기기 수준에서 할당되며 사용자가 재설정이 가능하긴 하다.
    ( 설정 → 일반 → 전송 또는 iPhone 재설정 → 모든 설정 재설정 or 위치 및 개인 정보 보호 재설정 )

 

   3. 하지만, 유저가 특별한 액션을 취해야만 바뀌므로, DeviceId 로 쓰기에 충분히 유효하다.

 

   4. 유저가 설정 → 특정앱 Page 에서 추적 허용을 끈 뒤, 앱을 삭제 & 재설치 후 추적 허용을 다시 키면, IDFA는 유지된다.

 

 

 

 

 

 

iOS 6 특이사항


iOS 5 까지는 

UDID 라는 디바이스 식별자를, 광고식별자 (IDFA) 로 사용했다.

 

iOS 6 부터는 개인정보 보호정책이 변경되면서,

ADID 라는 변경 가능한 식별자를 광고식별자 (IDFA) 로 사용한다.

->  앱에서 UDID 를 접근하지 못하게하고 ADID 라는 값을 제공한다.

  IDFA
~ iOS 5 UDID
iOS 6 ~ ADID

 

 

 

 

iOS 14.5 특이사항


iOS14.5 미만은 마음대로 접근가능.
iOS14.5 이상부터는 개인정보 보호정책이 변경 되면서 유저의 앱 추적 동의가 필요하다.

 

관련 링크

 

 

 

 

IDFA 접근하는 방법


UUID 형태로 얻을 수 있다
( ex. 12345678-1234-1111-2222-111122223333 )

import AdSupport
print(ASIdentifierManager.shared().advertisingIdentifier.uuidString)

// 정상적인 IDFA 형태. 모두 숫자.
// 12345678-1234-1111-2222-111122223333

// iOS14.5 이상에서, 앱 추적 동의 권한을 요청하지 않았거나 유저가 거절한 경우 or 시뮬레이터인 경우
// 00000000-0000-0000-0000-000000000000

 

 

 

 

 

iOS 14.5 이상에서, 앱 추적 동의 요청 Alert 띄우는 방법


import AppTrackingTransparency
ATTrackingManager.requestTrackingAuthorization { (status) in 
    switch status { 
    case .authorized: 
        print("IDFA 허용됨")
        print(ASIdentifierManager.shared().advertisingIdentifier.uuidString)
    case .denied: 
        print("IDFA 거절됨") 
    case .notDetermined: 
        print("IDFA 요청 팝업을 띄운적이 없음") 
    case .restricted: 
        print("IDFA 제한됨") // 사용자의 연령이 낮거나, 모르거나, 교육모드 등의 이유 
    @unknown default:
        print("Unknown")
    } 
}

 

알림, 사진, 앨범 등의 권한을 요청 할 때 처럼,

info.plist에 요청 문구를 적어줘야하며, ( Privacy - Tracking Usage Description )

한번 요청했으면, 이후 같은 코드를 실행해도 팝업이 뜨지 않는다.

 

 

 

Comments