iOS 광고식별자 IDFA(Identifier For Advertisers)

2021. 11. 18. 16:54개발자료/iOS


반응형

● info.plist

<plist version="1.0">
<dict>
	...
	<key>NSUserTrackingUsageDescription</key>
	<string>Tracking을 사용하는 이유</string>
    ...
</dict>
</plist>

※ Tracking을 사용하는 이유를 대충 명시할 경우 리젝당할수 있다.

● 권한요청(Objective-C)

if (@available(iOS 14, *)) {
    [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
        switch (status) {
            case ATTrackingManagerAuthorizationStatusAuthorized:
                break;
            case ATTrackingManagerAuthorizationStatusDenied:
                break;
            case ATTrackingManagerAuthorizationStatusRestricted:
                break;
            case ATTrackingManagerAuthorizationStatusNotDetermined:
                break;
            default:
                break;
        }
    }];
}
if #available(iOS 14, *) {
    ATTrackingManager.requestTrackingAuthorization { status in
        switch status {
        case .authorized:
        case .denied:
        case .notDetermined:
        case .restricted:
        default:
        }
    }
}

● 권한 상태 확인

ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];

- ATTrackingManagerAuthorizationStatusNotDetermined 
사용자에게 권한 승인이 요청되지 않은 상태
- ATTrackingManagerAuthorizationStatusRestricted 
사용자가 시스템 설정에서 권한을 거부한 상태
- ATTrackingManagerAuthorizationStatusDenied 
사용자가 권한을 거부한 상태
- ATTrackingManagerAuthorizationStatusAuthorized 
사용자가 권한을 승인한 상태 

● iOS 14 부터는 IDFA사용전 사용자에게 권한을 요청해야 한다. (리젝사유)

● iOS 15 부터는 앱이 완전히 실행된 상태에서만 권환을 요청할 수 있다. AppDelegate에서 권한을 요청했던 앱은 ViewController에서 권한을 요청하는 형태로 변경해야 함.

 

 

 

반응형