iOS and ATT: why iPhone sales go missing from your ad reports
Short answer: iOS didn’t stop the sale — it broke the link between the sale and the ad. Someone sees your ad on Instagram from an iPhone, lands on your store, fills a cart and pays. The money arrives. But Meta can’t claim that purchase as “my ad did this”, because the user never granted tracking permission. The drop you see in your ad dashboard is usually not fewer sales — it’s less proof.
That distinction matters, because both look identical in the dashboard, and most store owners end up fixing the wrong thing.
What actually changed: one permission prompt
In spring 2021, with iOS 14.5, Apple made App Tracking Transparency (ATT) mandatory. Since then, if an app wants to track you across other companies’ apps and websites, it has to ask first, in a plain dialog: allow tracking, or ask the app not to track.
The outcome was predictable. When people are asked directly, most of them decline. For every user who says no, the Instagram or Facebook app can no longer match what that person did on your site with their advertising identity.
The ad still runs. The click still happens. The sale still happens. The link that broke is the sentence “this sale came from that ad.”
Two different Apple changes people mix up
They get lumped together, but they work differently:
1. ATT — the in-app permission. Apps like Instagram, Facebook or TikTok need consent before tracking you outside their own app. This hit attribution directly: which sale came from which ad.
2. Safari’s cookie limits (ITP). This one lives in the browser and is separate from ATT. Safari aggressively shortens the lifetime of measurement cookies. If a customer visits today and buys three days later, the trace of that first visit may already be gone.
Together they weaken both who arrived and why they arrived for iPhone-heavy traffic. For the full map of where data leaks out, see our piece on where tracking data disappears.
How it shows up in your dashboard
- Ad-reported conversions come in below your checkout. Meta says 40 sales, your store says 62. Some gap is always normal; with iOS-heavy traffic the gap gets noticeably wider.
- ROAS looks worse than it is. A campaign may genuinely be profitable, but gets labelled weak because the platform can’t prove its contribution.
- Part of the number is estimated. Meta fills some of the missing attribution with modelling. Modelled numbers aren’t junk, but they don’t reconcile order-by-order — and on small budgets the wobble is more visible.
- Attribution windows got shorter. With a narrower default window, the slow buyer — the one who thinks about it for a week — may never be credited to the ad at all.
The same symptom can have other causes too; our posts on why GA4 shows fewer sales than your checkout and what happens when customers reject cookies cover the rest of the picture.
The real risk: cutting the wrong campaign
This isn’t a reporting-cosmetics problem, it’s a money problem. When the dashboard can’t see part of your iPhone sales, the campaign reaching that audience looks worse than it is. So you do the sensible thing: you cut its budget.
The campaign that was actually making money gets shrunk, and the one with better-looking numbers — often a desktop-heavy one — gets scaled. The only place that shows the decision was wrong is your checkout, not your ad panel.
What you can do
1. Make your checkout the reference. Your order dashboard holds the real sales count. Read the ad platform as a trend indicator, not a source of truth.
2. Watch the total, not just the campaign. As per-campaign attribution weakens, “spend was X this week, total revenue was Y” becomes the more trustworthy comparison.
3. Don’t leave the record of a sale to the browser. Sending purchase data from your server creates a path that browser and app restrictions can’t silence. Our plain-language explainer on server-side tracking covers how that works.
4. Finish the basics on Meta’s side. If domain verification and event priority setup are missing, you’re stacking avoidable loss on top of the iOS loss.
5. Put UTMs on every link. When platform attribution weakens, tagged links are the one solid trace that stays on your side.
The pre-iOS measurement world isn’t coming back. But telling “my ads stopped working” apart from “I can’t prove my ads are working” improves the quality of your budget decisions starting today.
Quick answers
What is ATT? The permission system Apple introduced with iOS 14.5. An app must explicitly ask before it can track you across other companies’ apps and websites.
Did iOS reduce my sales? No. Sales keep happening; what dropped is the share of them an ad platform can attribute back to its own ads.
Why does Meta report fewer sales than my store? Because purchases by iPhone users who declined tracking can’t be matched to an advertising identity. Some gap is normal; its size depends on how much of your traffic is iOS.
What does “modelled conversion” mean? Meta statistically estimates part of the attribution it can no longer measure. The direction is usually right, but it won’t reconcile order by order.
Does server-side tracking fix this completely? Not completely, but it improves things substantially: the purchase record stops depending on the browser, and more sales become matchable again.