Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 개발자
- Realm
- window
- JPA
- Session
- view
- Firebase
- Code
- IOS
- Swift
- appstore
- Notification
- Git
- rxswift
- mac
- Apple
- geofencing
- MacOS
- darkmode
- Xcode
- 웹뷰
- github
- UIButton
- FLUTTER
- SwiftUI
- iOS16
- 한글
- Archive
- stack
- error
Archives
- Today
- Total
EEYatHo 앱 깎는 이야기
Swift ) IDFA (ADID) (광고식별자) - EEYatHo iOS 본문
반응형
정의
- IDFA ( Identifier For Advertisers )
iOS 의 광고식별자이다.
Apple이 사용자의 기기에 무작위로 할당하는 기기 ID.
IDFA는 개인 정보를 노출하지 않고 사용자를 추적하고 식별하는 데 사용하며, 광고주는 IDFA로 맞춤형 광고를 제공. - ADID ( Advertising Identifier )
iOS 6.0 부터 광고식별자로 사용하라고 제공하는 디바이스 식별자이다.
= iOS 6.0 부터, ADID 를 IDFA 로 사용한다. ( 그 전에는 UDID )
IDFA 특징, 성질
- 앱의 삭제 및 재설치 여부와 관계없이, 동일한 IDFA를 가진다.
- 단일 벤더에서 모든 앱에 할당하고 해당 벤더의 모든 앱을 제거하면 바뀌는 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 )
한번 요청했으면, 이후 같은 코드를 실행해도 팝업이 뜨지 않는다.
'iOS, Swift' 카테고리의 다른 글
Swift ) 한글 스캔 OCR 시도한 것들 정리 - EEYatHo iOS (0) | 2021.11.30 |
---|---|
Swift ) lottie keyNotFound error - EEYatHo iOS (0) | 2021.11.30 |
Swift ) Realm List Migration - EEYatHo iOS (0) | 2021.11.14 |
Swift ) StackView backgroundColor - EEYatHo iOS (0) | 2021.11.03 |
Swift ) view가 button클릭을 막을 때 - EEYatHo iOS (0) | 2021.10.27 |
Comments