The complete guide to SKAdNetwork for subscription apps
Understanding Apple's privacy-first attribution
The challenges of a post-IDFA world, where uncertainty and complexity increase, subscription apps are forced to keep up with the latest measurement news, attribution updates, and how is the best way to understand why revenue goes up or down.
To acknowledge the best way to grow mobile apps, this extensive guide will provide context, technical information, and practical examples of how iOS can make a difference in today’s harsh environment.
The starting point
Pre-ATT era
The period before Apple’s App Tracking Transparency (ATT) framework and the introduction of iOS 14 is often described as a “golden era” for mobile marketers and app developers. During this time, marketers enjoyed extensive access to user-level data, which allowed for exact measurement, tracking, and optimization.
During the early days of mobile app growth adoption, countries lagged behind the increased concerns about privacy, monopolies, and the fact that sensitive data was being treated with almost no control. With the slow adoption by lawmakers and the emergence of new technologies at a slow pace, the industry was preparing to adapt and build a new generation of tech stacks.
However, the ATT framework is not the first innovation Apple pushed to the market to protect users’ data. Limited Ad Tracking, or LAT, was the option iOS users had to avoid sharing their IDFA with advertisers and not being tracked. As the image below shows, the adoption rate in 2019 and 2020 grew substantially.
Key features of the pre-ATT era:
- User-level data: Marketers could directly attribute actions to specific users via the IDFA, allowing precise measurement of metrics like installs, conversions, and engagement. This means that even though probabilistic matching was part of the ecosystem, relying on deterministic cohorts was more accessible and reliable.
- Single source of truth: MMPs had the monopoly over the postback control and were the only way to understand the full marketing picture for self-attributed and non-self-attributed networks.
- Revenue metrics: ROAS and ROI were the main KPIs that could be used for campaign optimization and reporting capabilities.
This context created a soft environment for marketers, who involuntarily stepped aside from the business logic. This isolation resulted in a lack of care about what was happening across the board.
Shift in paradigms
2020 marked the beginning of a new decade in which the status quo would undergo a 180-degree turnaround, with Apple leading the race.
Early indicators that explain the current mobile measurement landscape:
- Rise of Limited Ad Tracking (LAT): By 2019-2020, LAT adoption surged as users became increasingly wary of invasive tracking practices.
- Fact: LAT adoption showed that a substantial number of users were prioritizing privacy over personalized ads.
- Global privacy concerns: Privacy concerns were not isolated to the U.S. The European Union’s GDPR and California’s CCPA underscored a global trend toward stricter data privacy laws.
- Apple’s push for user empowerment: Apple began positioning itself as a privacy champion, giving users control over their data. In multiple interviews and keynote presentations, Apple CEO Tim Cook emphasized privacy as a “fundamental human right,” signaling Apple’s intention to protect user data.
Welcome, “privacy”
The ATT framework became a reality in April 2021 with the release of iOS 14.5. This meant that SKAdNetwork adoption was pushed worldwide, and then the primary industry players, like ad networks or publishers, would need to implement the new changes and learn from scratch what Apple pushed into the market.
(source: Kochava)
At the same time, the industry started to see the rise of the most relevant SKAN version to date, the 3.0; marketers were introduced to new “privacy” terms like postbacks, conversion values, anonymity thresholds, mapping, etc. This caused the industry to tumble and struggle to adapt.
The high cost of user privacy produced an elevated impact on day-to-day operations like:
- Campaign quantity limitation was due to ad networks having limited postback digits to utilize.
- A new way of mapping out the in-app event for measurement.
- No clue about the visibility advertisers had in terms of in-app activity.
- Lack of deterministic data at the ad creative level.
- Testing budgets towards Android.
- Constant learning over how to surpass the anonymity thresholds.
Contrary to what was imagined, these new changes are still challenging for advertisers nowadays. A big reason for this is the high-tech intensity of this new system, and the relationship between marketers and developers is almost non-existent, creating a gap of knowledge where it’s hard to find a reliable source to trust and learn from.
Aggregated data is the new black
The fundamentals
The best way to understand SKAdNetwork is by looking at its cause. Apple deployed SKAdNetwork because of the ATT (App Tracking Transparency), a consequence of its policies. It provided a tool to app developers (advertisers) that could rely on deterministic measurement while preserving user-level data.
The ATT double consent logic follows this rule:
As you can see, SKAN is the only attribution method that works independently of the ATT status. This means that even if the ATT is not implemented on your application, SKAN can still operate and send postbacks to you.
However, even if you want to prompt your users with the ATT, there are a few principles that you must know where it won’t be possible. For users under a certain age, the ATT is restricted, and if users before iOS 14 turned on LAT at the device level and the user turned off the “Allow Apps to Request to Track” master switch at the device level,
To understand SKAdNetwork’s impact on the industry, read the following table. As you can see:
- The volume of conversions with a media source attached decreased partly because of SKAN limitations like anonymity thresholds and conversion windows.
- Retargeting conversions on iOS almost disappeared.
- ASA was one of the biggest winners over the last years thanks to its ability to operate deterministically independently of the ATT status
SKAdNetwork explained
Apple’s privacy-centric API has evolved over the years until it reached its latest version, 4.0. The functionality is always the same at its core, with minor improvements considering its importance to the app growth industry.
However, everyone may be asking how SKAdNetwork works. To answer this question, I will focus on the latest version (4.0), and later in the guide, we will talk about AdAttributionKit (AAK).
I will focus on describing the logic under the hood pragmatically based on my years of experience. So, if you expect a detailed guide on how specific things work, I recommend reading Apple’s official documentation or MMPs blogs.
Before moving on, let’s define some terms:
- Advertised app: is the app that runs ads to acquire users
- Publisher app: is the app where the ad is shown
- Ad network: company in charge of signing the ads and following Apple’s rules.
- Crowd anonymity tier: is a framework that allocates users based on how hard it is to track them deterministically. For example, if you acquire ten users per day, the cohort will likely be signed with the lowest tier to protect each user’s data. Still, if you acquire 5,000 users per day, Apple will provide the highest tier and enable you to receive more granular data since it’s harder to know who each user is.
- Timer mechanism: Apple controls the countdown timer, which has a random system to prevent advertisers from knowing the install time.
- Conversion values are the in-app events each developer wants to measure through SKAN. Using advanced setups and conditions can make this complex.
- Conditions: refer to the options a developer has to trigger the update of a conversion value. Some examples are event counts, sessions, total revenue, etc.
- Endpoint/info.plist: this is the destination where Apple will send a raw postback copy to the developer. This copy is the same one they send to the ad network.
To set the context, a subscription app called “TrainMe: Home & Gym Workout” wants to acquire iOS users through Meta by running App Installs campaigns. This is what happens in the back to allow it:
- In this case, Meta, an ad network, registers under the SKAN program to get a value called the ad network ID. In real life, Meta owns these two values:
- Facebook: v9wttpbfk9.skadnetwork
- Instagram: n38lu8286q.skadnetwork
- For this example, Meta is the ad network and the publisher simultaneously since the ad will be shown under the Instagram app ID.
- Meta signs each ad interaction (click/impression) TrainMe shows, and the user downloads the advertised app.
- Before the user opens the app for the first time, Apple ensures the crowd anonymity level tier will wet the condition of the postback schema that the user will use during the life stamp.
- Once the user opens the advertised app for the first time, SKAN recognizes the ad signature and that this user came from an ad network, in this case, Meta. Then, SKAN starts to run the timer mechanism.
- Depending on the user’s actions, each time the user triggers a condition set by the advertiser (like a purchase or registration), the app updates the conversion value, and the timer mechanism starts again. After no more actions are done for 24 hours or the window closes, the highest value tends to be sent to SKAN with a random delay.
- Apple sends the winning postback to Meta and a copy to the endpoint, which the developer defined in the info.plist file.
- The second and third postbacks could apply depending on the crowd anonymity tier.
A common misconception about SKAN is that it won’t be able to report all the data because of its anonymity thresholds. This is not accurate. SKAN will report all the activity, but with the condition that the conversion value parameter in the payload is set to null.
With this in mind, these are the main limitations you should keep in mind:
- It used to be an elitist attribution system because only advertisers with enough money could test and get all the available data. So, always remember that anonymity thresholds could prevent you from making the most efficient business decisions.
- Because users need to interact with the client side to trigger the update of a conversion value, there’s a high correlation between app retention and the number of postbacks received.
- They are missing ad-level creative data. Nowadays, the payload does not contain ad information to understand the impact of winning assets. That is a massive limitation for advertisers since they rely directly on the ad networks to see those values.
This also forces companies to use Android as their testing environment to reduce costs and obtain more insights quickly. - S2S events require a specific infrastructure to update the CV since they rely on the app open event to measure, for example, the trial converted event. This is important for apps that offer a trial to their users and want to use SKAN to measure the effectiveness of their user acquisition efforts.
- The trade-off between event signals and event prioritization. Budget limitations must be considered when deciding which strategy generates the most revenue. For example, if you have little money to invest, optimizing for start trials may be a better choice since you will get more signals, but optimizing for a large enough subscription volume could be better.
- There’s no way to connect the dots between different postback sequences. Instead, to reduce discrepancies and improve confidence, I recommend replacing the arrival date with an “Estimated Install Week.”
- The fidelity type parameter has limited output. Since the fidelity type could be only click =1 or view = 0, we don’t have enough information about the level of engagement each user had with the ad. Because of this, a click on a banner has the same relevance as a one-minute video click interaction. You can read more about this in this guide by Nebojsa Radovic.
Instead, these are the benefits of working with it:
- It works for every ad network (excluding ASA). Being the only attribution system in iOS that can see the complete marketing picture gives developers an easy way to judge all the channels using the same criteria.
- The ATT is not necessary, and it is a deterministic attribution method. So, there is no need to rely on scammy probabilistic (AKA fingerprinting) models to guess the volume of conversion you had.
- You don’t need to rely on an MMP to work with it. You can either use the ad network SDK or rely on code to create the mapping.
- No third-party companies or vendors are needed to use it.
Working with no user-level data
After advising multiple companies with three employees to +1000, the concept of not having a unique user ID seems confusing for everyone. So, these are the best practices when it comes to working with aggregated data coming directly from Apple’s servers:
- Don’t expect to build the next generation of multi-touch attribution models using SKAN postbacks as input. Most MTA models rely on a specific ID to make it work, but with SKAN, that’s impossible. This is the beauty of it. Also, randomized data makes building a reliable (close to deterministic) model impossible.
- Depending on the SKAN postback version, controlling the percentage of null values is critical because of crowd anonymity tiers or thresholds. This is because, depending on the value, null postbacks must be considered to understand the complete marketing picture. I recommend constantly extrapolating the null activity using non-attributed data as a proxy. For example, if you aim to calculate the ROAS, multiply the number of null postback times by the estimated ARPU Dx (x = day number). This way, you are counting everything.
- Even if your company heavily relies on probabilistic modeling (AKA fingerprinting) to analyze the data or make business decisions, I recommend always using SKAN data as a proxy. It’s free, easy to access, and the only attribution method with visibility across the board and no bias attached.
- Retargeting and SKAN are not the best match. Bizarre edge cases include companies with highly high ATT acceptance rates or apps with enormous databases of IDs, like emails, to fetch back into the ad networks. Overall, the best way to impact existing users is through ads.
- A straightforward approach to getting more granular data from SKAN is based on the application’s conversion value mapping. This is the only way to define how the received data will look like and how useful it is for the business. However, this still does not mean that user data will be available.
As mentioned above, Android was a commonly used alternative for app developers to validate, iterate, and experiment until PS (Privacy Sandbox) was deployed into the market. Android is still the best way to deterministically measure the ROAS for user acquisition campaigns.
However, this is the framework I recommend using as a guideline to measure ROAS for iOS in 2024.
When working with SKAN revenue prediction, it’s critical to establish a baseline and context for the SKAN revenue modeling:
- As the metric says, this output will be an estimate. So, the UA team needs to be aligned and remember that the data they will use to make decisions in the future contains a percentage of error.
- Ad network reporting capabilities will never be considered a source of truth but a proxy. For example, Meta’s AEM numbers follow the logic mentioned above.
- The accuracy of the revenue bucket will depend on the logic that follows the conversion value mapping.
- Null values will be essential in reaching a more realistic number because they will count revenue not tracked by SKAN (privacy threshold).
- Differentiate the data treatment between self-reporting networks and non-self-reporting networks. Non-SRNs are exposed to more ad fraud and fake numbers, while SRNs can rely only on SKAN data.
The revenue modeling proposal (image below). Things to consider:
- If the application operates on the highest version (4.0), the complexity of the revenue model could increase since more postbacks will be passed back, and a new P2 Est. Rev. D35 (including a multiplier) metric could be created. Or even a P3 Est. Rev. 35 (no multiplier).
- It could be adapted to the status of each ad network. For example, Meta could rely on a P1 approach only, while TikTok and Google could add P2 and P3 metrics.
- The metric is called “Estimated” because the Px Revenue value is imported from a median value from the CV mapping revenue range.
- The limitation of SKAN-based predictive analytics is that the granularity will change depending on the postback source (Apple or the ad networks). If enriched postbacks are used, the campaign name and country will be available to provide breakdowns. If not, the data will be hosted only on the ad network level.
- If the Px = Dx means P1 = D2, P2 = D7, or P3 = D35, then the formula should not include any multiplier since there’s no need to estimate future revenue because the Px revenue is the absolute total.
After multiple years and projects, this is the way I recommend most subscription apps to measure revenue coming from iOS campaigns without relying on user-level data.
Impact on subscription-based apps
Being conscious of the things that could have a negative impact is the first half of solving your problems.
So, these are the x things that you should focus on to mitigate SKAN’s impact on your business operations:
- Free trial: This could be a significant problem when building a ROAS system to measure the effectiveness of your ads. The origin relies on the conversion window for SKAN 3.0. These changes were made for the 4.0 version, but some caveats still exist.
- When apps scale pricing experiments, most tend to forget about the revenue buckets created in the mapping, which could affect their revenue reporting capabilities.
- SKAN’s technical limitation relies on user activity updating conversion values. This means that to measure events like the trial_converted, a specific S2S implementation needs to be done. You rely on your app’s retention percentage to measure specific in-app events down the funnel.
The state of user acquisition
The effect on ad networks
With AEM on the rise and non-SANs like Applovin trying to move away from Apple’s deterministic-centric API, the answer may differ depending on who you ask. However, there were some clear winners and losers over the years.
The winners:
- Apple Search Ads
- Web to app
- TikTok
- Influencers
The losers:
- Meta
- X
- Snapchat
Nonetheless, one of the biggest losers after many years is Apple itself. The reasons why:
- More and more ad networks still use IP-based matching and device IDs to track users, reaching the point where AEM has become relevant for many advertisers.
- Non-SANs, like Applovin or Unity, still haven’t adopted the technology, meaning that gaming apps are from adopting SKAN into their marketing stack and prefer to keep relying on the fingerprint to thrive their businesses.
- Deploying a revolutionary technology without support from the app community meant that the end consumer (app developers) found it hard to understand how it works and the best practices related to it.
- Intentionally, Apple polarized everyone, forcing apps to choose between paying for an MMP or having nothing to do with it. Instead of giving developers the necessary tools to build independent apps successfully, they made it hard.
AdAttributionKit
Still SKAdNetwork
Built on top of SKAN, AAK offers more tools to app developers, but not as expected.
- Re-engagement is the most essential feature included. It allows advertisers to track conversions from ads clicked by users who have already installed the app. This could be a game changer for apps that drive retention and upsell existing customers.
- Alternative marketplaces: now, apps that want to expand their reach by using third-party app stores could use the new API version to measure their user acquisition performance.
- Fraud prevention: Apple implemented new changes that require ads to be displayed in the foreground and limit the use of timers to end impressions prematurely.
- Developer mode enables developers to test their apps by simplifying the measurement process. This makes it easier to test attribution setups without complex configurations or waiting for live data.
SKAN and AAK will operate in parallel, and all the ad networks registered on the SKAN program will not need to do anything to start working with AAK.
As mentioned above, the game changer over the following years will be around retargeting and nothing else. Apple’s improvements were not enough for what the industry needed; instead, it focused on infrastructure topics related to testing and ad fraud when the pain was around measurement capabilities.
What to expect
Based on what happened to SKAN, a slow adoption rate is expected. However, you don’t need to panic or learn much more to stay current.
Some months after iOS 18 is adopted, time will tell if Apple will do something else to force wide adoption. If nothing changes in the short term, it’s risky to say that this deterministic attribution method will prevail over fingerprinting.
To conclude, looking into the future, privacy continues to be the center of the discussion and a centerpiece of the OS measurement attribution systems. Developers need more resources to acquire the proper knowledge and use these tools for profit. SKAN or AAK, don’t be fooled. Always focus on the primary KPI, ensuring that more money comes in than goes out.
You might also like
- Blog post
How to tackle New Year’s subscription churn
Beat the New Year’s subscription hangover before it starts
- Blog post
“A big market is great only if you can take a substantial share of it” — Patrick Falzon, The App Shop
On the podcast: estimating the revenue potential of an app, crafting an exit strategy, and why LTV is such a terrible metric.
- Blog post
Effective testing strategies for low-traffic apps
Is A/B testing off the table? Let’s rethink experimentation.