Skip to main content

Migrating to iOS 14

Starting with iOS 14, user consent must be obtained before using IDFA (ID for Advertisers). If user consent is not obtained, the IDFA value will be displayed as an invalid value (=00000000-0000-0000-0000-000000000000), causing issues with user tracking and identification.

For more details, please refer to WWDC 2020 - Build trust through better privacy.

iOS 14 introduced the ability to change the default browser. If the default browser is set to a browser other than Safari (e.g. Chrome), there may be issues with landing, so you must configure the scheme in Info.plist.

This guide describes the changes required to support iOS 14. Please refer to the content below and apply accordingly.

NAMSDK Supported Versions

Application Guide for Each DSP

If you are using ad providers such as Google DFP, Google IMA, Facebook, InMobi, or Unity, please refer to the guide below and apply the additional steps.

iOS 14-Compatible Versions per DSP

These are the versions in which iOS 14 support has been completed for each DSP. The versions are listed as dependencies in the NAMSDK 4.3.0 Podspec.

DSPversionNotes
Google DFP7.66.0
Google IMA3.12.1
Facebook FAN6.0.0
Inmobi9.1.0
Unity4.2.1

Enter SKAdNetwork IDs

The DSP SDKs support conversion tracking using Apple's SKAdNetwork.

If you are using ad providers such as Google DFP, Google IMA, Facebook, InMobi, or Unity, you must enter the SKAdNetworkId provided by each DSP into your info.plist.

For IDFA user consent, whether to request permission can be decided based on your service policy and ad specifications. When permission needs to be requested, the following two methods are available.

You can request permission by implementing it directly through the App Tracking Transparency framework. For more details, please refer to the official guide.

GFPAdPermission is an SDK that wraps the ATT framework. You can request permission through this SDK and query the permission status.

  1. Add dependency
source 'https://oss.navercorp.com/da-ssp-app-sdk/gfp-sdk-ios-podspec.git'

target 'MyApplication' do
pod 'GFPAdPermissionSDK' # Permission SDK
end
  1. Add a description to info.plist
<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to deliver personalized ads to you.</string>
  1. Obtain user consent

The user consent pop-up is only displayed on iOS 14 and later. For versions below iOS 14, the status is returned based on the isAdvertisingTrackingEnabled value.

GFPAdPermission.requestTrackingAuthorization { (status) in
print("permissionStatus: \(status)")
}
  1. Check user consent status

For enum values related to status, please refer to GFPAdPermission.h.

let status = GFPAdPermission.status

Handling Default Browser Changes

When an ad is clicked, NAMSDK internally performs a canOpenURL: check before landing via openURL:options:completionHandler:.

If another browser (e.g. Chrome) is set as the default and there is no scheme in the plist, canOpenURL: returns NO and the landing will not occur, so you need to add the scheme to Info.plist.

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