Why iOS 14.5+ Broke Meta Attribution — and What CAPI Actually Fixes
Apple's App Tracking Transparency (ATT), rolled out with iOS 14.5, made cross-app tracking opt-in instead of opt-on-by-default. Most iOS users decline. For advertisers, that means a large share of iOS conversions never reach Meta's pixel the way they used to — not because tracking broke, but because it's no longer allowed to run by default.
What actually changed
- Attribution windows shrank — the old 28-day click / 1-day view options collapsed toward a 7-day click default for most accounts.
- Meta introduced Aggregated Event Measurement (AEM), which caps each domain to a prioritized set of events and reports them with a processing delay instead of in real time.
- Reporting shifted from purely observed data to partly modeled data — Meta fills gaps statistically when a conversion can't be directly matched to an ad click.
- Breakdowns (age, gender, placement, region) got less granular for the affected traffic to preserve user privacy thresholds.
CAPI vs Pixel: what's actually different
The pixel is JavaScript running in the visitor's browser — it fires when the browser lets it, which is exactly what ad blockers, Safari's Intelligent Tracking Prevention, and a declined ATT prompt all interfere with. CAPI is a server-to-server call — your backend sends the event to Meta directly, with no browser step in between. Does CAPI replace the pixel? No — Meta's own guidance is to run both together and deduplicate with a shared event ID, not to drop the pixel.
Where the Conversions API (CAPI) actually helps
CAPI sends event data from the server directly to Meta, alongside — not instead of — the browser pixel. It doesn't bypass a user's consent choice; a user who opted out of tracking is still excluded. What it fixes is everything else that quietly breaks pixel-only tracking: ad blockers, browser Intelligent Tracking Prevention, short cookie lifespans in Safari, and page-load events that never fire because the visitor closed the tab too fast.
The practical gain: deduplication and match rate
When pixel and CAPI both fire for the same real event, Meta deduplicates them using an event ID — so it's not double-counted. The result isn't more conversions appearing out of nowhere; it's fewer real conversions getting lost between the browser and Meta's servers, and better hashed-match confidence on the ones that make it through. Meta scores this as an event match quality number in Events Manager — above 6.0 is workable, 7.5+ is the range worth aiming for. That's a data-quality fix, not a way around the attribution window Apple set.
