iOS 앱에서 오퍼월 광고 및 광고 효율 추척을 위해 사용하던 광고ID 값인 IDFA를 수집하기 위해서 앞으로는 사용자의 권한을 필수로 받아야 한다.
iOS 14.5 이전 버전에서는 별도의 사용자 승인없이 IDFA를 수집할수 있었으나 iOS 14.5 이상 부터는 IDFA를 수집하기 위해서는 필수로 권한을 받아야 한다.
기존 IDFA를 가져오기 위해서는 AdSupport 프레임워크를 통해 아래 코드로 수집이 가능했었다.
import AdSupport
ASIdentifierManager.shared().advertisingIdentifier
하지만 위 코드로 IDFA를 수집하려면 AppTrackingTranparency 프레임워크를 통해 추가로 팝업을 요청해 주어야 한다.
그럼 IDFA 권한 승인을 위한 팝업을 요청하는 방법을 알아보자!
1. AppTrackingTranparency import 시키기
import AppTrackingTransparency
2. iOS 14 이상에서만 권한 팝업을 노출 시키도록 코드 설정
if #available(iOS 14, *) {
ATTrackingManager.requestTrackingAuthorization { (status) in
switch status {
case .authorized: print("authorized")
case .denied: print("denied")
case .notDetermined: print("notDetermined")
case .restricted: print("restricted")
default: break
}
}
}
3. info.plist에서 NSUserTrackingUsageDescription 항목을 정의
<key>NSUserTrackingUsageDescription</key>
<string>앱이 타겟광고게재 추적 목적으로 IDFA에 접근하려고 합니다.</string>
위와 같이 코드를 정의 하면 2번 항목 코드가 호출되는 시점에서 아래와 같이 권한 요청 팝업이 출력된다.
위 권한 요청 팝업은 앱 설치 후 딱 1번만 호출되기 때문에 앱에 추적 금지 요청을 한 사용자에게 다시 허용을 받으려면 아래 카카오페이지에서 구현한 방법과 같이 별도 팝업을 작성한 후 앱의 설정으로 이동하도록 구현해야 한다.
설정으로 이동하면 아래 이미지와 같이 광고 추척 부분의 스위치를 볼수 있으며 해당 스위치를 사용자가 활성화를 할 경우 위에서 노출한 허용과 동일한 효과를 볼 수 있다.
또한 추가적으로 IDFA 권한을 허용할 수 있도록 앱에서 사용자 동의를 받기 위한 최적의 플로우를 구현하도록 가이드 하는 링크를 기입한다.
'개발' 카테고리의 다른 글
Swift 위치 권한 팝업 요청 및 단말기 현재 위치 가져오기 (0) | 2021.04.01 |
---|---|
Android Java로 Kakao Login V2 이용해 보기 (0) | 2021.03.18 |
Swift TextField 엔터키 이벤트 수신하는 방법! (0) | 2021.02.16 |
Xcode 에서 특정 문자열 한번에 고치는 방법 (0) | 2021.02.09 |
유니버셜 링크에 대해 알아보자! (2) | 2021.02.09 |