Quickstart guide & FAQ to iOS 14, ATT, and SKAdNetwork

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. 

iOS14-consent-pre-ATT-enforcement-6522_Cover-image_917x480.jpg

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. 

SKAdNetwork limitations

  • 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.
  1. The advertiser sets SKAdNetwork measurement settings in the Platform.
  2. 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.
  3. During the Measurement Window, SDK updates the conversion value for each measurable user action.
  4. 24-48 hours after the most recent conversion value update, iOS sends the postback to the ad network.
  5. Ad network forwards the postback to AppsFlyer.
  6. 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.

SKAdNetwork flow

SKAdNetwork_-_flow.png

ATT principles

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. 

Setting ATT

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. 

ATT value Consent
(IDFA available) 
Remarks
Restricted No
  • Determined by Apple based on user age and other criteria. Can't be changed by the device user. 
  • The prompt can't be displayed to these users.
Not determined (until iOS 14.4)  Yes

Default value

Not determined

(starting iOS 14.5)

No Default value 
Denied No

Occurs if any of the following are true:

  • Set after displaying the prompt
  • The user turned off Allow Apps to Request to Track (master switch at the device level)
  • Before installing iOS 14 on the device, LAT was on
Authorized Yes Set after displaying the prompt

ATT implications

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

iOS 14 and SKAdNetwork articles and links
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 solution
SKAdNetwork SKAdNetwork partner interoperability (article section) SKAdNetwork integrated partners list
SKAdNetwork

Facebook and AppsFlyer SKAdNetwork integration 

 

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 

Metrics

Consider that due to ATT, metrics relating to ATT non-consenting users can be affected as follows:

Metrics Increase Decrease Remarks
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. 

Deep linking

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_value and deep_link_sub1. Attribution parameters such as media_source, campaign, and 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 Facebook 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-02-17 SKAdNetwork feature
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-10-07 Raw data
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

FAQ—iOS 14

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. 

FAQ—SKAdNetwork

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.
Was this article helpful?