TapPilot
Log in Start free
← Blog
· 3 min read ASAAttributionRevenueCat

Setting up AdServices attribution so RevenueCat can tie subscribers to ASA keywords

If your ASA spend can't be matched to subscribers, your ROAS is a guess. Here's how AdServices attribution works, why it breaks, and exactly what to check to fix it.

You can run perfect campaigns and still fly blind. If your Apple Search Ads spend never gets matched to the subscribers it produced, every ROAS number you look at is an estimate at best and fiction at worst. The bridge that closes that gap is AdServices attribution — and it’s the piece indie founders most often get subtly wrong.

How the chain works

The attribution chain has three links, and all three have to hold:

  1. AdServices. When someone taps your ad and installs, Apple’s AdServices framework hands your app a short-lived attribution token on first launch.
  2. Your app. Your app exchanges that token and attaches the resulting campaign / ad group / keyword data to the user.
  3. RevenueCat. When that user starts a trial or subscribes, RevenueCat ties the revenue back to those ASA identifiers.

Break any link and the subscriber shows up as “organic” or unattributed — indistinguishable from someone who found you on their own. Your paid campaigns then look worse than they are, and you can’t tell which keyword actually drives revenue.

Why attribution breaks

The common failure points, roughly in order of how often they bite:

  • The token is never collected. The AdServices framework has to be wired into your app and the token requested on launch. No collection, no attribution — full stop.
  • The token expires. Attribution tokens are short-lived. If your app waits too long to exchange it, or only does so after the user has poked around for a while, it’s gone.
  • Identifiers aren’t passed through to RevenueCat. The app gets the campaign data but never attaches it to the RevenueCat customer, so revenue and ASA live in separate worlds.
  • Name-vs-ID mismatches. ASA exposes campaign, ad group, and keyword as names in some surfaces and IDs in others. If your mapping joins on the wrong one, the link silently fails for a subset of traffic.
  • Trials masking revenue. Even when attribution works, most newly attributed subscribers are still in their free trial — so their revenue reads as roughly zero until the trial converts. This isn’t broken attribution; it’s just early. Judge it on the trial-start, not the dollar, until the cohort matures.

What to check

Work the chain end to end:

  • First launch. Confirm your app collects the AdServices attribution token on first launch and exchanges it promptly, not lazily.
  • A real test install. Tap one of your own live ads, install fresh, and watch whether campaign / ad group / keyword data lands on the new user. A clean-device test is worth more than reading code.
  • The RevenueCat side. Verify the ASA identifiers actually arrive as attributes on the RevenueCat customer, with the names and IDs lined up consistently.
  • The match rate. Look at the share of paid subscribers that carry ASA attribution. If a large chunk of users you know came from ads read as organic, a link is broken — usually token collection or the ID mapping.

The tell-tale symptom of broken attribution: spend going up, but “organic” subscribers mysteriously rising in lockstep. Those aren’t organic. They’re your ads, un-credited.

Why it’s worth the setup

Once the chain holds, everything downstream gets honest. You can see which keyword produced which trial, which trial converted to a paying subscriber, and what that subscriber is actually worth — which is the only foundation on which real cohort ROAS and confident bidding decisions can be built. Without it you’re optimizing toward installs, and installs don’t pay your bills.

TapPilot reads ASA spend and RevenueCat subscribers off the same attribution chain, lines up the names and IDs for you, and flags when the match rate looks wrong — so you find a broken link before it costs you a quarter of bad decisions. See how attribution connects.

See your real cohort ROAS

Connect Apple Search Ads and RevenueCat, and let TapPilot show you what your spend is really worth.

Start free

Keep reading