DCR Video iOS14 Migration
From Engineering Client Portal
Overview
NOTE: this page is for historical reference. In addition to dealing with App Tracking Transparency, developers should also be aware of changes related to iOS 17 detailed here: Nielsen_Digital_Measurement_and_iOS17_or_TVOS17
Apple recently released a new policy on consent requirements for its mobile advertising tool, Identifier for Advertisers (IDFA). With this new policy, (App Tracking Setting) users can choose whether an IDFA may be used by mobile applications. iOS 14 was released on Sept 16th.
What does this mean for measurement?
Apple added a new Framework called “The App Tracking Transparency Framework”. This is now required to control whether the Ad Framework will return the IDFA. If our app requests the IDFA, but advertisingTrackingEnabled=No, then we will get: IDFA = 00000000 -0000-0000-0000-000000000000
. If a client is using our APP SDK v7 and below, running on a device with iOS14 installed, as this is a new framework, our SDK will never be able to retrieve the IDFA.
Version 8 of our App SDK will come in two versions. One that is enabled to work with the App Tracking Transparency Framework, and another version that does not use the Ad Framework. A Table outlining the various iOS versions and Nielsen AppSDK versions is located later in this document.
Transparency Framework
Apple was going to force all publishers to check if ATTrackingManager. AuthorizationStatus
was equal to authorized. Now however, since they are not forcing publishers to ask the user, as long as the ATTrackingManager.AuthorizationStatus
is equal to undefined, or authorized, you are allowed to grab the IDFA value. The change they made was to allow us to use undefined as a valid state.
To display the App Tracking Transparency authorization request for accessing the IDFA, update your info.plist to add the NSUserTrackingUsageDescription
key with a custom message describing your usage.
SDK Versions and Behavior
OS | SDK Flavor/Version | LAT/Tracking | Opt-out Status | Opt-out URL | Integration Changes |
---|---|---|---|---|---|
iOS/tvOS 13 and below | Appsdk < 7.2 | LAT works fine | As per LAT | LAT URL | No Changes |
iOS/tvOS 13 and below | Appsdk without ad framework < 7.2 | NA (Not Applicable) | User choice opt-out/in | User choice opt-out/in url | No Changes |
iOS/tvOS 13 and below | AppSDK 8.0 | LAT works fine | As per LAT | LAT URL | No Changes |
iOS/tvOS 13 or 14 | Appsdk 8.0 without Ad Framework | NA (Not Applicable) | User choice opt-out/in | User choice opt-out/in url | No Changes |
iOS/tvOS 14 | Appsdk < 7.2 | No support for new Apple tracking API | Opt-out will be marked as true | LAT URL | Yes, Clients to upgrade to SDK 8.0 |
iOS/tvOS 14 | AppSDK 8.0 | Client has implemented the Consent pop-up. | As per LAT | LAT URL | Yes, Clients to implement pop-up and app store verbiage |
iOS/tvOS 14.0 - 14.4 APPLE is not enforcing App Transparency Layer (pop-up) |
AppSDK 8.0 | Apple not mandating consent pop-up. | As per LAT | LAT URL | |
iOS/tvOS 14.5+ APPLE is enforcing App Transparency Layer (pop-up) |
AppSDK 8.0 | Client has not implemented the consent pop-up. | As per LAT | LAT URL | Yes, Clients to implement pop-up and app store verbiage |
iOS/tvOS 14 | Appsdk 8.0 without Ad Framework | Clients denied the Ad Framework SDK | User choice opt-out/in | User choice opt-out/in url | Yes, Clients implement webview to pass user choice to the sdk. No changes for AGF no ad framework clients. |
Privacy and Opt-Out
OS-level Opt-out
The Nielsen SDK automatically leverages the iOS's Limit Ad Tracking or AppTracking setting.
- If the User's device is running < iOS 13.x, the Nielsen SDK will check the status of Limit Ad Tracking (Located under Privacy >> Advertising). If this is enabled, the user will be opted out of demographic measurement.
- iOS14 modifies the way Apple manages the collection of a User's Opt-In status through AppTracking. Starting with Version 8.x+, the Nielsen App SDK will check the iOS version during initialization. If the device is running iOS12 or iOS13, the Limit Ad Tracking setting is requested. If iOS14.x +, then AppTracking is utilized.
If using the Nielsen SDK V7 on a device running iOS14, the value returned will always be isAdvertisingTrackingEnabled = true opting out the user from demographic measurement. Apple started requiring publishers to secure consent from the user in iOS14.5+. This means the AppTracking Setting must equal approved before the User is Opted in.
- Limit Ad Tracking is managed using the isAdvertisingTrackingEnabled value.
Value Returned in iOS12 / iOS13 using Nielsen SDK < V7.x | Opt in/out Status |
---|---|
isAdvertisingTrackingEnabled = false | User will be included in demographic measurement. |
isAdvertisingTrackingEnabled = true | User will NOT be included in demographic measurement. |
- AppTracking is managed using the AppTrackingTransparency framework. If the value returned when checked is:
Value Returned is iOS14 using Nielsen SDK > V8.x | Opt in/out Status |
---|---|
ATTrackingManager.AuthorizationStatus.authorized | User will be included in demographic measurement. |
ATTrackingManager.AuthorizationStatus.notDeterminded ATTrackingManager.AuthorizationStatus.denied ATTrackingManager.AuthorizationStatus.restricted |
User will NOT be included in demographic measurement. |
The user is opted out of demographic measurement if the OS-level Limit Ad Tracking setting is enabled, or AppTracking value equals denied or restricted. As a publisher, you cannot override this setting.
User Choice
The User Choice method can be used without the Ad Framework, or in situations where the publisher does not wish to use the App Tracking Transparency Framework.