Skip to content

SKAdNetwork

SKAdNetwork tells an ad network that its ad worked, but not for whom. It trades user-level detail for privacy, and every UA team buying iOS traffic outside Apple Ads has to plan around that trade.

Updated

Apple introduced SKAdNetwork so that install attribution could continue on iOS without tracking individual users across apps. It became central to iOS measurement once App Tracking Transparency made the IDFA available only to users who opt in. Instead of the app or network matching device IDs, Apple’s system validates the ad and the install and sends the result to the network itself.

How SKAdNetwork works

  1. A registered ad network signs its ad with information such as the campaign and the app being advertised.
  2. The user sees or taps the ad and installs the app from the App Store.
  3. After launch, the advertised app can update a conversion value that encodes what the user did early on, such as starting a trial.
  4. When a timer expires, the device sends a cryptographically signed postback to the ad network, and optionally a copy to the advertiser, without any user or device identifier.

Conversion values

The conversion value is the only post-install signal SKAdNetwork carries, so its design is a real product decision. Teams map a limited range of values to events or revenue bands: for example, one value for an install with no action, another for a trial started, higher values for a purchase in successive price ranges. Later versions of the framework added coarse values and more than one postback window, so early and later behavior can be reported separately.

Delays, thresholds and crowd anonymity

  • Delayed postbacks. Timers and random delays mean data arrives days after the install, so daily optimization on fresh results is not possible.
  • Crowd anonymity. How much detail a postback contains depends on how many installs the campaign drives. Small campaigns may receive only coarse values or none at all, and fine-grained campaign identifiers can be withheld.
  • No user-level data. Postbacks cannot be joined to individual users, so cohort analysis per campaign has to be modeled rather than observed.
  • Aggregated reporting only. Results are counts per campaign, not per creative variant unless the network encodes it.

The practical response is to keep campaign structures simple, give each campaign enough volume, and read SKAdNetwork results as directional. Many teams calibrate them against incrementality tests or marketing mix models rather than treating postback counts as exact.

SKAdNetwork, AdAttributionKit and Apple Ads

AdAttributionKit, introduced with iOS 17.4, is Apple’s newer attribution framework and is designed to interoperate with SKAdNetwork, so networks can support both during the transition.

Apple Ads is a separate case. Its attribution runs through Apple’s AdServices framework, which returns the campaign, ad group and keyword behind an install to the advertiser’s app. That makes Apple Ads the one major iOS channel where keyword-level results can be joined with the subscription events your app records, without waiting on SKAdNetwork postbacks.

Related terms: IDFA, ATT and mobile attribution are covered in the adapty.io glossary.

Common questions

Does Apple Ads use SKAdNetwork?

Apple Ads attribution for advertisers comes from the AdServices framework, which is separate from SKAdNetwork and reports campaign, ad group and keyword for installs.

Why are my SKAdNetwork conversion values empty?

Usually because the campaign did not reach the install volume Apple requires for detailed postbacks, or because the app did not update the conversion value before the window closed.

Is SKAdNetwork being replaced?

Apple introduced AdAttributionKit as its newer framework and made it interoperable with SKAdNetwork. Check Apple’s current documentation for which to implement.

Keyword-level Apple Ads results without postback delays

Adapty Ads Manager joins Apple Ads spend with installs, trials, subscriptions and revenue per keyword, and tracks cohort ROAS over time.