본문으로 건너뛰기

iOS 14 업데이트 대응

iOS 14 버전 부터 IDFA(=ID for Advertisers, 광고 식별자)를 사용하기 전에 사용자의 동의를 얻어야 합니다. 사용자 동의를 얻지 않을 경우 IDFA의 값이 유효하지 않은 값(=00000000-0000-0000-0000-000000000000) 으로 표기되어, 사용자 추적 및 식별에 이슈가 발생합니다.

자세한 내용은 WWDC 2020 - Build trust through better privacy를 참고해주세요.

iOS 14에서 기본 브라우저 변경 기능이 추가 되었습니다. 기본 브라우저가 Safari가 아닌 다른 브라우저(ex. 크롬)일 경우, 랜딩에 이슈가 있으므로 Info.plist에 scheme 를 설정해야 합니다.

이 가이드는 iOS 14 대응을 위한 변경 사항에 대해 기재한 가이드이며, 아래 내용을 참고하여 적용 부탁드립니다.

NAMSDK 지원 버전

  • NAMSDK 4.3.0 버전 혹은 그 이상의 버전부터 iOS 14 를 지원합니다.

DSP 별 적용 가이드

구글 DFP, 구글 IMA, 페이스북, 인모비, 유니티 광고제공자를 사용한다면 아래 가이드를 참고하여, 추가로 적용해주시기 바랍니다.

DSP 별 대응 버전

각 DSP 별로 iOS 14 대응이 완료된 버전이며, 해당 버전은 NAMSDK 4.3.0 Podspec에 디펜던시로 기재 되어 있습니다.

DSPversion비고
구글 DFP7.66.0
구글 IMA3.12.1
페이스북 FAN6.0.0
Inmobi9.1.0
Unity4.2.1

SKAdNetwork Id 기재

DSP 의 SDK는 Apple의 SKAdNetwork를 사용하여 전환 추적을 지원합니다.

구글 DFP, 구글 IMA, 페이스북, 인모비, 유니티 광고제공자를 사용한다면 해당 DSP에서 제공하는 SKAdNetworkId를 info.plist에 기재해야합니다.

IDFA 사용자 동의 얻기

IDFA 사용자 동의의 경우, 서비스의 정책과 광고 스펙에 따라 권한 요청 여부를 결정할 수 있습니다. 권한 요청이 필요 할 때, 아래 2가지 방법을 제시합니다.

ATT Framework를 통한 동의 얻기

App Tracking Transparency 프레임워크를 통해 직접 구현하여, 권한 요청을 할 수 있습니다. 자세한 내용은 공식 가이드를 참고해주세요.

GFPAdPermission 을 통한 동의 얻기

GFPAdPermission은 ATT 프레임워크를 맵핑한 SDK입니다. 해당 SDK를 통해 권한 요청을 할 수 있으며, permission 의 status를 조회할 수 있습니다.

  1. 의존성 추가
source 'https://oss.navercorp.com/da-ssp-app-sdk/gfp-sdk-ios-podspec.git' 

target 'MyApplication' do
pod 'GFPAdPermissionSDK' # Permission SDK
end
  1. info.plist에 description 작성
<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to deliver personalized ads to you.</string>
  1. 사용자 동의 얻기

사용자 동의 팝업은 iOS14 이상에서만 노출되며, iOS14 미만의 경우 isAdvertisingTrackingEnabled 값에 따라 status를 반환합니다.

[GFPAdPermission requestTrackingAuthorizationWith:^(GFPAdPermissionStatus status) {
NSLog(@"permissionStatus: %d", status);
}];
  1. 사용자 동의 상태 조회

status에 관한 enum 값은 GFPAdPermission.h를 참고해주세요.

GFPAdPermissionStatus status = [GFPAdPermission status]; 

기본 브라우저 변경 대응

광고 클릭 시, NAMSDK 내부에서는 canOpenURL: 체크 후 openURL:options:completionHandler:으로 랜딩합니다.

다른 브라우저(ex. 크롬)로 설정되어 있고 plist에 스킴이 없는 경우, canOpenURL: 이 NO로 리턴되어 랜딩되지 않으므로 Info.plist에 스킴 추가가 필요합니다.

<key>LSApplicationQueriesSchemes</key>
<array>
<string>http</string>
<string>https</string>
</array>