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, SKAN 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 SKAN measures user performance during a short initial period post-install.
In summary, to obtain a complete picture, use both SKAN and AppsFlyer traditional solutions because they complement one another.
This article provides advertisers with an introduction to SKAN and ATT. It is intended for advertisers familiar with the AppsFlyer platform.
Related reading: AppsFlyer getting started step-by-step
SKAN Solution principles
AppsFlyer provides aggregated attribution results using SKAN 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 SKAN Solution provides advertisers with:
- SKAN 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.
SKAN 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.
- The advertiser sets SKAN 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.
SKAN flow
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 |
|
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:
|
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 SKAN, reporting is via the SKAN dashboard.
Which dashboard has the install?
In iOS14 an install can be attributed to both the traditional and SKAN 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 |
---|---|---|
SKAN | SKAN raw data fields | Additional raw data SKAN fields supporting did_win and SKAN 3.0 |
SKAN | SKAN solution | |
SKAN | SKAN partner interoperability (article section) | SKAN integrated partners list |
SKAN |
|
|
SKAN | Snapchat and AppsFlyer SKAN 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
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—SKAN
In SKAN, am I limited to 100 campaign IDs per ad network?
Yes. However, ad networks map the SKAN campaign ID to their campaign ID and can reuse the SKAN ID over time by mapping it to multiple ad network IDs.
What is the use case for SKAN raw data?
- Use raw data to aggregate dimensions that aren't available via aggregated APIs.
- Easily adjust existing raw data import processes to consume SKAN raw data.
Why don't the conversion values I receive match my configuration in AppsFlyer Conversion Studio?
Usually, this is because of another SDK in your app that has the ability to set conversion values, and that conflicts with your AppsFlyer SDK and the conversion values you have configured in AppsFlyer. Make sure you don't have another SDK that sets conversion values integrated into your app.