Paid AcquisitionOctober 26, 2026

SKAdNetwork and AdAttributionKit: A Practical Guide to iOS Attribution

How SKAdNetwork and AdAttributionKit work: postbacks, conversion values, windows, privacy thresholds, schema design, and how to make decisions with iOS data.

SKAdNetwork and AdAttributionKit: A Practical Guide to iOS Attribution
Quick answer

SKAdNetwork and its successor framework AdAttributionKit are Apple's privacy-preserving systems for attributing iOS app installs to ads without identifying individual users. After an install, Apple sends delayed postbacks to the ad network, and optionally to you, with campaign information and a conversion value you define to describe early user behavior. SKAdNetwork 4 added up to three postbacks across measurement windows. Data detail depends on privacy thresholds, so design conversion values carefully.

Paid Acquisition SKAdNetworkAdAttributionKitSKAN 4iOS conversion values

Why SKAdNetwork exists

Since App Tracking Transparency arrived with iOS 14.5, apps must ask permission before tracking users across other companies' apps and websites, and many users decline. Without the device advertising identifier, traditional user-level attribution is not possible for most iOS users. SKAdNetwork lets ad networks measure campaign performance in aggregate without revealing who installed.

AdAttributionKit, introduced in iOS 17.4, builds on the same ideas and is interoperable with SKAdNetwork. It supports attribution for apps distributed through alternative marketplaces in the EU as well as the App Store, and Apple has added capabilities such as re-engagement attribution and more configuration options in later releases. Our ATT prompt guide explains the consent side.

How the flow works

When a user sees or taps an ad from a registered ad network, the ad is signed with campaign information. If the user installs and opens the app within the attribution window, the app updates conversion values as the user takes actions. After the measurement window ends and a random delay passes, Apple sends a postback to the ad network with the campaign identifier and conversion data, and you can receive a copy.

Postbacks do not include user identifiers, and timing is deliberately delayed and randomized. This protects privacy but means you see results later and in aggregate. Campaign optimization on iOS therefore relies more on modeling, early signals, and testing than on real-time user-level data.

SKAdNetwork 4: three postbacks and two value types

SKAdNetwork 4, introduced with iOS 16.1, supports up to three postbacks for successive windows: roughly days 0 to 2, days 3 to 7, and days 8 to 35 after install. The first postback can carry a fine conversion value, a number from 0 to 63, if privacy thresholds allow. Later postbacks carry only a coarse value: low, medium, or high.

SKAdNetwork 4 also introduced a hierarchical source identifier of up to four digits, replacing the older campaign ID, with the number of digits returned depending on crowd anonymity. Developers can lock a conversion value early to receive a postback sooner. These changes let you see a longer view of user value than earlier versions allowed.

Crowd anonymity and privacy thresholds

Apple applies crowd anonymity tiers based on how many installs a campaign generates. Small campaigns receive less detail, such as only coarse values and fewer source identifier digits. Larger campaigns can receive fine values and full source identifiers.

This means structure matters. Splitting budgets into many small campaigns can reduce the detail you receive. Consolidating spend into fewer, larger campaigns often produces more useful data. Work with your ad networks and mobile measurement partner to understand how their campaign structures interact with these thresholds.

Designing a conversion value schema

Your conversion value schema maps user actions to values. Common approaches encode revenue ranges, key funnel events such as registration, tutorial completion, or trial start, or a mix of both. The goal is to capture early signals that predict long-term value, because the first window is short.

Use your data to find predictive events. If users who start a trial on day 1 are far more valuable, encode trial start prominently. Define coarse values for later windows, such as low for engaged, medium for trial, and high for paying. Most mobile measurement partners provide tools to design and manage schemas; see our MMP comparison.

Making decisions with aggregated data

With delayed, aggregated data, decisions require patience and triangulation. Combine SKAdNetwork postbacks with ad network reporting, store analytics, overall install trends, and incrementality tests. Media mix modeling and geographic experiments can complement attribution for large budgets.

Avoid over-reacting to daily swings. Judge campaigns over weeks, compare trends against organic baselines, and validate assumptions with holdout tests. Our guide to attribution and organic uplift covers these methods.

Where Apple Ads fits

Apple Ads uses its own attribution through the AdServices framework, which can attribute installs from Apple Ads campaigns without requiring ATT consent, within Apple's privacy rules. This makes Apple Ads measurement more direct than many other networks on iOS.

Combine Apple Ads attribution with SKAdNetwork data from other networks in your MMP or reporting to see the full picture. Our guides to Apple Ads campaign structure and bidding explain how to manage that channel.

Common SKAdNetwork mistakes

Designing a conversion value schema without data is the most common mistake, encoding events that do not predict value. Another is fragmenting campaigns so much that crowd anonymity thresholds hide most detail. Teams also expect real-time, user-level reporting and become frustrated with delays.

Some apps never update their schema as the product changes, so values drift away from what matters. Finally, relying on a single data source rather than triangulating leads to poor budget decisions.

A worked example: a subscription app's schema

A subscription app analyzes its data and finds that users who start a trial within 48 hours convert to paid at a much higher rate. It designs a fine conversion value schema for the first window that encodes onboarding completion, trial start, and early paid conversion, with revenue ranges for direct purchases.

Coarse values for later windows mark engaged users as low, active trials as medium, and paying subscribers as high. The app consolidates campaigns to meet privacy thresholds, and within a month can compare networks by the share of installs reaching trial and paid. Budget shifts toward networks with higher medium and high coarse values.

How to do it, step by step

  1. Register ad networks and enable postbacksAdd ad network identifiers to your app and configure developer postback copies.
  2. Find predictive early eventsAnalyze which actions in the first days predict long-term value.
  3. Design fine and coarse value schemasMap key events and revenue ranges to fine values for window one and coarse values for later windows.
  4. Consolidate campaignsStructure campaigns to meet crowd anonymity thresholds and receive more detail.
  5. Triangulate and testCombine postbacks, network data, store trends, and holdout tests before making budget decisions.

Before and after examples

Illustrative examples written for a generic app in this category, not client results. Swap in your own product, audience, and data.

Schema design
Before

Encode every in-app event as a separate value.

After

Encode onboarding complete, trial start, and paid conversion, with revenue ranges.

Why it works: Focus on events that predict value.

Campaign structure
Before

Thirty small campaigns per network.

After

Five larger campaigns per network.

Why it works: Larger campaigns pass privacy thresholds and return more detail.

Decision timing
Before

Cut a campaign after one day of postbacks.

After

Judge after two to three weeks, comparing with organic trends.

Why it works: Delayed data needs longer evaluation windows.

Action plan

  1. Register networks and enable developer postbacks
  2. Design schemas from predictive events
  3. Use coarse values for later windows
  4. Consolidate campaigns for crowd anonymity
  5. Triangulate with network and store data
  6. Review schemas as the product changes

Metrics to monitor

  • Postback volume by network and campaign
  • Share of fine versus coarse values received
  • Distribution of conversion values
  • Cost per high-value conversion
  • Incremental installs from tests

Record the baseline, release date, audience, markets, and external changes before interpreting movement. Rankings and conversion are useful signals, but a decision is stronger when activation, retention, and business value confirm that the page attracted the right users.

Frequently asked questions

What is SKAdNetwork?

Apple's privacy-preserving framework that attributes iOS app installs to ad campaigns without identifying individual users.

What is AdAttributionKit?

A newer Apple attribution framework, introduced in iOS 17.4, that is interoperable with SKAdNetwork and supports alternative app marketplaces in the EU.

How many postbacks does SKAdNetwork 4 send?

Up to three, covering successive windows after install. The first can include a fine conversion value; later ones include coarse values.

Do I need SKAdNetwork if I only run Apple Ads?

Apple Ads uses its own AdServices attribution. SKAdNetwork matters when you run campaigns on other ad networks.

Keep reading

Go deeper on this topic

More in Paid Acquisition

Browse all 13 Paid Acquisition guides

Work with ASOWin

Primary sources

Platform capabilities and limits can change. Verify current requirements in these official resources:

Share

Turn your next ASO decision into measurable growth

Get a focused audit of visibility, conversion, ratings, and market opportunities.