본문으로 건너뛰기

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.requestTrackingAuthorization { (status) in
print("permissionStatus: \(status)")
}
  1. 사용자 동의 상태 조회

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

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>