App Tracking Transparency

IDFA (Identifier for Advertisers)

  • iOS 14.5 이전에는 광고주가 IDFA (Identifier for Advertisers)를 사용하여 광고 성과 측정 및 맞춤형 광고를 할 수 있었습니다. 하지만 iOS 14.5+ 이상에서 ATT (App Tracking Transparency) 도입으로 인하여 개인 정보 보호가 강화됨에 따라, 사용자가 동의를 허용한 경우에만 IDFA (Identifier for Advertisers) 값을 가져올 수 있습니다.

광고 수익 증가를 위해서, iOS 14.5+에 대응하여 ATT(App Tracking Transparency) Framework 관련 처리가 필요합니다.

ATT (App Tracking Transparency) 사용

  • iOS 14.5+ 이상에서 IDFA 와 같은 식별자에 대한 액세스 및 사용에 대한 권한을 요청하려면 ATT (App Tracking Transparency) 동의 알림을 사용해야 합니다. 코딩을 통한 IDFA (Identifier for Advertisers) 접근 권한을 수동으로 획득 할 경우, 아래의 5가지 절차를 따라 주십시오.

애드몹 UMP (User Messaging Platform)를 활용하여 자동으로 ATT (App Tracking Transparency) 동의 알림을 처리하는 것이 권장됩니다.

IDFA (Identifier for Advertisers) 접근 권한을 획득하는 방법은 이 페이지에 기술된 5가지 절차를 통하여 1) 수동으로 획득하는 방법과 코딩 작업없이 2) 애드몹 UMP(User Messaging Platform)를 이용한 IDFA 접근 권한을 획득할 수 있는 방법 (권장 방법)이 있습니다.


애드몹 UMP의 IDFA 요청 메시지 기능을 사용하여 IDFA 접근 권한을 획득 하려면 , 이 문서의 UMP (User Messaging Platfom) 이동하여 기술된 내용에 따라 설정하여 주십시오.


유럽 경제 지역 (European Economic Area)에서 iOS 애플리케이션을 서비스하고 있거나, 또는 서비스할 계획이 있다면 iOS ADX SDK 버전 2.5.0 (또는 Unity ADX SDK 버전 2.5.0) 이상을 설치하고, 이 문서의 UMP (User Messaging Platfom) 이동하여 기술된 내용에 따라 설정하여 주십시오.

Step 1. SDK 준비

신규 및 업데이트 앱의 경우 iOS SDK 버전 2.5.0 이상을 준비하시고, 유니티의 경우 Unity Package 버전 2.5.0 이상을 준비합니다.

Step 2. SKAdNetwork 구성

사용자의 ATT 동의 여부와 무관하게, 애플에서 공식으로 제공하는 광고 캠페인의 성공을 측정하기 위한 목적으로 SKAdNetwork 를 도입하였습니다. SKAdNetwork 를 사용하기 위해서는 iOS 앱 프로젝트에 있는 Info.plist 파일에 광고 식별자 목록 정보를 추가하여 주십시오.

광고 네트워크에 지원되는 식별자 목록은 이 안내 문서의 SKAdNetwork ID List 에서 확인할 수 있습니다.

(예제)

<key>SKAdNetworkItems</key>
    <array>
        <dict>
            <key>SKAdNetworkIdentifier</key>
            <string>example100.skadnetwork</string>
        </dict>
        <dict>
            <key>SKAdNetworkIdentifier</key>
            <string>example200.skadnetwork</string>
        </dict>
    </array>

Step 3. 권한 사용에 대한 설명 문구 추가

Info.plist 파일에 NSUserTrackingUsageDescription 키와 권한 사용에 대한 동의를 구하는 메시지를 추가합니다.

Info.plist파일에 설명 문구를 추가하지 않으면 비정상 종료 (Crash)가 발생하니 유의 하십시오.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

사용 설명 메시지는 ATT 팝업에 표시됩니다.

Step 4. 권한 요청

권한 승인 요청을 표시하려면 requestTrackingAuthorizationWithCompletionHandler: 를 호출합니다.

애드몹 UMP (User Messaging Platform)의 IDFA 메시지 기능 활성화 시, 특별한 프로그래밍 코딩을 하지 않아도, UMP 내부에서 자동으로 ATT 동의 알림 요청 기능을 수행하므로, 이 단계(Step4)와 다음 단계 (Step5)를 무시 하십시오.


애드몹 UMP (User Messaging Platform)의 IDFA 메시지는 iOS ADX SDK V2.5.0, Unity ADX SDK V2.5.0 이상 버전부터 지원됩니다.


애드몹 UMP에 포함된 GDPR 동의 메시지 및 IDFA 요청 메시지 기능을 사용하려면, 이 문서의 UMP (User Messaing Platform)을 참조하여 주십시오.

  • ATT는 앱이 완전히 실행되어 Active 상태일 때 호출해주셔야 정상적으로 팝업이 노출됩니다.

    • application:didFinishLaunchingWithOptions:에서 ATT를 호출하고 있었다면, iOS 15 부터는 동작하지 않습니다.

  • 사용자가 앱 추적 투명성 권한을 부여하면 광고 SDK에서 광고 요청에 IDFA를 사용할 수 있도록 완료 callback이 호출된 후, 광고를 요청합니다.

#import <AppTrackingTransparency/AppTrackingTransparency.h>

- (void)requestIDFA {
    if (@available(iOS 14.5, *)) {
        // ATT 알림을 통한 권한 요청
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
        
        }];
    } 
}

IDFA 획득을 위한 ATT opt-in(광고추적 동의팝업)은 앱이 완전히 실행된 경우 (Active 상태)에만 호출할 수 있습니다.


iOS 15 이전에는 앱 실행 직후, ATT 동의 알림을 노출할 수 있었으나 iOS 15 부터는 앱이 완전히 실행된 후 (Active 상태)에 호출하도록 변경되었습니다.

Step 5. Facebook ATE Flag 처리

ATT opt-in 결과에 따라 Facebook ATE (AdvertiserTrackingEnabled) Flag가 처리되어야 합니다. FBAdSettingssetAdvertiserTrackingEnabled를 호출하여 결과에 따른 값을 설정합니다.

#import "AppDelegate.h"
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <FBAudienceNetwork/FBAdSettings.h>

@implementation AppDelegate

- (void)requestIDFA {
    if (@available(iOS 14.5, *)) {
        // ATT 알림을 통한 권한 요청
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            // 광고추적제한 설정 (페이스북 광고 ATE 설정)
            if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                [FBAdSettings setAdvertiserTrackingEnabled:YES];
            } else {
                [FBAdSettings setAdvertiserTrackingEnabled:NO];
            }
        }];
    }
}

@end

Last updated