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에 디펜던시로 기재 되어 있습니다.
DSP | version | 비고 |
---|---|---|
구글 DFP | 7.66.0 | |
구글 IMA | 3.12.1 | |
페이스북 FAN | 6.0.0 | |
Inmobi | 9.1.0 | |
Unity | 4.2.1 |
SKAdNetwork Id 기재
DSP 의 SDK는 Apple의 SKAdNetwork를 사용하여 전환 추적을 지원합니다.
구글 DFP, 구글 IMA, 페이스북, 인모비, 유니티 광고제공자를 사용한다면 해당 DSP에서 제공하는 SKAdNetworkId를 info.plist에 기재해야합니다.
- 구글
- 페이스북
- Inmobi
- Unity
- AppLovin
- Vungle
IDFA 사용자 동의 얻기
IDFA 사용자 동의의 경우, 서비스의 정책과 광고 스펙에 따라 권한 요청 여부를 결정할 수 있습니다. 권한 요청이 필요 할 때, 아래 2가지 방법을 제시합니다.
ATT Framework를 통한 동의 얻기
App Tracking Transparency 프레임워크를 통해 직접 구현하여, 권한 요청을 할 수 있습니다. 자세한 내용은 공식 가이드를 참고해주세요.
GFPAdPermission 을 통한 동의 얻기
GFPAdPermission은 ATT 프레임워크를 맵핑한 SDK입니다. 해당 SDK를 통해 권한 요청을 할 수 있으며, permission 의 status를 조회할 수 있습니다.
- 의존성 추가
source 'https://oss.navercorp.com/da-ssp-app-sdk/gfp-sdk-ios-podspec.git'
target 'MyApplication' do
pod 'GFPAdPermissionSDK' # Permission SDK
end
- info.plist에 description 작성
<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to deliver personalized ads to you.</string>
- 사용자 동의 얻기
사용자 동의 팝업은 iOS14 이상에서만 노출되며, iOS14 미만의 경우 isAdvertisingTrackingEnabled 값에 따라 status를 반환합니다.
- Objective-C
- Swift
[GFPAdPermission requestTrackingAuthorizationWith:^(GFPAdPermissionStatus status) {
NSLog(@"permissionStatus: %d", status);
}];
GFPAdPermission.requestTrackingAuthorization { (status) in
print("permissionStatus: \(status)")
}
- 사용자 동의 상태 조회
status에 관한 enum 값은 GFPAdPermission.h를 참고해주세요.
- Objective-C
- Swift
GFPAdPermissionStatus status = [GFPAdPermission status];
let 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>