DCR and DTVR with iOS17 or TVOS17

From Engineering Client Portal

Engineering Portal breadcrumbArrow.png Digital breadcrumbArrow.png DCR & DTVR breadcrumbArrow.png DCR and DTVR with iOS17 or TVOS17


Overview

Summary: The latest version of Nielsen iOS/TVOS AppSDK (currently 9.2.0.0) has the below-mentioned privacy manifest entries and app tracking/opt-out behavior already included. App developers integrating the SDK will automatically have the required entries added to their app's privacy manifest when compiled with Xcode 15 or greater. Nielsen Client Developers do not need to make any additional changes to privacy manifest files at the application level to handle Nielsen tracking behavior.

Beginning with iOS/TVOS 17, Apple is adding several requirements for App developers around tracking, use of Identifier For Advertisers (IDFA), and certain system APIs as detailed below:

App Privacy Manifest

  • App privacy manifest files must be updated before submitting apps to the App Store.
    • Declare collection/use of user tracking information - app developers/third-party SDKs will be required to list domains that are used to send messages containing the user's device ID (IDFA).
    • Required Reason API - Apple is requiring reasons for apps' usage of certain system APIs that retrieve information about the device or state of some system metrics.

App Tracking Transparency (ATT) Framework

When users select "Ask App Not to Track" from the ATT popup, the operating system will behave differently from previous iOS/tvOS versions:

  • In iOS/tvOS versions lower than 17, when "Ask App Not to Track" was selected, apps were blocked from reading the device's IDFA and measurement would be transmitted with a blank device ID.
  • With iOS/tvOS 17, if the user selects "Ask App Not to Track", third-party SDKs will not only be blocked from reading the IDFA, the entire app will also be blocked from sending http(s) traffic to domains declared as "tracking domains" in the SDK's privacy manifest file. This will prevent typical measurement pings from going out and will impact volumetric measurement for your apps.


A new release of the AppSDK (v9.2) aims to address this requirement through explicit distinction of tracking versus non-tracking traffic through the use of 2 domains as described below:

  • When a user has opted in (Allow Tracking), measurement data pings will continue to be sent to the imrworldwide.com domain with the available IDFA.
  • When a user has opted out (Ask App Not to Track) or with an unknown status, all the measurement data pings will be sent to the non-tracking domain nmrodam.com. These pings will not contain any IDFA tracking.

NOTE: the domain-changing above refers only Nielsen AppSDK with ad framework support. Non-ad framework flavors of AppSDK are not affected.


IMPORTANT NOTE: Nielsen iOS/TVOS SDK has the privacy manifest entries and app tracking/opt-out behavior already included. App developers integrating the SDK will automatically have the required entries added to their app's privacy manifest when compiled with Xcode 15 or greater. Nielsen Client Developers do not need to make any additional changes to privacy manifest files at the application level to handle Nielsen tracking behavior. This functionality is included in Nielsen AppSDK version 9.2.0.0 or greater. With the release of iOS/TVOS 17 in September 2023, Nielsen clients are strongly encouraged to update to AppSDK version 9.2.0.0 (release date: September, 27 2023) or greater as soon as possible to avoid disruption in measurement.

Apple is not currently mandating that SDK developers declare a tracking domain in the SDK-level privacy manifest file, and if one is provided, all traffic from all Nielsen integrations in the app will be blocked for opted-out users. To mitigate this situation, the Nielsen technical team has decided to create 2 versions of the iOS/tvOS AppSDK: one with no tracking domain declared (default) and one with it declared.

The AppSDK 9.2.0.0 build with no tracking domain declared will be made available through Nielsen artifactory and/or direct download from Nielsen Engineering Portal. Current integrations using Nielsen artifactory distribution will receive notice to update to this version through CocoaPods/Carthage/SPM distributions automatically.

If you have any questions about the AppSDK version that has the tracking domain declared, please reach out to your Nielsen Client Engineer.

SDK Versions and Behavior

NOTE: only AppSDK with ad support is included below, since other flavors are not concerned with IDFA/DeviceID

Client app Xcode version iOS/TVOS Version AppSDK Version ATT Status Opt-out Status Tracking declared in privacy manifest (SDK or app level) Tracking Domain provided in privacy manifest (SDK or app level) Ping/Message Behavior
14 any any "Allow Tracking" false n/a n/a All pings allowed, with DeviceID
14 any any "Ask App Not to Track" true n/a n/a All pings allowed, blank DeviceID
15 16.x and below any "Allow Tracking" false no no All pings allowed, with DeviceID
15 16.x and below any "Ask App Not to Track" true no no All pings allowed, blank DeviceID
15 17 or greater 9.1.x.x and below "Ask App Not to Track" true no no All pings allowed, blank DeviceID
15 17 or greater 9.1.x.x and below "Allow Tracking" false no no All pings allowed, with DeviceID
15 17 or greater 9.2.0.0 and below "Ask App Not to Track" true yes (App level) yes - imrworldwide.com All pings allowed, blank DeviceID, SDK pings will use non-tracking domain nmrodram.com
15 17 or greater 9.2.0.0 and greater "Allow Tracking" false yes - (SDK level) yes - imrworldwide.com All pings allowed, with DeviceID
15 17 or greater 9.2.0.0 and greater "Ask App Not to Track" true yes - (SDK level) yes - imrworldwide.com All pings allowed, blank DeviceID, SDK pings will use non-tracking domain nmrodram.com, all the app traffic from non-sdk integrations going to tracking domain imrworldwide.com, will be blocked