What AdServices Attribution Is
Apple AdServices is a framework in iOS that lets an app find out whether its install came from an Apple Ads campaign. Apple Ads, formerly Apple Search Ads, runs ads inside the App Store: at the top of search results, on the Today tab, on the Search tab and on product pages. Because those ads run on Apple's own surface, Apple knows which ad a user tapped before installing, and AdServices is how it shares that answer with the app.
It is deterministic, it does not need the IDFA, and it does not depend on the user accepting the ATT prompt. That makes it one of the most reliable attribution signals on iOS.
How the Token Flow Works
Attribution happens in two steps:
- Get a token. On first launch, the app calls the AdServices framework to generate an attribution token. The token is an opaque string created on the device.
- Ask Apple. The app, or its MMP's server, sends the token to Apple's attribution API. Apple replies with a JSON payload.
If the install came from Apple Ads, the payload says so and includes identifiers for the organization, campaign, ad group, keyword and ad, along with the conversion type, such as a download or a redownload, and the country or region. If it did not, the payload says attribution is false, and the MMP moves on to other signals.
Apple documents the token as valid for 24 hours, and the attribution record can take a short time to become available after install. SDKs typically generate the token on first launch, send it promptly and retry a few times if Apple returns not found.
Standard and Detailed Responses
What Apple returns depends on consent. Without ATT consent, the response contains the campaign-level fields above, which is enough to attribute the install and report it by keyword. With ATT consent, Apple can include more detail, such as the date of the ad click.
Either way, the response describes the ad, not the person. That is why Apple allows it without a tracking prompt.
Where AdServices Fits in Attribution
Apple Ads works like a self-attributing network: Apple decides which installs it drove, and the MMP reads that decision. Other iOS ad networks either rely on SKAdNetwork and AdAttributionKit for privacy-safe postbacks, or on device-level matching for users who granted ATT consent.
In Linkrunner, Apple AdServices is part of the deterministic matching order on iOS, alongside ad click IDs and device IDs where the user allows it. IP and user-agent matching is used only when no deterministic signal exists. The Apple Ads integration then adds installs, spend and revenue with keyword-level rows and a split between tap and view installs, so keyword decisions can use ROAS rather than taps alone. See Google and Meta ads and mobile attribution for how this sits with other channels.
Common Questions When Setting It Up
Do I need the AdServices framework in my app? Yes, the token has to be generated on the device. MMP SDKs include the call, so most teams do not write it themselves.
Why are some Apple Ads installs missing? Usually the token was not sent on first launch, the app was opened offline and the token expired, or the comparison is against Apple Ads reporting that uses a different attribution window or counts redownloads differently.
Should Apple Ads numbers match the MMP exactly? Close, not exact. Apple Ads reporting uses its own windows and may count installs that the MMP credits to a more recent click from another network. Compare by campaign and date, and expect small gaps.
Why It Matters for Growth Teams
Apple Ads often brings high-intent users, because they were already searching in the App Store. Without AdServices, many of those installs would land as organic, especially for users who decline ATT, and teams would underinvest in the keywords that work best. Reading AdServices on every install keeps Apple Ads in the same ROAS view as Google, Meta and the rest of the media plan.