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
- NAMSDK supports iOS 14 starting from version 4.3.0 or higher.
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.
| DSP | version | Notes |
|---|---|---|
| Google DFP | 7.66.0 | |
| Google IMA | 3.12.1 | |
| Facebook FAN | 6.0.0 | |
| Inmobi | 9.1.0 | |
| Unity | 4.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.
- Inmobi
- Unity
- AppLovin
- Vungle
Obtaining IDFA User Consent
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.
Obtaining Consent via the ATT Framework
You can request permission by implementing it directly through the App Tracking Transparency framework. For more details, please refer to the official guide.
Obtaining Consent via GFPAdPermission
GFPAdPermission is an SDK that wraps the ATT framework. You can request permission through this SDK and query the permission status.
- Add dependency
source 'https://oss.navercorp.com/da-ssp-app-sdk/gfp-sdk-ios-podspec.git'
target 'MyApplication' do
pod 'GFPAdPermissionSDK' # Permission SDK
end
- Add a description to info.plist
<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to deliver personalized ads to you.</string>
- 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.
- Swift
- Objective-C
GFPAdPermission.requestTrackingAuthorization { (status) in
print("permissionStatus: \(status)")
}
[GFPAdPermission requestTrackingAuthorizationWith:^(GFPAdPermissionStatus status) {
NSLog(@"permissionStatus: %d", status);
}];
- Check user consent status
For enum values related to status, please refer to GFPAdPermission.h.
- Swift
- Objective-C
let status = GFPAdPermission.status
GFPAdPermissionStatus 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>