iOS measurement

Measuring iPhone campaigns after ATT.

Apple limits what you can see per user. The iOS SDK registers your app for SKAdNetwork and sets conversion values from your events, so ad networks can still report results by campaign.

Who runs it
Paid ads, developers
Time to set up
One SDK release
Plan
Free
1The link you make

Decide what each conversion value means.

There's no link to set up for Apple's attribution. What you set is the conversion value schema: which events map to which value. The deferred link still decides the user's first screen.

  • Map a few events that predict value: first run, trial, purchase.
  • Keep the schema the same across campaigns so results compare.
2The screen they land on

The first screen still matches the ad.

Apple's frameworks don't say who installed, but the link still lands the user on the right screen when the app first opens.

  • The SDK never reads the advertising identifier.
3The number that proves it worked

Results by campaign, in your ad networks.

The postbacks go from Apple to the ad networks, delayed and thresholded for privacy. Judge iOS campaigns there by the spread of conversion values, not install counts.

  • Small campaigns report late and vaguely; that's the framework.
  • Your own links and events still show in LinkTrail as usual.
For your developer

One-time setup, then it's all yours.

Your developer registers for SKAdNetwork once at launch and updates the conversion value when the events in your schema happen.

LinkTrail.onLink(link => {
  // link.customData = { cmp: "asa-brand-us", step: "trial" }
  startOnboarding(link.customData.step);
});

// when the trial starts
LinkTrail.updateConversionValue(20);

The full walkthrough: iOS after ATT: campaign-level truth when user-level attribution isn't on offer

On iOS, the click-to-install path that attribution was built on is mostly gone. There is no advertising identifier to join on unless the user opts in, and most don't. What Apple offers instead is a postback — a delayed, aggregated, privacy-thresholded signal from the store that says a campaign produced an install and, within limits, what the user did next.

What problem does this solve?

You still need to know which iOS campaigns are paying back. The postback can tell you, but only if something ingests it, maps its coarse conversion value back to events you understand, and lines it up against the spend. Left raw, it is a number in a network console with no context.

How do you set it up?

Postbacks arrive from Apple, not from a click, so there is no link to configure for the attribution itself. What you configure is the conversion value schema — which post-install events map to which value — and the campaign identifiers, so the postback's campaign field joins to the spend you imported. The deferred link still matters for the user's first screen; it just isn't the attribution source on iOS.

{
  "deepLinkPath": "/onboarding",
  "customData": {"cmp": "asa-brand-us", "step": "trial"}
}

What do the two Apple frameworks give you?

SKAdNetworkAdAttributionKit
AvailabilityiOS 14+iOS 17.4+, with re-engagement on 18.4+
GranularityCampaign-level, privacy-thresholdedCampaign-level, with more postback windows
Re-engagementNoYes, from 18.4
What you getA conversion value, delayedConversion values across up to three windows

Neither tells you which user installed. Both tell you which campaign did, at a delay, and both need the conversion value mapped to something you can reason about. Plan for both — networks are moving to AdAttributionKit at different speeds.

What's the catch?

Delay and thresholds. Postbacks arrive hours to days after the install, and a campaign below Apple's privacy threshold gets a null conversion value. Small campaigns therefore report late and vaguely. That is a property of the framework, not a bug, and any tool that claims to know the individual user behind an iOS postback is claiming something Apple does not provide.

Which metric should you watch?

Conversion-value distribution by campaign, not install count. Two iOS campaigns with equal postback volume can have completely different value distributions, and the distribution is the only signal about user quality the framework gives you. What the latest version changed, and what to ship for it, is in SKAdNetwork 5: what changed and what to ship this quarter.

Which teams own iOS campaign measurement after ATT?

  • Performance & paid
  • Engineers

Which LinkTrail features does iOS campaign measurement after ATT need?

  • SKAdNetwork registration and conversion values (iOS SDK)
  • Post-install events
  • Ad-network cost data (Meta, Google, TikTok, X)

iOS measurement questions.

What is the difference between SKAdNetwork and AdAttributionKit?

Both report campaign-level installs without identifying the user. SKAdNetwork runs on iOS 14+ and returns a delayed conversion value; AdAttributionKit runs on iOS 17.4+, adds more postback windows, and supports re-engagement from iOS 18.4. Networks are moving at different speeds, so expect results from both.

Why are some iOS postbacks missing a conversion value?

Campaigns below Apple's privacy threshold get a null conversion value, and postbacks arrive hours to days after the install. That is how the framework works, not a bug.

Which metric should you watch for iOS campaigns after ATT?

The conversion-value distribution by campaign. Two campaigns with the same postback volume can have very different distributions, and that distribution is the only signal about user quality the framework gives you.

Set up iOS measurement.

Free for your first 5,000 users. No card, no sales call.