Meta Conversions API Best Practices: How to Use CAPI Successfully

The Meta Pixel was the gold standard for browser-side conversion tracking — until iOS 14 changed everything. Ad blockers, browser privacy updates, and Apple's App Tracking Transparency framework have collectively degraded Pixel signal quality to the point where many advertisers are operating on incomplete data without realizing it. The Meta Conversions API (CAPI) is the fix.

But CAPI isn't just a drop-in replacement. Implemented incorrectly, it creates duplicated events, inflated conversion counts, and optimization signals that are worse than what you had before. Here's how to implement Meta CAPI correctly.

What Is the Meta Conversions API?

The Meta Conversions API is a server-to-server integration that sends conversion events directly from your web server (or a middleware like a server-side GTM container) to Meta's servers — bypassing the browser entirely. Unlike the Meta Pixel, which fires JavaScript in the user's browser and is subject to ad blockers and cookie restrictions, CAPI events arrive directly regardless of browser settings, ad blocker status, or iOS privacy choices.

The result is higher event volume, better attribution coverage, and more reliable signals for Meta's delivery algorithm to optimize against. Most advertisers who implement CAPI correctly see a 15–30% increase in reported conversions — not because more conversions are happening, but because more of the real ones are being captured.

Best practice: Run both the Meta Pixel and CAPI simultaneously — not one or the other. The Pixel captures browser behavioral signals; CAPI provides reliable server-side conversion data. Together they give Meta the most complete picture possible.

Signal Resilience: Why Redundancy Matters

The dual-signal approach — Pixel plus CAPI — is the foundation of a resilient Meta measurement setup. The Pixel handles browser-side signals: page views, scroll events, add-to-cart behaviors, and the behavioral data Meta uses for audience building. CAPI handles conversion events: purchases, lead submissions, and any event where the accuracy of the signal directly impacts ad optimization.

With both running, you're covered when the Pixel is blocked (ad blockers affect roughly 25–40% of desktop users), when a user is on iOS with ATT declined, or when a browser's ITP (Intelligent Tracking Prevention) deletes the _fbp cookie. The CAPI event arrives regardless.

This is also where server-side tagging provides additional value — routing your CAPI events through a server-side GTM container gives you control over data transformation, enrichment, and governance before events hit Meta's API.

Event Match Quality: The Metric That Matters

Meta assigns each CAPI integration an Event Match Quality (EMQ) score from 1 to 10. This score reflects how effectively your events can be matched to a Meta user profile. Higher EMQ means more events get attributed to real people, which directly improves delivery optimization, custom audience accuracy, and conversion attribution.

EMQ is driven by the customer information parameters you include with each event. The more identifying data you send (properly hashed), the higher your match rate. At minimum, every CAPI event should include:

  • The fbp cookie (Meta's _fbp browser ID — read from the cookie and passed server-side)
  • The fbc click ID (from the _fbc cookie or the fbclid URL parameter)
  • SHA-256 hashed email address (when available)
  • SHA-256 hashed phone number (when available)

For e-commerce and lead gen, also include hashed first name, last name, city, state, and zip. Each additional parameter incrementally improves your EMQ and the quality of your optimization signals.

Data Freshness: Send Events in Real Time

Meta recommends sending CAPI events within 7 days of the conversion, but real-time or near-real-time delivery is strongly preferred. Delayed event batching — where you queue up conversions and send them every few hours or daily — degrades the quality of the signal for delivery optimization because Meta's algorithm has already made spending decisions based on incomplete data.

For purchase events, the event should be sent within seconds of the transaction completing. For lead events, within seconds of form submission. If you're using a server-side GTM container for CAPI, this happens automatically as part of the tag firing. If you're using a direct API integration, build the event sending into your order confirmation and lead confirmation workflows as synchronous or near-synchronous calls.

Avoid batch sending: Queuing and batching CAPI events — even a few hours of delay — means Meta receives stale signals and your ad delivery decisions for that period were made on incomplete data. Real-time sending is not optional for high-performance campaigns.

Deduplication: The Most Common CAPI Implementation Mistake

Because you're running both the Pixel and CAPI, every conversion will generate two events: one browser-side from the Pixel, one server-side from CAPI. Without deduplication, Meta counts both — inflating your conversion numbers and misoptimizing your campaigns against phantom conversions.

Meta deduplicates events by matching on event_name, event_id, and approximate timestamp. The implementation pattern is straightforward but must be done consistently:

  1. Generate a unique event_id (a UUID or similarly unique string) at the moment the conversion occurs — on the server, before any event is sent.
  2. Pass that same event_id to the Pixel event via the fbq('track', 'Purchase', data, { eventID: 'uuid-here' }) syntax.
  3. Include the same event_id in the CAPI payload's event_id field.

Meta sees both events with matching event_id values and counts them as one. Without this, every conversion gets counted twice — and your reported ROAS looks great while your actual performance degrades from over-optimization.

Frequently Asked Questions

The Meta Conversions API is a server-side integration that sends conversion events directly from your server to Meta's servers, bypassing the browser. Unlike the Pixel, CAPI events aren't affected by ad blockers, iOS privacy restrictions, or cookie limitations — giving you more reliable, complete conversion data for campaign optimization.

Yes. The best practice is to run both simultaneously — a redundant dual-signal approach. The Pixel captures browser-side behavioral signals while CAPI provides reliable server-side conversion data. Together they give Meta a complete picture, which improves optimization and reduces signal loss.

Deduplication is handled by passing a matching event_id in both the Pixel event and the CAPI server event. Meta matches events with the same event_name, event_id, and approximate timestamp and counts them as a single event. The event_id should be a unique identifier generated at the moment of the conversion — commonly a UUID.

EMQ is Meta's score (1–10) for how effectively your CAPI events can be matched to a Meta user. Higher EMQ means more events matched to real people, improving optimization accuracy. EMQ improves when you include hashed customer data: email, phone, fbp, fbc, and other PII fields.

For best match quality, send: hashed email, phone, first/last name, city, state, zip, country, fbp (the _fbp cookie), and fbc (the _fbc cookie or fbclid parameter). All PII must be SHA-256 hashed before sending. The fbp and fbc cookies are especially valuable as identity signals Meta already recognizes.

Brady Hancock
Brady Hancock
Fractional Chief Data & Analytics Officer

Brady specializes in Meta Pixel and CAPI implementations that restore signal quality and drive better ad performance — with proper deduplication, high EMQ scores, and server-side architecture built for scale.

Get a Meta Tracking Audit

Find out if your Pixel and CAPI are working together correctly, check your EMQ score, and identify the signal gaps costing you ad performance.

Schedule a Free Call