// Proof Mode ON — annotations visible

Meta Conversions API (CAPI) + iOS 14 Attribution Playbook: The Complete 2026 Setup Guide

What Meta CAPI is

Meta Conversions API (CAPI), formerly the Facebook Conversions API, is Meta’s server-side tracking method. Instead of relying only on the browser Meta Pixel to send conversion events (which iOS 14+ and consent-mode restrictions block), CAPI sends events directly from your server to Meta’s Graph API. This preserves the attribution signal browser-based tracking loses.

The mental model that helps: the Meta Pixel is a browser messenger telling Meta “this user just did X on the website.” iOS 14 broke that messenger’s ability to identify the user for a large slice of traffic. CAPI is a second, parallel messenger — running server-side — that carries the same message but can’t be blocked by browser-level restrictions. Modern implementations run both messengers together with matching event IDs, so Meta receives one high-fidelity event per user action.

CAPI isn’t optional in 2026 for anyone spending meaningful budget on Meta Ads. It’s the difference between Advantage+ algorithms optimizing on complete conversion data (working as intended) and optimizing on 40–70% incomplete data (producing 30–60% higher CPAs than they should).

Why iOS 14 broke everything

iOS 14.5 (April 2021) introduced App Tracking Transparency (ATT), requiring apps to ask users for permission before tracking them across other apps and websites. When users decline — and 65–85% of them do, depending on the app category — the Meta app can’t share the device identifier (IDFA) with the Meta Pixel on external websites.

Concrete consequences:

  • Attribution windows shrank from 28-day click / 1-day view to Meta’s new default of 7-day click / 1-day view. Long-cycle conversions that used to attribute to Meta stopped attributing.
  • Aggregated Event Measurement (AEM) replaced granular event data for iOS users, limiting advertisers to 8 prioritized events per domain.
  • Cross-device attribution collapsed for iOS users, so a user who saw an ad on iPhone and converted on desktop often went unattributed.
  • Retargeting audience sizes shrank because Meta could no longer track many iOS users’ site visits.
  • Reported ROAS dropped 30–60% in most Meta accounts through 2021–2022 — not because campaigns performed worse, but because Meta couldn’t see the conversions.

Safari’s Intelligent Tracking Prevention (ITP) compounds the problem for browser-based tracking on desktop and mobile Safari, and consent-mode restrictions across the EU further degrade browser-only signal. The 2020 tracking stack is fundamentally broken in 2026; CAPI is the industry-standard fix.

How CAPI recovers the signal

CAPI works by moving the event-sending responsibility from the browser (where iOS and Safari can interfere) to your server (where they can’t). When a conversion happens on your site:

  1. The Meta Pixel in the browser fires the event as usual (still valuable for the users iOS doesn’t restrict).
  2. Simultaneously, your server sends the same event directly to Meta’s Graph API via CAPI.
  3. Both events include the same event_id, matching event_name, and identifying user data (hashed email, phone, etc.).
  4. Meta’s ingestion pipeline sees both events, matches them by event_id, deduplicates, and stores one high-fidelity event with the best of both signals: pixel’s browser context + CAPI’s reliable delivery.

The result is roughly 85% conversion coverage instead of the 40–70% pixel-only accounts see. Advantage+ campaigns fed by CAPI-complete data optimize dramatically better because the algorithm sees a much larger and more accurate conversion set to learn from.

The five levers that determine whether CAPI actually works

Installing CAPI is not the same as CAPI working. A poorly-configured CAPI recovers only 15–25% of lost signal; a well-configured CAPI recovers 60–80%. The five levers:

1. Complete Advanced Matching (hashed email + phone minimum)

Advanced Matching sends hashed customer data with every event so Meta can match the event to a Meta user account. Every event should include, at minimum, hashed email and phone. Ideally also first name, last name, city, state, zip, country, external_id (your CRM ID for the user). Data must be SHA-256 hashed before sending — Meta rejects unhashed PII.

Match rates by Advanced Matching completeness:

  • No Advanced Matching: 40–55% match rate on iOS
  • Email only: 55–70%
  • Email + phone: 70–80%
  • Email + phone + name + address details: 80–90%

2. Matching event_id between pixel and CAPI for deduplication

When both the Meta Pixel and CAPI send the same event, Meta needs to deduplicate them so it doesn’t count the conversion twice. Deduplication requires: matching event_id between the pixel event and CAPI event (both send the same unique string per event), matching event_name, and events arriving within a short time window (24 hours is safe).

Broken dedup = either double-counted conversions (inflating reported CPA/ROAS) or missed dedup opportunities where Meta counts one event instead of merging signal from both. Every modern CAPI implementation must generate event_ids client-side (in the pixel call) and pass them to the server-side handler for the CAPI event.

3. fbc and fbp inclusion

The fbc (Facebook click ID) and fbp (Facebook browser ID) cookies are how Meta ties an event back to a specific ad click. fbc comes from the fbclid URL parameter Meta appends to ad clicks; fbp is a first-party cookie Meta sets on your domain.

Every CAPI event should include both when available. Missing fbc means Meta can’t attribute the event to the ad click that led to it. Missing fbp means Meta can’t associate the event with the browser session. Both dramatically improve match quality when present.

4. Sub-60-second event latency

CAPI events should reach Meta within 60 seconds of the actual conversion happening. Events arriving later still count but with lower match quality and potentially outside optimization windows. Server-side implementations should fire CAPI events synchronously when possible; async queues should have <30-second latency.

5. Event Match Quality (EMQ) monitoring at 8+ target

Event Match Quality (EMQ) is Meta’s 0–10 score for how well your CAPI events match to actual Meta users, shown in Events Manager. Higher scores = better attribution accuracy. Targets:

  • EMQ 6 or below = poor matching, ads significantly underperform their true value
  • EMQ 6–8 = acceptable but improvable
  • EMQ 8+ = strong matching, Advantage+ algorithms optimize effectively

EMQ is the metric to monitor monthly. Improvements almost always come from better Advanced Matching data completeness. Deep-dive: Meta CAPI Match Quality guide.

Implementation paths compared

Four common ways to implement CAPI, ordered by complexity:

Path 1: Meta CAPI Gateway or Zapier

No-code implementations that forward events to Meta via a middleware layer. Meta CAPI Gateway is a hosted Meta product; Zapier via webhook works for basic events. Cheapest and fastest to set up. Best fit: pre-revenue founders testing Meta Ads at low spend levels. Limitations: minimal event customization, limited Advanced Matching, no shared event_id with pixel (dedup often broken).

Path 2: WordPress plugins

Plugins like PixelYourSite Pro, GTM4WP, or custom PHP snippets send CAPI events from a WordPress site. Moderate setup complexity, no ongoing infrastructure cost. Best fit: WordPress-based businesses at $5k–$50k/month spend. Limitations: only works for WordPress, and plugin quality varies wildly — some produce EMQ 4, others hit EMQ 8+. Verify with a paid CAPI audit before trusting the setup.

Path 3: Google Tag Manager server-side (recommended)

Server-side GTM (sGTM) is a Google-hosted tag management layer running on Google Cloud Run or App Engine. Sends events from your server to Meta CAPI, Google Ads Enhanced Conversions, TikTok Events API, GA4, and any other destination from a single unified pipeline. Best fit: mid-market and larger accounts running multiple ad platforms. Cost: ~$100–$500/month cloud infrastructure + setup time (typically 20–40 hours for a solid implementation).

This is the 2026 default for founders spending $10k+/month on paid media. Full technical implementation guide: Measurement Audit: Server-Side GTM & CAPI.

Path 4: Direct Meta Graph API integration

Custom-coded server-to-server integration hitting Meta’s Graph API endpoints directly. Most control; requires developer resources. Best fit: teams with engineering capacity and specific customization needs (unusual event structures, complex user identification, high-throughput requirements). Overkill for most accounts.

The 2026 recommended CAPI stack

For a founder spending $10k+/month on Meta Ads, the recommended implementation is:

  • Server-side GTM as the tracking backbone, hosted on Google Cloud Run.
  • Meta Pixel installed client-side via server-GTM’s web container for browser events + user context.
  • Meta CAPI tag in the server-GTM container, firing on every conversion event, with event_id matching the pixel event.
  • Advanced Matching populated on every event: hashed email, hashed phone, first_name, last_name, city, state, zip, country, external_id, fbc, fbp.
  • Enhanced Conversions for Google Ads on the same server-GTM (bonus — server-GTM handles both platforms from one pipeline).
  • GA4 events also flowing through server-GTM.
  • Monthly EMQ monitoring in Meta Events Manager with a target of 8+.

This stack consolidates every server-side tracking need into one Google Cloud pipeline. Maintenance is centralized, adding new destinations (TikTok, LinkedIn, Snap) becomes trivial, and future privacy changes only require updates in one place.

Migration path from pixel-only to pixel + CAPI

The safe migration sequence for an established account:

  1. Baseline audit. Document current pixel event volumes per event type, current CPA/ROAS by campaign, current EMQ (usually N/A for pixel-only accounts).
  2. Deploy server-GTM in parallel to existing tracking. Don’t remove the pixel yet.
  3. Fire CAPI events with matching event_ids alongside pixel events. Verify in Meta Events Manager under “Deduplication” that events are correctly matched.
  4. Verify Advanced Matching is populating correctly. EMQ should climb from N/A to 6–7 in the first week, then to 8+ after tuning.
  5. Monitor for 30 days. CPA in Meta Ads reporting should stabilize higher than pre-CAPI (because more conversions are now being attributed), and Advantage+ algorithms will begin to optimize better.
  6. Do not remove the pixel. Pixel provides browser context CAPI can’t; running both is the 2026 default.

Common CAPI mistakes

  • Installing CAPI without matching event_ids. Events don’t dedup; Meta double-counts, inflating reported metrics.
  • Sending Advanced Matching unhashed. Meta rejects the data. Must SHA-256 hash before sending.
  • Missing phone number in Advanced Matching. EMQ typically drops 1–2 points versus email + phone accounts.
  • Not sending fbc from URL fbclid parameter. Loses the click-to-conversion connection.
  • Firing CAPI events async with 5+ minute latency. Attribution windows can close before events land.
  • Removing the pixel after installing CAPI. Loses browser context; EMQ drops.
  • Trusting a WordPress plugin without verifying EMQ. Plugin quality varies; audit outcomes.
  • Not monitoring EMQ monthly. Score drifts as user data completeness changes; catch regressions early.
  • Setting up CAPI Gateway and calling it done. Gateway is the minimum viable option; server-GTM or plugin implementations produce dramatically better outcomes.
  • Ignoring iOS-specific attribution windows. AEM limits iOS events to 8 prioritized types — prioritize the events that matter for optimization.

Beyond Meta: why the CAPI pattern matters for every platform

Meta was first to require server-side tracking to survive iOS 14, but every ad platform has since built its own version:

  • Google Ads Enhanced Conversions — hashed first-party data pushed via server-side integration.
  • TikTok Events API — TikTok’s CAPI equivalent.
  • LinkedIn Conversions API — LinkedIn’s server-side implementation.
  • Snap Conversions API — Snap’s equivalent.
  • Pinterest Conversions API — Pinterest’s.

Every one of these requires the same underlying capability: send hashed first-party conversion data server-side to the platform. Server-side GTM handles all of them from one pipeline. Founders who invested in server-GTM for Meta CAPI got the infrastructure for every other platform’s equivalent for free.

Strategic context: CAPI as competitive moat

The Meta advertisers scaling profitably in 2026 have Event Match Quality 8+, matching event_ids between pixel and CAPI, and full Advanced Matching populated on every event. The Meta advertisers still struggling with rising CPAs and blaming iOS 14 are typically running pixel-only, or CAPI-installed-but-broken (EMQ 4–6, no dedup, incomplete Advanced Matching).

The gap between the two groups is entirely a technical implementation gap — not a strategy, creative, or budget gap. It costs $200–$500/month in cloud infrastructure and 20–40 hours of one-time setup to close. And it recovers 30–60% of the attribution signal iOS took away, which typically translates to 25–45% lower CPAs on Advantage+ campaigns within 60 days.

Working as an AI-Powered Digital Growth Consultant, the CAPI audit pattern I see with founders in the US market, India, and UAE is consistent: 70%+ of the accounts I audit have EMQ below 6 or have CAPI installed but dedup is broken. Fixing that alone typically produces the largest single Meta Ads improvement founders see all year. The technical work isn’t hard; the diagnostic to know what’s actually broken is where the leverage lives.

If you want a CAPI audit against your specific implementation, the Measurement consulting programme covers it. For deployment of the full server-GTM + CAPI stack, see Tracking Implementation service or book a paid 30-minute strategy call. The broader measurement architecture context is in the measurement audit guide and Meta CAPI match quality.

Frequently asked questions about Meta CAPI

What is the Meta Conversions API (CAPI)?

Meta Conversions API (CAPI, formerly the Facebook Conversions API) is Meta’s server-side tracking method. Instead of relying only on the browser Meta Pixel to send conversion events (which iOS 14+ and consent-mode restrictions block), CAPI sends events directly from your server to Meta’s Graph API. This preserves attribution signal that browser-based tracking loses. Modern implementations run pixel AND CAPI together, deduplicated by event_id, so Meta gets a single high-fidelity event per user action.

Why did iOS 14 break Meta Pixel tracking?

iOS 14.5 (April 2021) introduced App Tracking Transparency (ATT), requiring apps to ask users for permission before tracking them across apps and websites. When users decline (which 65–85% do), the Meta app can’t share the device identifier with the Meta Pixel on external websites. Result: conversions from those users go untracked in browser-based pixel implementations. Compounded by Safari’s Intelligent Tracking Prevention (ITP) which further degrades cross-site cookie-based tracking, iOS Meta attribution dropped 30–60% in most accounts through 2021–2022. CAPI recovers this signal because it bypasses browser restrictions.

What is Event Match Quality (EMQ) and how do I improve it?

Event Match Quality (EMQ) is Meta’s 0–10 score for how well your CAPI events match to actual Meta users. Higher scores mean better attribution accuracy. EMQ 6 or below = poor matching, ads underperform. EMQ 8+ = strong matching, Advantage+ algorithms optimize effectively. To improve: (1) send hashed email AND phone number in Advanced Matching for every event; (2) add first name, last name, city, state, zip, country when available; (3) ensure event_id matches between pixel and CAPI for deduplication; (4) send fbc (click ID from URL parameter) and fbp (browser ID cookie) with every event; (5) send the event within 60 seconds of it happening.

Do I need CAPI if I already have the Meta Pixel?

Yes. Pixel-only implementations lose 30–60% of iOS traffic conversions in 2026. CAPI recovers most of that. Best practice: run pixel + CAPI together for every event, with matching event_id so Meta deduplicates. The pixel provides browser-side context signals (referrer, user agent, cookies) that CAPI-only implementations can’t send; CAPI provides server-side event delivery that iOS restrictions can’t block. Together they achieve 85%+ conversion coverage; separately either achieves 50–70%.

How do I set up Meta CAPI?

Four common implementation paths ordered by complexity: (1) Meta CAPI Gateway or Zapier — no-code, cheapest, limited event customization. (2) WordPress plugin (PixelYourSite, GTM4WP, or custom) — moderate complexity, works for WordPress sites. (3) Google Tag Manager server-side — moderate complexity, best for accounts also running Google Ads and needing unified server-side tracking. (4) Direct Graph API integration — most control, requires developer resources. For most founders, server-side GTM is the right answer because it consolidates CAPI, Google Enhanced Conversions, and TikTok Events API into one pipeline.

What is event deduplication in Meta CAPI?

When both the Meta Pixel and CAPI send the same event (e.g., a purchase), Meta needs to deduplicate them so it doesn’t count the conversion twice. Deduplication requires: (1) matching event_id between the pixel event and CAPI event (both send the same unique string per event); (2) matching event_name (e.g., ‘Purchase’); (3) events arriving within a short time window (24 hours is safe). Correctly implemented dedup means Meta sees one high-fidelity event per user action, with pixel providing browser context and CAPI providing signal iOS blocks. Broken dedup = double counting or missed conversions.

What’s Advanced Matching and why does it matter?

Advanced Matching sends hashed customer data (email, phone, name, address, city, state, zip, country) with every event so Meta can match the event to a Meta user account. Match rates improve dramatically: pixel-only conversions without Advanced Matching typically match 40–55% of the time; CAPI events with full Advanced Matching hit 80–90% match rates. Every meta CAPI event should include at minimum hashed email and phone; ideally also first name, last name, and geographic details. Data must be hashed (SHA-256) before sending — Meta rejects unhashed PII.

Should I use server-side GTM for Meta CAPI?

For most mid-market and larger accounts, yes. Server-side GTM provides one unified tracking pipeline serving Meta CAPI, Google Ads Enhanced Conversions, TikTok Events API, Google Analytics 4, and any custom endpoints. Alternatives (WordPress plugins, direct API integrations, Meta CAPI Gateway) work but require separate pipelines per destination. Server-side GTM’s cost: ~$100–$500/month in cloud infrastructure (Google Cloud Run or self-hosted App Engine) plus setup time. The consolidation and long-term maintainability usually justify it above $10k/month total ad spend.

Want a CAPI audit against your specific implementation?

A paid 30-minute strategy call with an AI-Powered Digital Growth Consultant is the fastest way to identify whether your CAPI is actually recovering signal or silently broken. Currently working with founders across the US, India, and UAE.

Scroll to Top