Meta Conversions API

Meta CAPI for Shopify

The Conversions API sends purchase and lead events to Meta directly from your server. Set up correctly alongside the Pixel, it recovers events the browser drops. Set up carelessly, it double-counts them.

Pixel and CAPI aren't alternatives

It's tempting to treat CAPI as the “better” replacement for the Pixel. Meta doesn't recommend running one instead of the other — it recommends running both, sending the same event twice through different routes, so that if the browser event is blocked, the server event still lands.

The catch is that sending the same purchase twice means Meta needs a way to know they're duplicates rather than two separate sales.

Browser pixel event
Server CAPI event
Matched by shared event ID
One purchase in Ads Manager

Simplified — illustrative, not literal API payload structure.

Event Match Quality is a symptom, not a target

Meta scores every server event on how confidently it could match it to a real Facebook or Instagram account, based on the customer parameters included — hashed email, phone, external ID, click ID, IP address and user agent. More matching parameters, more confidence, higher score.

It's useful as a diagnostic — a score that drops suddenly usually means a field stopped being sent — but chasing a higher number for its own sake isn't the point. A checkout that legitimately collects only an email will never hit the same score as one that also has a phone number and a matched click ID, and that's fine.

What usually breaks first

What you seeWhat's usually happening
Purchases undercounted on iOSSafari trims cookie lifespan and blocks some pixel requests outright.
Duplicate purchases in Ads ManagerPixel and CAPI both fired without a shared event ID, so Meta counted each once.
Event Match Quality stuck lowOnly a hashed email is sent — no phone, external ID, or click ID to strengthen the match.
Leads not appearingLead events are wired for the Pixel only; the server-side event was never added for that form.

Setting it up

  1. Connect your Meta ad account and confirm which Pixel is already firing on your storefront.
  2. Send matching server-side events for purchases, and for any lead or add-to-cart events you rely on.
  3. Use the same event ID on both the Pixel and server event for each action, so Meta can deduplicate them.
  4. Check Events Manager for duplicate rates and match quality over the following week, not the first hour.

Attribix sends the matching server-side events once your Meta account is connected, using a shared event ID across the Pixel and server event so Meta can deduplicate them.

Consent still governs what gets sent

CAPI doesn't bypass a customer's tracking choice. If consent hasn't been given, the corresponding server event shouldn't be sent either — the API changes how data travels, not whether the customer's decision applies.

Running Google Ads as well? Google uses its own conversion setup rather than Meta's event ID — see Google Ads conversion tracking for Shopify.

Common questions

What is Meta CAPI?
The Conversions API is Meta's server-to-server method for sending events like Purchase directly to Meta from your backend, instead of relying only on the browser-based Pixel.
Do I need both the Pixel and CAPI?
Most Shopify stores get the best coverage running both together, deduplicated by a shared event ID, so browser and server events reinforce each other rather than double-count.
What is Event Match Quality?
Meta's score for how confidently it can match your events to a real Facebook or Instagram user, based on how much hashed customer data — email, phone, external ID — you send with each event.
Does a higher Event Match Quality score mean perfect attribution?
No. It means Meta can match more events to known users, which usually improves optimization and reporting — but matching an event to a person isn't the same as knowing which ad caused the purchase.
Can CAPI track customers who declined consent?
No. CAPI still requires the same consent and privacy compliance as the Pixel — it changes how an event reaches Meta, not whether you're allowed to send it.

See your current Meta match quality

Connect your store and Meta account to see duplicate rates and Event Match Quality for your actual traffic.

Want this set up for you instead? Ask about tracking and attribution setup, or see Meta Ads management.

See how this fits into the bigger picture: server-side tracking and Shopify attribution and ROAS tracking.