At a glance: Starting iOS 14.5, Apple requires that you implement and comply with the terms of AppTransparencyTracking (ATT). ATT means that if your app collects data about end-users and shares it with other companies for purposes of tracking across apps and websites, you must use the ATT consent prompt and get user consent in both the publisher and advertiser app. If you don't track, there is no need to display the prompt.
Attribution measurement in an ATT environment
AppsFlyer provides you with multiple attribution methods giving you a complete range of attribution solutions. The ATT consent requirement impacts attribution in the context of paid app-to-app campaigns. As such, advertisers need to use a mix of attribution and reporting solutions.
In the case of paid app-to-app campaigns, SKAdNetwork provides deterministic attribution results. Other campaign types like owned media, web-to-app and Apple Search Ads use AppsFlyer traditional attribution tools. The traditional tools provide long-term LTV measurement, whereas SKAdNetwork measures user performance during a short initial period post-install.
In summary, to obtain a complete picture, use both SKAdNetwork and AppsFlyer traditional solutions because they complement one another.
This article provides advertisers with an introduction to SKAdNetwork and ATT. It is intended for advertisers familiar with the AppsFlyer platform.
Related reading: AppsFlyer getting started step-by-step
SKAdNetwork Solution principles
AppsFlyer provides aggregated attribution results using SKAdNetwork postbacks from iOS. These postbacks are sent by iOS to ad networks who then forward them to AppsFlyer. The postbacks contain anonymized attribution records enriched with a conversion value (CV) set by the advertiser. The CV is a measure of user quality during an initial post-install window.
The AppsFlyer SKAdNetwork Solution provides advertisers with:
- SKAdNetwork dashboard aggregating postbacks from all ad networks enriched with other data points like cost.
- Ability to control what the CV measures without the need to make changes to the app code. The CV can be used to measure revenue, engagement, or conversion events.
- Campaigns: Doesn't support, for example, Apple Search Ads, cross-promotion campaigns, and web-assisted installs.
- Measurement period: The effective measurement period is limited to a few days. For now, the AppsFlyer measurement default option limits the period to the first 24 hours after install.
- The advertiser sets SKAdNetwork measurement settings in the Platform.
- After the user opens the app for the first time, the Platform instructs the SDK how to calculate the conversion value using the current configuration set by the Advertiser.
- During the Measurement Window, SDK updates the conversion value for each measurable user action.
- 24-48 hours after the most recent conversion value update, iOS sends the postback to the ad network.
- Ad network forwards the postback to AppsFlyer.
- AppsFlyer validates and decodes the conversion value. Decoded data is:
- Recorded and attributed before being made available in AppsFlyer via dashboards, reports, and APIs.
- Sent via a postback to the ad network to enable campaign optimization.
The ATT prompt provides advertisers with a way to get explicit user consent allowing the advertisers to collect and share their data. Starting iOS 14.5 IDFA is available only if the user consent via the prompt.
Both publisher and advertiser apps display the prompt. If the user provides consent in both apps, it means that the user agrees to be tracked, and advertisers are permitted by Apple to track the user between apps owned by different companies.
ATT is set to one of the values listed in the table that follows. Initially, iOS sets ATT to not determined or restricted.
Consider that use of the consent prompt to convert a user from not determined to authorized is optional. But, if you don't display the prompt, you can't get authorization.
|Not determined (until iOS 14.4)||Yes||
(starting iOS 14.5)
Occurs if any of the following are true:
|Authorized||Yes||Set after displaying the prompt|
Due to ATT, many users won't consent, IDFA won't be available, and tracking not permitted. As a result, advertisers who until iOS 14.5 relied on user-level attribution reports must shift some analysis to aggregated attribution methods and reporting. AppsFlyer attribution models.
Attribution-related data for an app comes from a number of sources. The identifier available and used by each differ. Most data displays using the traditional attribution tools. However, for installs attributed using SKAdNetwork, reporting is via the SKAdNetwork dashboard.
Which dashboard has the install?
In iOS14 an install can be attributed to both the traditional and SKAdNetwork dashboards. In addition, depending on the media source context it can be attributed as organic in one dashboard and as non-organic in the other.
iOS 14 important knowledge
|Area||Article||Special interest: FAQ, discrepancies, comparisons|
|SKAdNetwork||Bulletin SKAdNetwork additional fields June 2021||Additional raw data SKAdNetwork fields supporting did_win and SKAdNetwork 3.0|
|SKAdNetwork||SKAdNetwork partner interoperability (article section)||SKAdNetwork integrated partners list|
|SKAdNetwork||Snapchat and AppsFlyer SKAdNetwork interoperation||Discrepancies guide|
|Privacy||Aggregated Advanced Privacy (AAP)|
|Privacy||Restricted media sources||Restricted raw data fields|
|iOS 14||Nutrition labels—prepare for the App Store review|
|iOS 14||Configuring ATT in the app (SDK guidance developers)|
|iOS 14||About self-reporting networks (SRNs) like Google, Facebook, and so on||Where are SRN installs reported?|
|Billing||Billing for iOS apps|
iOS 14 impact on attribution and measurement
Consider that due to ATT, metrics relating to ATT non-consenting users can be affected as follows:
|Non-organic vs. organic||Organic||Non-organic|
|Reinstalls vs. installs||Installs||Reinstalls|
|Retargeting||Organic installs and in-app events||Re-engagements, Re-attributions|
|Apple Search Ads||--||--||Unchanged. Both consenting and non-consenting users are attributed correctly.|
Deferred deep linking using the legacy method of onConversionDataSuccess may not work for iOS 14.5+ since it requires attribution data that may not be available due to privacy protection.
We recommend using unified deep linking (UDL). UDL conforms to the iOS 14.5+ privacy standards and only returns parameters relevant to deep linking and deferred deep linking:
deep_link_sub1. Attribution parameters such as
af_sub1-5 return null and can’t be used for deep linking purposes. Learn more
iOS 14 related updates
|Updated||Area||Links & details|
|2021-06-23||Reports and Dashboards||Starting iOS 14.6 the device IP is masked and postbacks are sent via an Apple proxy server. Consequently, geo fields are populated with the location of the Apple server.|
|2021-05-09||Allow Facebook to share iOS postback data with AppsFlyer|
|2021-04-21||Campaign management APIs||SKAdNetwork campaign management API for analytics partners is available|
|2021-04-21||Release of iOS 14.5||iOS 14.5 release date is April 26, 2021.|
|2021-04-04||Postbacks from partners||Partners can send the app_id and ad_network_name as a query param with the postback.|
|2021-31-03||Postbacks from partners||Added support for fidelity in the iOS postback|
|2021-31-03||Aggregated Advanced Privacy||Aggregated Advanced Privacy|
|2021-03-16||Is LAT||How LAT translates to iOS 14|
|2021-03-16||SKAdNetwork partner list||The partner list is updated weekly on Mondays|
|2021-03-16||SDK||If you implement SKAdNetwork revenue measurement, you must adopt SDK V6.2.4+|
|2021-01-25||Integration||Facebook SKAdNetwork integration with AppsFlyer|
|2020-12-23||Aggregate report||SKAdNetwork postback aggregate reporting API|
|2020-12-23||Raw data report||SKAdNetwork raw data reports via Data Locker|
|2020-09-17||iOS 14 release||Guidance about SDK V6.X and SDK V5.4|
|2020-09-04||Getting started guide||Getting started with iOS 14; an AppsFlyer guide for advertisers|
|2020-09-04||SKAdNetwork dashboard||Simulation view|
|2020-08-20||iOS SDK V6||iOS SDK V6.X integration guide for developers|
|2020-08-11||Server-to-Server API||Add IDFV and ATT parameter to events reported by server-to-server API|
|2020-08-10||SKAdNetwork||AppsFlyer SKAdNetwork Solution (iOS 14)—attribution without IDFA|
|2020-08-10||SKAdNetwork||SKAdNetwork overview dashboard|
What happens to an app using an SDK version before V6.0?
- SKAdNetork and Apple Search ads won't work.
- If you submit the app to the App Store, expect it to be rejected.
Is it mandatory to display the ATT prompt?
No. You only need to ask for ATT consent if you want to track a user, collect IDFA, or both.
In SKAdNetwork, am I limited to 100 campaign IDs per ad network?
Yes. However, ad networks map the SKAdNetwork campaign ID to their campaign ID and can reuse the SKAdNetwork ID over time by mapping it to multiple ad network IDs.
What is the use case for SKAdnetwork raw data?
- Use raw data to aggregate dimensions that aren't available via aggregated APIs.
- Easily adjust existing raw data import processes to consume SKAdNetwork raw data.