Since App Tracking Transparency arrived in 2021, most iOS ad measurement has run through Apple's privacy-preserving attribution frameworks rather than through device identifiers. For years that framework was SKAdNetwork, usually shortened to SKAN. In 2024 Apple introduced AdAttributionKit, which builds on SKAdNetwork and adds things it could not do. Both now exist side by side, which raises the questions this guide answers: what is the difference, does an advertiser have to choose, and what changes for the people who make the ads?
What both frameworks do
Both let an ad network learn that an ad it showed led to an install, without revealing who the person was. The sequence is broadly the same:
- An ad network shows an ad and registers the impression or the tap with the framework, using a signed payload that identifies the network, the campaign and the advertised app.
- The person installs the app and opens it.
- The app updates a conversion value as the player does things that matter, such as finishing the tutorial or making a purchase.
- After a delay that Apple adds deliberately, the device sends a postback to the ad network, and optionally to the advertiser, containing the campaign information and the conversion value, but no user identifier.
Privacy comes from three mechanisms: random delays, so a postback cannot be matched to an individual by timing; crowd anonymity, so the detail in a postback depends on how many installs share the same campaign information; and limited data, so only a small number of conversion values and source digits are ever sent.
What SKAdNetwork 4 established
SKAdNetwork 4, released with iOS 16.1, set the model AdAttributionKit inherited. It introduced up to three postbacks per install, covering roughly the first two days, then up to day 7, then up to day 35, so advertisers can see some later behaviour. It introduced fine conversion values (a number from 0 to 63) and coarse ones (low, medium or high), with fine values available only in the first postback and only when enough installs share the campaign. And it replaced the old campaign ID with a hierarchical source identifier of two to four digits, where more digits are revealed as volume grows.
What AdAttributionKit adds
AdAttributionKit arrived with iOS 17.4 in 2024. It keeps SKAdNetwork 4's privacy model and is interoperable with it, and adds three significant things.
1. Alternative app marketplaces
SKAdNetwork works only with the App Store. AdAttributionKit also works with the alternative app marketplaces that Apple allows in the European Union under the Digital Markets Act, so an ad that leads to an install from another marketplace can be measured with the same privacy guarantees.
2. Re-engagement
From iOS 18, AdAttributionKit can measure re-engagement: an ad that brings a player who already has the app back into it. That was impossible with SKAdNetwork, which only measured installs. Apps opt in, re-engagement is measured for clicks only (not views), and re-engagement postbacks are marked as such, with their own conversion values. For games with large lapsed audiences this is the first privacy-safe way to measure a retargeting campaign on iOS. Playable ads for retargeting covers what to show those players.
3. More control over windows and testing
Later updates, from iOS 18.4, added configurable attribution windows, overlapping re-engagement measurement using conversion tags, cooldown periods to prevent duplicate credit, a country code in postbacks when crowd anonymity allows it, and a developer mode for testing on a device. Exact behaviour depends on the iOS version, so check Apple's AdAttributionKit documentation for the version your audience runs.
Do you have to choose?
Generally not. The frameworks are interoperable: an app can update conversion values through both APIs, and which framework produces the postback depends on how the ad network registered the ad. In practice the choice sits with the ad networks and with your mobile measurement partner, which update their SDKs and receive postbacks from both. For most advertisers the work is making sure the MMP SDK is current and that the conversion value schema means the same thing in both.
The conversion value schema is the decision that matters. Which player actions map to which values, and how they fit into the coarse low, medium and high buckets, determines what you will ever learn about the players a campaign brings. Agree it with your MMP before scaling spend, and change it rarely, because every change breaks comparison with earlier data.
What changes for ad creative
- Fewer, more distinct creatives per campaign. Detail in postbacks depends on volume per source identifier. Splitting a modest budget across many tiny variations can leave every one of them too small to report fine values or all source digits. Test genuinely different concepts, and let each gather volume.
- In-platform testing carries more weight. Networks can still compare creatives inside their own systems with first-party signals, so creative tests increasingly run on each network's own reporting, with privacy-safe postbacks confirming the overall direction.
- Honest creative shows up in conversion values. Because postbacks report what players did after installing, an ad that sets the wrong expectations shows up as installs with low conversion values. Playable ad policy explains why misleading creative also costs you approval.
- Retargeting creative becomes measurable. With re-engagement postbacks, an ad aimed at lapsed players can finally be judged on iOS, so it is worth making creative specifically for them.
A short timeline
- 2018: SKAdNetwork introduced, used mainly by ad networks with little visibility for advertisers.
- 2021: App Tracking Transparency makes SKAdNetwork the main iOS measurement route for most campaigns.
- 2022: SKAdNetwork 4 with iOS 16.1 adds three postbacks, coarse values and hierarchical source identifiers.
- 2024: AdAttributionKit arrives with iOS 17.4, adding alternative marketplaces.
- 2024 onward: re-engagement measurement from iOS 18, then configurable windows, conversion tags, country codes and a developer testing mode from iOS 18.4.
The direction is consistent: each release gives advertisers a little more signal, always on aggregate and always behind thresholds. Plans built on that assumption age well; plans that wait for user-level tracking to return do not.
What the ad itself has to do
Very little changes inside the ad file. A playable or video does not call SKAdNetwork or AdAttributionKit; the ad network's SDK registers the impression and the click, and the store opens through the network's own call. That is one reason playables must use each network's documented store-exit method rather than opening a store URL themselves: the network's method is what carries the attribution. What is MRAID covers how playables talk to the container.
Playable Ads Maker exports each project with the store-exit call each of 13 ad networks expects, so the attribution the network registers stays intact whichever framework it uses.
Create playable end cards in minutes—no code required.
Open Playable Ads Maker