Retail attribution after the iOS privacy changes
Written by The Pixamp Team
The iOS privacy changes did more than shrink your retargeting pools. For any brand sending ad traffic to a retailer it doesn't own, they quietly cut the last usable link between the click and the sale.
What did iOS actually change for tracking?
Two mechanisms matter here. App Tracking Transparency (ATT), introduced with iOS 14.5, forces apps to ask permission before tracking a user across other apps and sites. Most users decline. Private Click Measurement (PCM), Apple's replacement, reports conversions in aggregate, on a delay, and only within Apple's rules.
Both go after the same thing: the browser-side pixel that ad platforms have leaned on for a decade. Apple's own ATT documentation describes the framework as a per-app permission gate. When a user opts out, the identifier that ties an ad impression to a later action inside another app or Safari session goes dark.
For a DTC brand selling on its own domain, that loss is painful but partial. First-party data still flows. For a brand routing traffic to Amazon or Walmart, the loss compounds, because the conversion was already happening on a domain the brand can't instrument.
Why does this hit retailer-bound traffic hardest?
Consider the chain. A shopper taps a Meta ad on their iPhone, lands on a product page, then clicks through to the Amazon app to buy. Before ATT, a browser pixel might have stitched some of that together through cross-site identifiers. After ATT, the identifier is often gone before the shopper even reaches the retailer.
Then Safari's Intelligent Tracking Prevention caps how long a pixel's cookies survive, so even same-session signals decay fast. The retailer's app is a separate, logged-in environment that reports nothing back to your ad account. You now have three walls between the impression and the purchase: the ATT opt-out, the cookie cap, and the retailer's closed reporting.
The result is pixel data loss that reads as poor performance. Meta records the click, sees no conversion, and concludes the ad failed. It didn't. The measurement did.
How much signal are you actually losing?
You can approximate it without new tools. Take the conversions Meta reports for a retailer-bound campaign and compare them against the retailer's own sales data for the same SKUs and the same window. The gap between the two is roughly what the browser pixel can no longer see.
Here's illustrative arithmetic, not a benchmark. Say a campaign drove 1,000 clicks and the retailer recorded 80 purchases of the advertised SKU, while Meta reported 12 conversions. That means about 85% of the buyer-intent signal never made it back to the platform deciding where your budget goes.
The share of iOS users in your audience sets the ceiling on browser-pixel loss. If most of your traffic is mobile iOS, most of your pixel visibility is already gone, no matter how clean your tags are.
Why do server-side events survive?
The browser pixel runs on the user's device, inside the environment Apple governs. A server-side event runs on your own infrastructure and sends the conversion to the ad platform through a direct server-to-server call. ATT and ITP govern the browser, so they don't touch it.
That's the mechanical reason Meta pushed the Conversions API. Per Meta's Conversions API documentation, the endpoint accepts events sent directly from your server, deduplicated against any pixel events by an event ID. A server-side event fired when a shopper clicks through to the retailer carries the buyer-intent signal past all three walls at once.
The catch: a server-side call can only send what you capture. If your product page doesn't record the click-through to Amazon, there's nothing for the server to forward. The plumbing survives iOS. You still have to lay the pipe.
A practical audit checklist
Run this before you touch a campaign. Each step tells you where signal is leaking.
- Pull the iOS share of your Meta traffic from Ads Manager. That number caps your browser-pixel visibility.
- For one retailer-bound campaign, compare Meta-reported conversions against the retailer's sales report for the same SKUs and window. Record the gap.
- Check whether any conversion events reach Meta through a server-side channel, or only through the browser pixel.
- Confirm you capture a click-through event when a shopper leaves your page for the retailer. If not, that event doesn't exist to send.
- Verify event deduplication so a browser event and a server event for the same action aren't double-counted.
| Browser pixel | Server-side events | |
|---|---|---|
| Survives ATT opt-out | No | Yes |
| Survives Safari ITP | Partial | Yes |
| Sees the retailer checkout | No | Only if captured |
| Feeds Meta's delivery | Shrinking | Yes |
Steps two and three tend to expose the largest gaps. A campaign that looks like a loser in Ads Manager while the retailer sells through is the clearest sign your reporting stops at the browser. The same reconciliation habit anchors a durable retail attribution measurement stack, and it's the first thing to fix before you judge a single ad.
Where to start
- Website: www.pixamp.io. What the product does, pricing, and the FAQ. First 1,000 clicks free, no card required.
- How it works: www.pixamp.io/#how-it-works. The three-step setup: connect Meta Business Manager, add a retailer button, launch. Live in under an hour.
- Book a demo: www.pixamp.io/#contact. A 20-minute walkthrough on a real retailer page, with the founding team.
The pixel that carried your attribution for a decade is now half-blind on iOS. Auditing the gap is the cheapest hour you'll spend this quarter, and it tells you exactly which ads you've been misjudging.
