On April 4, 2025, Apple said its search ads would "register with AdAttributionKit" (Apple Ads News, 2025). It's easy to read that as Apple Ads leaving its own attribution behind. It didn't.
As of September 28, 2026, Apple's help page says Apple Ads is registered with SKAdNetwork 1.0, 2.0 and 3.0 "for click-through attribution." The AdAttributionKit API comes "at a later date" (Apple Ads Help, Measuring ad performance on the App Store).
The channel got bigger in the meantime. In June 2026, Kochava said Apple Ads made up 36% of the iOS attribution volume it measures (Kochava, Your iOS Attribution Strategy in 2026).
So your mobile measurement partner (MMP), the tool that joins ad data to in-app revenue, may show Apple Ads twice. One row comes from AdServices. The other comes from SKAdNetwork (SKAN) postbacks, the delayed install reports a device sends to an ad network. When the rows disagree, you have a budget question.
This guide covers which Apple signal measures what, the 2024–2026 changes, why the counts differ and how to set it up. It's the measurement companion to our Apple Ads automation guide.
Key Takeaways
- Apple Ads attributes its own installs with the AdServices token: keyword level, at first open, no ATT prompt.
- Since April 10, 2025 it also sends SKAN 1–3 click-through postbacks that name only the placement (Apple Ads Help, 2026).
- Since September 2026, age- or gender-targeted ad groups get no AdServices attribution.
- Never add the two signals together.
How does Apple Ads attribution actually work in 2026?
Apple Ads attributes its own installs with the AdServices framework, not with SKAdNetwork or AdAttributionKit. Your app requests a token on first launch, and Apple's server swaps it for a record. In 2026, that record says attribution: true for a tap up to 30 days before the download or a view within 24 hours (Apple Developer, attributionToken()).
The token is a Base64 string with a 24-hour lifetime. Your app, or your MMP's SDK, posts it to api-adservices.apple.com/api/v1/ and gets the record back. Taps beat views: Apple says tap-through attribution "is prioritized over view-through attribution."
That record is what makes keyword bidding measurable. Below is Apple's documented tap-through sample, exactly as Apple publishes it:
{
"attribution": true,
"orgId": 40669820,
"campaignId": 542370539,
"conversionType": "Download",
"clickDate": "2024-10-08T17:17Z",
"claimType": "Click",
"adGroupId": 542317095,
"countryOrRegion": "US",
"keywordId": 87675432,
"adId": 542317136,
"supplyPlacement": "APPSTORE_SEARCH_RESULTS"
}
Each field answers one question. claimType says Click or Impression, and conversionType is Download, Redownload or PreOrder.
supplyPlacement names one of the four App Store placements: search results, the Search tab, the Today tab or product pages. Our guide to the Today tab and Search tab placements compares two of them.
Why is there no ATT prompt? Apple says AdServices "does not engage in tracking as defined under the App Tracking Transparency framework." It limits the data instead. The API uses only Apple's first-party data, returns nothing that "identifies a user or device," and rounds clickDate to the minute (Apple Ads Help, Measuring ad performance).
Apple keeps the data "for up to 21 days" (Apple Ads Help, App ad attribution overview). And AdServices sees only ads on the App Store, nothing outside it.
Two practical notes for engineers. First, a call made "too quickly after receiving a valid token" can return a 404; Apple's fix is to retry "at intervals of 5 seconds, with a maximum of three attempts." Second, the token expires after 24 hours, so request it on first launch and pass it on the same day.
Your dashboard uses the same windows. Apple Ads counts Installs (Tap-Through) "within a 30-day window" and Installs (View-Through) "within a one-day window" (Apple Ads Help, Reporting options and definitions).
The keyword ID is the prize. Your MMP can join keywordId to trials and renewals, which is how you rank keywords by payers, not installs. No other Apple signal carries it.
The diagram sets AdServices beside Apple Ads' SKAN postback. That postback carries a conversion value: a number from 0 to 63 that your app sets to signal what the user did after installing.
One Apple Ads install, two attribution pipes
What changed on April 10, 2025, and what didn't?
On April 10, 2025, Apple Ads "registered with AdAttributionKit (beginning with SKAdNetwork versions 1-3)" (Apple Ads Help, App ad attribution overview). That added a second signal alongside AdServices. Apple "will continue to maintain the AdServices API," and as of September 28, 2026, Apple Ads "will register at a later date with the AdAttributionKit API."
The rollout was quick. Apple announced it on April 4, 2025, and renamed Apple Search Ads to Apple Ads on April 14 (Apple Ads News). The stated reason: developers wanted to "assess these ads alongside their app ads from third-party networks."
Apple Ads' SKAN postbacks use the ad network ID com.apple.ads. Their campaign-id encodes only the placement: 10 for search results, 20 for the Search tab, 30 for the Today tab and 40 for product pages (Apple Ads Help, 2026).
Each install yields one postback. It carries a 6-bit conversion-value (0 to 63), plus did-win and redownload flags (Apple Developer, SKAdNetwork postback parameters). The value only appears "if providing the parameter meets Apple's privacy threshold."
Several things are missing. Apple registered click-through only, so view-through installs never reach SKAN. The SKAN 4 and AdAttributionKit extras are absent too: three conversion windows, coarse values, the 2–4-digit source identifier, country-code and re-engagement.
Apple Ads receives the postback itself. You receive a copy only if you add a postback-copy URL under the NSAdvertisingAttributionReportEndpoint Info.plist key, available since iOS 15 (Apple Developer, Receiving ad attributions and postbacks). Adjust says its clients "must" enable direct postbacks to see Apple Ads SKAN data (Adjust Help Center, Apple Ads SKAN setup).
Last verified against Apple's pages: September 28, 2026.
| AdServices | Apple Ads in SKAN 1–3 | AdAttributionKit (other networks, iOS 18.4+) | |
|---|---|---|---|
| Who uses it | Apple Ads only | Apple Ads, since April 10, 2025 | Third-party ad networks |
| ATT prompt needed? | No | No | No |
| Install windows | 30 days after a tap, 24 hours after a view | Taps only; view-through not registered | 30-day click, 1-day view by default; 1–30 and 1–7 days configurable |
| Granularity | Campaign, ad group, keyword, ad, placement | Placement ID only (10, 20, 30, 40) | 2–4-digit source ID, by crowd size |
| When it arrives | At first open | 24–48 h after the last value update | 24–48 h after window 1; 24–144 h after windows 2 and 3 |
| Post-install value | Your MMP's in-app events | One 6-bit value | Fine value in postback 1, coarse after |
| Re-engagement | No | No | Yes, click-through, iOS 18+ |
| Country | countryOrRegion | No | country-code, Tier 3 crowd size only |
| Sees other networks' ads? | No | Yes: one winner on the device | Yes: one winner on the device |
Most MMPs can take in both Apple signals. Our comparison of MMPs that ingest both signals covers the options.
Apple now calls the framework "AdAttributionKit (formerly referred to as SKAdNetwork)," so "Apple Ads joined AdAttributionKit" is technically right. In practice, Apple Ads registered only SKAN 1.0–3.0. April 2025 gave you a de-duplication signal for Apple Ads; measuring Apple Ads itself still runs on AdServices. That's our reading of Apple's pages.
SKAdNetwork vs AdAttributionKit: what's different, and does any of it touch Apple Ads?
AdAttributionKit is SKAdNetwork's successor, and little of what's new in it reaches Apple Ads. It shipped in iOS 17.4, works on the App Store and alternative marketplaces, and "builds on the functionality of SKAdNetwork" (Apple Developer, Ad attribution). Apple puts the framework's reach at "77% of all referral-based conversions to the App Store," based on November 2024 data (Apple Ads Help, App ad attribution overview).
The two frameworks share one contest. When an app has impressions from both, "the system sorts both of them and decides the winner." Taps beat views, the latest tap wins, and the device considers "a maximum of six impressions for any conversion" (Apple Developer, AdAttributionKit and SKAdNetwork interoperability).
AdAttributionKit shares its core with SKAN 4: three conversion windows (days 0–2, 3–7 and 8–35), a fine value first and coarse values after. Postback 1 arrives 24–48 hours after its window closes, and postbacks 2 and 3 take 24–144 hours (Apple Developer, Receiving postbacks in multiple conversion windows). Crowd anonymity, Apple's rule of withholding fields until enough installs share them, sets how much detail each one carries.
Re-engagement belongs to AdAttributionKit alone. From iOS 18 it measures ad taps that reopen an installed app. It's click-through only and capped "on a monthly per-app basis, as well as a yearly per-device basis" (Apple Developer, AdAttributionKit postbacks). iOS 18.4 added overlapping windows, attribution windows you set (1–30 days for clicks, 1–7 for views), cooldowns of 0–720 hours and country-code (Apple Developer, Configuring attribution rules).
So does any of it touch Apple Ads? Only through the shared contest. An Apple Ads SKAN tap is one of the six candidates, so a later tap from another network takes the install.
Apple doesn't document whether your AdAttributionKit window and cooldown rules apply to SKAN-signed impressions like Apple Ads'. Re-engagement, country codes and multi-window postbacks don't reach Apple Ads postbacks at all.
Is SKAdNetwork deprecated? Not formally. Apple's reference doesn't mark the class deprecated, but it says to "use AdAttributionKit for app ad campaigns" (Apple Developer, SKAdNetwork). SKAN 4 stays the fallback for networks that haven't moved.
When each signal arrives after an install
The timing gap shapes your tooling. Bid rules that run on MMP data should read AdServices, which lands at first open, instead of waiting days for SKAN. Our automation guide covers rules that run on MMP data.
What changed in iOS 18, 18.4, 26 and 27, and in Apple Ads itself?
The framework changes landed in iOS 18 and iOS 18.4. The Apple Ads changes came in AdServices: claimType in November 2024, view-through on March 27, 2025, pre-orders in October 2025, supplyPlacement in January 2026 and the age and gender rule in September 2026 (Apple Developer, AdServices changelog). Apple documented no AdAttributionKit or SKAN change for iOS 26 or iOS 27.
- September 2024, iOS 18: AdAttributionKit re-engagement and re-engagement URLs (Apple, AdAttributionKit updates).
- November 2024: AdServices adds
claimType, with the valueClickfor tap-throughs. - March 27, 2025: AdServices view-through, with
impressionDateand anImpressionclaim type. - March 31, 2025, iOS 18.4: "As of iOS 18.4, your app can now have multiple active re-engagement conversion windows at the same time," Apple said at WWDC25 (Apple, What's new in AdAttributionKit). Overlap needs the
EligibleForAdAttributionKitOverlappingConversionsInfo.plist key. Attribution rules, cooldowns, country codes and test postbacks shipped too. - April 10, 2025: Apple Ads registers SKAN 1–3, click-through only.
- April 14, 2025: Apple Search Ads becomes Apple Ads.
- October 2025: AdServices adds pre-order attribution (
PreOrder). If the pre-order came within 30 days of a tap or 1 day of a view, the lookback runs 90 days for taps and 61 for views. - January 2026: AdServices adds
supplyPlacement, naming the placement in every record. - June to September 2026: WWDC26, then iOS 27 on September 14 (9to5Mac, 2026). Apple's AdAttributionKit updates page has no 2026 entry as of September 28, 2026.
- September 2026: AdServices returns
attribution = falsefor "campaigns using age or gender targeting," in the changelog's words. Apple Ads Help scopes it to "ad groups that use age or gender settings," which is where those settings live.
Don't look for the WWDC25 features in iOS 26. Apple's updates page files them under "June 2025," but they shipped in iOS 18.4 on March 31, 2025 (9to5Mac, 2025).
One more September change comes from AppsFlyer, and Apple's changelog doesn't list it. As of September 1, 2026, AppsFlyer says, "Apple's AdServices API adds an engagement timestamp to all iOS attribution claims, including those that previously lacked one" (AppsFlyer Help Center, Bulletin, August 26, 2026). AppsFlyer now checks those claims against your configured lookback window.
Device reach isn't the constraint. In June 2026, iOS 26 ran on 79% of all iPhones and 86% of those introduced in the last four years (Apple Developer, App Store support, measured June 7, 2026). What's missing is network adoption, Apple Ads included. Our recap covers the rest of WWDC26's App Store changes.
Two tracks of change, September 2024 to September 2026
On September 28, 2026, we read all 10 dated entries in Apple's AdServices changelog, January 2022 to September 2026, and tagged those that change what the attribution response returns. Six do: January 2022 (adId replaces Creative Set IDs on iOS 15.2 and later), November 2024 (claimType), March 2025 (view-through), October 2025 (PreOrder), January 2026 (supplyPlacement) and September 2026 (age and gender). Five of the six date from November 2024 on.
The other four are documentation or service notes: October 2022, March 2023, May 2024 (404 handling) and November 2025 ("Apple News is unsupported in iOS 26.1 and later"). So a parser written against the 2023 payload can miss view-through, pre-orders and placement. The tagging is ours; the entries are Apple's.
Why don't your Apple Ads numbers match?
Because each count measures something different. In 2026, the Apple Ads dashboard counts tap-throughs within 30 days and view-throughs within one day (Apple Ads Help, Reporting definitions). AdServices sends those claims to your MMP, minus age- and gender-targeted ad groups. SKAN sees only click-throughs that won on the device.
Double claims are real, and Apple documents them. "AdAttributionKit may be able to register a click from a third-party network that AdServices is, by design, unaware of, so both the third-party network and AdServices could claim the conversion" (Apple Ads Help, Measuring ad performance). Add the rows together and you overstate paid installs.
| Gap you see | Likely cause | What to do |
|---|---|---|
| SKAN below the dashboard | View-throughs aren't in Apple Ads' SKAN registration | Compare SKAN with Installs (Tap-Through) only |
| SKAN below AdServices tap-throughs | Another network's later tap won on the device | Expected: that's the de-duplication working |
| AdServices plus other networks above total paid installs | AdServices can't see third-party clicks | De-duplicate in the MMP; never add the rows |
| AdServices below the dashboard since September 2026 | Age or gender ad groups return false; AppsFlyer now checks each claim's timestamp against your lookback | Remove age and gender where you must measure; set lookbacks to 30 days tap, 1 day view |
Records without keywordId | Search Match | Read queries in the Search Terms report |
SKAN rows with no conversion-value | Below Apple's privacy threshold | Aggregate by placement and week before judging |
| AdServices calls returning 404 | Called too soon after the token was issued | Retry every 5 seconds, up to three times; tokens expire after 24 hours |
| Apple Ads installs vs App Store Connect | App Store Connect counts by source type, not by ad | Subtract paid before crediting ASO (see the last section) |
Two rows need more context. First, Search Match. Apple's reference says "when you enable search match, the API doesn't return keywordId," and it doesn't say whether that's per install or per ad group. Maximize Conversions keeps Search Match on, so expect fewer keyword-level records there.
Second, the September 2026 rule. Adjusting age or gender already "automatically" excludes users with Personalized Ads turned off (Apple Ads Help, Modify audience settings). Now those ad groups lose AdServices attribution as well, which is a high price for a narrower audience.
A false response doesn't delete the install. Depending on its rules, your MMP files it as organic or unattributed, so one setting flatters organic and shrinks Apple Ads ROAS at once. The only Apple-side trace left is a placement-level SKAN postback, if that tap won. Check how your MMP treats a false response before you read either number.
Which number should drive which decision?
Give each count one job. The mapping below is our house guidance:
| Decision | Use this number |
|---|---|
| Keyword and ad group bids | AdServices records in your MMP, joined to revenue |
| Budget split across placements | AdServices supplyPlacement, with SKAN IDs 10–40 as a cross-check |
| Apple Ads vs other networks | The MMP's de-duplicated view, or SKAN and AdAttributionKit winners |
| Organic ASO results | App Store Connect, minus Apple Ads installs |
How should you set up Apple Ads measurement now?
Wire up both Apple signals and give each one job: AdServices for keyword-level ROAS, SKAN copies for de-duplication. Few teams have. In June 2026, Kochava's survey found 11% of iOS marketers had SKAN fully implemented and optimizing. Just 7% had an active AdAttributionKit plan (Kochava, Your iOS Attribution Strategy in 2026).
- Collect the token on first launch. Call
attributionToken()and hand it to your MMP within its 24-hour lifetime. - Opt in to postback copies. Add the SKAdNetwork copy URL (
NSAdvertisingAttributionReportEndpoint) for Apple Ads' SKAN 1–3 postbacks. If you also run AdAttributionKit networks, add itsAttributionCopyEndpointtoo; Apple says to add both (Apple Developer, Configuring an advertised app). - Design one value schema. Map the first conversion value to your earliest revenue-predictive event, such as a trial start. For SKAN 3 and earlier, Apple says you "need to increase the
conversionValueeach time" you update it (Apple Developer, 2026). The mapping is our house guidance. - Audit ad groups for age and gender. Keep those settings only where you accept losing AdServices attribution. See where age and gender settings belong in your structure.
- Match lookbacks to Apple's windows. AppsFlyer applies your configured lookback to every Apple Ads claim since September 1, 2026. Set 30 days for taps and 1 day for views unless you mean to be stricter, and check the equivalent setting in other MMPs.
- De-duplicate, don't sum. Turn on your MMP's de-duplication between AdServices and SKAN or AdAttributionKit. Never build a dashboard that adds them.
- Re-check after each Apple change. Bookmark the AdServices changelog and the AdAttributionKit updates page.
Setup steps last verified against Apple's documentation: September 28, 2026.
What about ATT? Neither AdServices nor AdAttributionKit needs consent. Kochava's piece also says only 2% of iOS installs are shown an ATT prompt at all. So don't build your Apple Ads plan around opt-in rates; our guide to how ATT changed iOS marketing covers the channels it did hit.
How ready are iOS marketers for SKAN and AdAttributionKit?
Then judge Apple Ads on revenue. Our cost guide sets out the ROAS window to judge Apple Ads by. The Apple Ads ROAS and break-even calculator turns your numbers into an affordable bid.
What does Apple Ads attribution mean for ASO?
Attribution frameworks don't change App Store Connect. In 2026, its App Store search source "includes views and downloads from ads that appear in App Store search results" (App Store Connect Help, Acquisition). So paid search can pass for organic growth unless you subtract paid installs before crediting ASO.
The keyword loop runs on AdServices. keywordId joined to revenue tells you which paid terms earn a slot in your title, subtitle or keyword field. That's the paid-to-organic keyword loop, and it goes dark for any ad group that loses attribution.
The age and gender rule reaches your organic read too. Installs that drop out of AdServices can land in organic installs in MMP reports, so an uplift you credit to ASO may be paid. App Store Connect's source type still files search results ad downloads under App Store search. Check ad group settings before you call a win.
adId helps creative work. Each Apple Ads ad points to your default product page or a custom product page, so adId lets you read conversion per page. Our framework for custom product pages per ad shows how to plan them. Running paid and organic as one loop is the core of our Apple Ads management.
Frequently asked questions
Does Apple Ads use AdAttributionKit or SKAdNetwork?
SKAdNetwork 1–3 only, not the AdAttributionKit API. Since April 10, 2025, Apple Ads has been registered with SKAdNetwork 1.0–3.0 for click-through attribution, which Apple files under the AdAttributionKit name. It will register with the AdAttributionKit API "at a later date." Campaign, ad group and keyword attribution still comes from the AdServices token.
Do I need ATT consent for Apple Ads attribution?
No. Apple says AdServices "does not engage in tracking as defined under the App Tracking Transparency framework." It uses only Apple's first-party data and returns nothing that identifies a user or device, and AdAttributionKit doesn't need the prompt either. In June 2026, Kochava reported that only 2% of iOS installs are shown an ATT prompt at all.
What is the Apple Ads attribution window?
30 days after a tap and 24 hours after a view, with taps taking priority, per Apple's attributionToken() documentation. The dashboard matches: Installs (Tap-Through) use a 30-day window and Installs (View-Through) a one-day window. Since October 2025, pre-orders placed inside those windows get 90-day tap and 61-day view lookbacks.
Why does SKAN show fewer Apple Ads installs than my dashboard?
Three reasons. Apple Ads registered SKAN for click-through only, so view-through installs never appear. On the device, the most recent tap from any network wins, so some Apple Ads taps lose. And conversion values drop out below Apple's privacy threshold. Compare SKAN with Installs (Tap-Through), by placement ID 10, 20, 30 or 40.
Is SKAdNetwork deprecated?
Not formally. As of September 2026, Apple's documentation doesn't mark the SKAdNetwork class deprecated. It does tell developers to "use AdAttributionKit for app ad campaigns." The two frameworks interoperate: the device weighs up to six impressions from both, ranks taps above views and picks a single winner.
Does AdAttributionKit re-engagement work for Apple Ads?
Not today. Re-engagement is an AdAttributionKit API feature for click-through ads on iOS 18 and later. Apple Ads is registered only with SKAdNetwork 1–3, which measures installs, and AdServices reports three conversion types: Download, Redownload and PreOrder. Apple Ads Help will say when Apple Ads registers with the AdAttributionKit API.
The bottom line
Apple Ads attribution is still AdServices first. The SKAN postback is a second opinion.
- AdServices: keyword level, at first open, no ATT prompt.
- SKAN 1–3 since April 2025: click-through, placement ID only. Use it to de-duplicate, not to bid.
- iOS 18 and 18.4 features: not in Apple Ads postbacks yet.
- Since September 2026: no AdServices attribution for age- or gender-targeted ad groups.
- Reconcile, don't sum: work each gap through the table above.
Set your break-even first with the free Apple Ads calculator. Then book a free 30-minute call, and we'll reconcile your Apple Ads counts and fix the setup behind them. The fixed-price ASO audit is the usual starting point.