Apple's App Tracking Transparency framework, shipped with iOS 14.5 in April 2021, lets iPhone users block cross-app tracking, and most do. That broke ad platforms' ability to reliably match an ad click to a later Shopify purchase. Safari's 7-day cookie cap compounds the problem for anyone who takes more than a week to convert. The fix is Meta's Conversions API plus disciplined UTM tagging, treating your own Shopify order data as the source of truth rather than the ad platform's dashboard.
If your Meta Ads dashboard has looked increasingly disconnected from your actual Shopify revenue since 2021, you're not imagining it. A single Apple software update changed how ad platforms are allowed to measure conversions, and the ripple effects are still expanding today.
In April 2021, Apple shipped iOS 14.5 with App Tracking Transparency (ATT), a framework that requires every app, including Facebook, Instagram, and Safari itself, to explicitly ask permission before tracking a user across apps and websites owned by other companies, per Apple's own developer documentation. Before ATT, ad platforms could access a device's advertising identifier (IDFA) and use it to connect an ad click to a later purchase. After ATT, that only happens if the person taps "Allow."
Industry estimates of the opt-in rate vary by source, but most analyses agree that a large majority of iPhone users decline tracking when asked. That single decision, repeated across tens of millions of devices, is the root cause of the "broken attribution" problem merchants started noticing in mid-2021 and have been dealing with ever since.
The mechanism is specific. When a shopper clicks your ad inside the Facebook or Instagram app and completes checkout inside that app's built-in browser, the ad platform used to match the click to the purchase using the device identifier and cookies. With ATT declined, that in-app browser withholds the identifier and blocks third-party cookies, so the platform's pixel can see that a purchase happened on your site but can no longer reliably tie it back to the specific ad click that caused it.
Google Ads is affected too, though generally less severely, since more of its traffic flows through Chrome and Search rather than an in-app browser with its own tracking restrictions.
Meta's response to ATT had two parts. Aggregated Event Measurement (AEM) caps each domain to eight conversion events, ranked by priority, and only the single highest-priority event that occurred (typically Purchase) gets reported for each opted-out iOS visitor. If a shopper viewed a product, added it to cart, and then purchased, AEM reports only the purchase and discards the earlier funnel steps.
The second part, Conversions API (CAPI), sends conversion data directly from your server (or from Shopify's own backend, since Shopify has a built-in Meta sales channel integration) straight to Meta, bypassing the browser entirely. This recovers a meaningful share of the visibility lost to ATT, though Meta still applies its own attribution model on top, so more visibility isn't the same thing as more accurate attribution.
ATT isn't the only privacy mechanism at play. Safari's Intelligent Tracking Prevention (ITP) caps any cookie set through JavaScript, which is how most tracking pixels set their identifiers, to a maximum of seven days before it expires. That means Meta's browser cookie, Google's client-id cookie, and TikTok's browser cookie all reset after a week of inactivity on Safari.
In practice, a shopper who clicks your ad, browses for a few days while deciding, and finally buys more than a week later will look like a brand-new, untraceable visitor by the time they convert, even though the original ad click is what started the journey.
Published estimates of the resulting attribution gap vary widely, and it's worth treating any single number with some skepticism, since much of the available data comes from vendors selling a fix. That said, multiple independent analyses converge on a similar general shape: gaps in the 20 to 40 percent range shortly after the 2021 rollout, with several more recent analyses suggesting the gap has widened further as Safari and iOS layered on additional privacy protections.
The practical read for a Shopify merchant is simple. If your Meta-reported conversions look meaningfully lower than your actual Shopify order volume for the same period, that gap is very likely a measurement problem, not a performance problem.
iOS 14.5 was the starting point, not the end state. Later iOS and Safari releases have progressively extended Link Tracking Protection, a feature that strips tracking parameters from URLs in more browsing contexts over time. Each update tends to close another gap that ad platforms had been using to partially reconstruct attribution, which is why merchants often notice their numbers getting worse again well after 2021, not just once.
The trend line matters more than any single update. Apple has consistently moved toward more restriction rather than less with every major iOS release since 2021, and there's no indication that direction is reversing. Planning your tracking setup around the assumption that visibility will keep shrinking, rather than hoping it recovers, is the more realistic posture for a Shopify merchant to take.
The practical danger isn't just that your reports look wrong. It's that Meta and Google's bidding algorithms train on the conversion events they can actually see. If a large share of your real conversions, disproportionately from iOS users, never reach the platform, the algorithm optimizes toward the audience it can observe rather than the audience that's actually buying. Over time, that can mean campaigns quietly spend less efficiently on iOS traffic specifically, not because those shoppers convert less, but because the platform has less evidence that they do.
This is why merchants sometimes see one platform's reported ROAS drop sharply while their overall Shopify revenue holds steady or grows. It's tempting to read that as "this channel stopped working," but it's often closer to "this channel stopped being able to prove it's working," which calls for a different response: fix the measurement, don't just cut the budget.
1. Set up Meta's Conversions API through Shopify's Facebook & Instagram sales channel. Then verify in Meta's Events Manager that both browser and server events are firing for the same purchases. Deduplication matters here, since firing both without deduplication double-counts conversions.
2. Tag every ad with UTM parameters and treat your Shopify order data as the source of truth, not the ad platform's dashboard. UTM parameters travel in the URL itself and are unaffected by ATT or ITP, since they're not tracking mechanisms at all, just plain data in a link.
3. Calculate a blended metric, something like total Shopify revenue divided by total ad spend across all channels, alongside platform-reported ROAS, and watch the gap between the two rather than trusting either number in isolation.
4. Treat Meta's "modeled conversions" as a rough directional signal for reporting, not as a number to optimize campaigns against. Campaigns still tend to perform best when optimized on the conversions the platform can actually observe.
iOS 14.5's App Tracking Transparency framework, and the Safari cookie limits that compound it, permanently changed how much ad platforms can see about a purchase that started with an ad click. None of this is a bug in your Shopify store or a sign your campaigns stopped working. It's a measurement limitation built into how modern privacy-focused browsers and operating systems work. The fix isn't to chase back the old visibility, since that data isn't coming back. It's to combine server-side conversion reporting with your own first-party order data so you're making decisions on the most complete picture available, and to keep expecting the visible slice of that picture to keep shrinking rather than recover.
Most likely because of Apple's App Tracking Transparency (ATT), introduced in iOS 14.5 in April 2021. When iPhone users decline tracking, which most do, Meta's pixel can see that a purchase happened but often can't reliably tie it back to the ad click that caused it, so the platform under-reports conversions compared to your actual Shopify revenue.
ATT is an iOS framework that requires apps to ask permission before tracking a user across other companies' apps and websites. For Shopify merchants, its main effect is on ad attribution: when a shopper declines tracking, ad platforms lose the device identifier they'd normally use to match an ad click to a later purchase, which shows up as under-reported conversions relative to your real order volume.
It significantly improves visibility by sending conversion data directly from the server to Meta instead of relying on the browser pixel, and Shopify has a built-in integration for it. It doesn't fully restore pre-2021 accuracy, though, since Meta still applies its own attribution model and Aggregated Event Measurement rules on top of whatever data CAPI sends.
There's no single universal number, and estimates vary a lot depending on the source and how much of your traffic is iOS. Multiple independent analyses put initial post-2021 attribution gaps in the 20 to 40 percent range, with some more recent estimates suggesting the gap has grown further as additional privacy features have rolled out.