Here you can find answers to frequently asked questions about working on iOS 14+, ATT, and the SKAdNetwork.
Do I need to use Adjust to implement ATT or SKAdNetwork frameworks?
No, you can implement both SKAdNetwork and ATT yourself. With ATT you need to request the Apple pop-up to be displayed within your app code. With SKAdNetwork, you need to oversee registering for attribution handling and updating conversion values.
Adjust has built out these functionalities by default in our latest SDKs. For ATT, the Adjust SDK wrapper can be used to present the app-tracking authorization request to users. For SKAdNetwork, Adjust maps events to the conversion values you select in our dashboard. You can change the mapping at any time. If you do so, we change the conversion values (which are passed to the SKAdNetwork) and update the conversion value implementation dynamically.
With your standalone implementation, you would need to create a similar system or implement conversion values directly in your app. If you implement the values directly, you would be required to update your app on the App Store each time you change the conversion value implementation.
If you do decide to manage SKAdNetwork attribution without leveraging Adjust’s SDK, we can still receive SKAdNetwork postbacks, report the statistics on our dashboard and allow you to export SKAdNetwork data.
What does the ATT data look like when a user opts-in?
ATT data is the attribution data you have always had access to. This is your Adjust Statistics data as well as the data you receive via real-time callbacks or CSV uploads. This is granular and robust data that allows you to continue tracking user acquisition and retention as normal.
With ATT, when is an IDFA reset?
Your IDFA can be reset under three conditions:
The device is reset.
The global Allow Apps to Request to Track setting is toggled off in the device settings.
If tracking is toggled off for every app in the device settings.
Does iOS 13 LAT settings translate to iOS 14 “Allow Apps to Request to Track” setting?
For devices that were on iOS 13 with LAT setting turned OFF, Allow Apps to Request to Track was ON by default after upgrading to iOS 14.
For devices that were on iOS 13 with LAT setting turned ON, Allow Apps to Request to Track was OFF by default after upgrading to iOS 14.
What happens if “Allow Apps to Request to Track” is changed during the app’s lifetime?
If Allow Apps to Request to Track was ON when the app was installed and the user consents to tracking, this allows the IDFA to be read. However, if at a later point the user switches Allow Apps to Request to Track to OFF, then from that moment on in the app any attempt to read the IDFA will return zeros.
If Allow Apps to Request to Track is OFF when the app is installed, the Apple consent pop-up will not be shown and a “Denied” ATT status will be returned. If Allow Apps to Request to Track gets switched ON, the Apple consent pop-up can be displayed to the user from the next app launch.
Does SKAdNetwork only report traffic that has opted-out of tracking?
No, SKAdNetwork reports both users that opt-in or opt-out of tracking within ATT framework.
Should I implement the ATT framework? What happens if I do not implement it?
If you do not implement the ATT framework, you will not be able to access IDFAs for devices running iOS 14.5 and later. Adjust will be limited in attributing these users to SANs, except Apple Search Ads. Your traffic will still be measured within the SKAdNetwork framework. SKAdN statistics will not be affected by users’ consent or by whether you call the ATT pop-up or not.
We also recommend that you consult your Ad Networks on the extent to which they rely on IDFA for campaign optimization.
Even if the ATT framework is not necessary for your third-party services, Apple might require you to implement it during App Store review. This is in case your App collects any data which they consider to be tracking according to the App Store Connect privacy details.
Does ATT pop-up also determine the availability of IDFV?
No, it does not. A device has a unique IDFV for each App vendor. This means it cannot be used to track the device/user across apps since each App vendor would see a different IDFV for the same device. IDFVs can be effective for internal analytics purposes. This includes measuring user activity within one App or across multiple Apps from the same vendor. However, it cannot be used to track users across different Apps from different vendors. Due to this, Apple allows retrieving a device’s IDFV regardless of the user's ATT status.
Can Adjust measure App Installs without IDFA?
Yes, Adjust always relies on the ADID (Adjust Device ID) for measuring user’s activities within the App. The ADID is a hashed ID generated based on the device's IDFV (which is always available) and/or IDFA (whenever available). Because of this, when access to IDFA is limited, Adjust can still measure in-App activities with ADID by relying on the device's IDFV.
MMPs such as Adjust can benefit from retrieving IDFA for attribution purposes for opted-in users. Without the IDFA, Adjust can use Probabilistic and SKAdNetwork Attributions as a fallback for or in parallel with IDFA based attribution respectively.
We use IDFA as a key identifier in our Data Warehouse and to send server-to-server events to Adjust. Will I be able to receive IDFA in my raw data and send server-to-server events with IDFA?
You will continue to receive IDFAs in raw data and will be able to send them with server-to-server events when they are available. However, we recommend you modify your tools and processes to rely on a different primary identifier such as the ADID (Adjust Device ID). You can continue to use IDFAs, but they will not be available for all iOS devices. For this reason, you should only leverage them in combination with other IDs.
How can we structure our BI system/Data Warehouse and send server-to-server events without having IDFAs for all users?
You can use alternative IDs as a key identifier in your data warehouse and for sending server-to-server events. For example, you could use the Adjust Device Identifier (ADID) or another ID listed in our API reference. You can use any of the IDs listed in our placeholder page for raw data exports.
To get the best results, you can use an ID that is available on all devices (like the ADID) as the primary identifier. You can then use a less common ID (like the IDFA) as a backup identifier when it is available.
We use ADID as a key identifier in our Data Warehouse and to send server-to-server events to Adjust. Will I be able to receive raw data and send server-to-server events with ADID regardless of the user's ATT status?
Yes. Adjust generates the Adjust Device Identifier (ADID) based on the IDFA, the IDFV, or a combination of both. The IDFV is always available on iOS devices regardless of the user's ATT status. This means you can always use ADID in raw data exports and for sending server-to-server events for all users.
Do I need to update the SDK for iOS 14 support?
Primary SDK features for iOS 14 support are available in Adjust SDK v4.23.0 and later. Apple Ads Attribution (AdServices framework) is available in Adjust iOS SDK v.4.25.0 and later. We recommend updating to the latest SDK release to take full advantage of all features.
Do I need ATT consent for SKAdNetwork tracking and attribution?
No. SKAdNetwork is a separate framework that can run in parallel to ATT. The ATT pop-up selection does not affect the availability of SKAdNetwork statistics. This means that SKAdNetwork campaigns will continue to operate as usual regardless of the user's consent status.
Should we run campaigns with the ATT or SKAdNetwork framework? Are there risks of data duplication when running both?
SKAdNetwork and ATT are separate frameworks. Many networks support running campaigns for both in parallel. Due to how SKAdNetwork is designed, it is not possible to associate the data between the two sources. This means you will have separate statistics and KPIs from each data source.
Using tracker URLs within the ATT framework offers the following when permitted per ATT policy:
More granular campaign and source breakdown.
Deferred deep linking.
In comparison, SKAdNetwork data is primarily used for aggregate reporting. However, attribution is not limited by the user's ATT consent status in SKAdNetwork framework. This makes it a more reliable framework for billing ad networks that support SKAdNetwork campaigns. You can find more details on how to avoid duplicate attribution and billing for users running iOS 14.5 and later in our blog post.
How can I compare SKAdN and regular MMP installs?
SKAdNetwork and ATT are separate frameworks. They measure and report attribution and users' in-app activities in different ways. The MMP KPIs that you saw before iOS 14 are now handled by the ATT framework. To work with the two frameworks, you need to understand how each one works and what its limitations are. You can then use the data and statistics from each source for different analyses and optimizations.
You may notice a difference between installs for the two frameworks. Here are some of the key differences between them that may cause discrepancies:
Attribution is always deterministic.
Attribution can happen with Probabilistic Matching when allowed by the ATT policy.
Attributes regardless of the user's ATT status.
Attribution may be limited for users who have not consented per the ATT policy.
SKAdNetwork only attributes installs to SKAdNetwork registered partners. This means that you can only see SKAdN statistics for paid channels. You can only see traffic from other sources using the ATT framework.
User experience functions like deep linking are not prohibited unless they are used as workarounds to ATT regulations.
Deferred deep linking can be limited for iOS 14.5+ users who do not consent to ATT pop-up, when prohibited by ATT policy.
SKAdNetwork campaigns open the App Store page in a web view. This means that they could break conditional deep links, which direct existing users to your app and new users to the App Store. Direct deep links work as expected but only for users who currently have your app installed. New users are not sent to the App Store to install your app.
What is the campaign structure and level of granularity I can track in SKAdNetwork campaigns?
Ad Networks specify the campaign-id parameter when sending the engagement to SKAdNetwork. The parameter can consist of one hundred unique values (an integer: 1-100). Each integer can refer to a different campaign, adgroup, creative, a combination of these, or other source values. These are decided by the advertiser and the Ad Network. You can have a total of one hundred unique values per Ad Network at any one time.
Which attribution windows are used in SKAdNetwork for click-based and view-through installs?
SKAdNetwork attribution windows are fixed and can not be customized. You can find the SKAdNetwork attribution details, including attribution windows, in Apple's documentation