Settl.

Tracking / Meta Conversions API · Shopify

The Meta Conversions API on Shopify, done properly

The Meta Conversions API sends your Shopify purchases to Meta from a server instead of only from the buyer's browser. Here's what it needs to work, how to check it, and the mistakes that quietly ruin it.

Purchases that the pixel misses

Paid orders go to Meta from the server, so ad blockers and closed tabs don't stop them.

Better match quality

Hashed email and phone, fbc, fbp, IP and browser: the details Meta uses to find the buyer.

Counted once

Browser and server share one event id, so Meta keeps one purchase, not two.

What the Meta Conversions API actually is

The Conversions API (often called CAPI) is Meta's server-to-server channel. Instead of a script in the buyer's browser telling Meta that a purchase happened, a server sends the same Purchase event directly to Meta's API, using an access token you create in Events Manager.

It doesn't replace the pixel. Meta recommends running both: the pixel catches what happens in the browser, the Conversions API makes sure the important events still arrive when the browser can't send them. On Shopify that matters most for the Purchase event, because it's the one your campaigns optimize for.

What Meta needs to match a server purchase to an ad

A server event on its own is just an order. Meta has to work out which person it belongs to, and whether that person saw or clicked one of your ads. It does that with customer information parameters. The more of these you send, the better the match:

  • fbc: the Facebook click id, built from the fbclid that's in the URL when someone clicks your ad. This is the strongest link to a specific click.
  • fbp: the browser id Meta's pixel stores in the _fbp cookie.
  • Email and phone, hashed with SHA-256 before they're sent. Never plain text.
  • The buyer's IP address and user agent from the visit.
  • An external id, so a returning buyer is recognized as the same person.

The part most setups get wrong: keeping the click

The fbclid only exists on the landing URL. If your buyer clicks an ad on Monday, leaves, and comes back through Google on Friday to buy, a server that only looks at the order has no fbc to send. Meta then has to rely on email and phone alone, which works for some buyers and not for others.

That's why the click has to be saved the moment the visitor lands, and stored with that visitor until they pay. Settl keeps it for 90 days, first-party, on your own store.

Deduplication: one purchase, not two

When the pixel and the Conversions API both report the same order, Meta needs to know they're the same event. It checks two things: the event name and the event id. If the browser pixel sends Purchase with eventID 1047-abc and the server sends Purchase with event_id 1047-abc, Meta keeps one.

If the ids differ, or one side sends no id at all, you get double counting. Your ROAS looks great in Ads Manager and nothing in your bank account agrees.

How to check it works in Events Manager

Open Events Manager, pick your dataset (pixel) and look at the Purchase event in the Overview. You want to see it received from both Browser and Server. The deduplication details show what share of browser and server events were matched up.

Event Match Quality is shown per event on a 0 to 10 scale. A Purchase score in the higher range usually means hashed email, phone and fbc are getting through. Use the Test Events tab with a test code to watch a test order arrive live, and check the Diagnostics tab for warnings about missing parameters or duplicates.

Meta Conversions API on Shopify: your three options

There are three common ways to run the Meta Conversions API on a Shopify store, and each suits a different kind of store.

Shopify's own Facebook & Instagram channel is free and already connected to your catalog. On its maximum data-sharing setting it sends server events for Meta. It's a sensible default if Meta is your only ad platform and you don't need to see what happens per order.

Server-side Google Tag Manager, often hosted on Stape, gives you full control over every parameter. It's flexible and the hosting can be cheap, but someone has to build and maintain the tags, the click storage and the deduplication. When a theme update breaks something, you need that person again.

A dedicated tracking app sits in between: no tags to build, but more control than the built-in channel. Settl saves the click on landing, sends every paid order to Meta with hashed details and a shared event id, retries failed sends, and does the same for TikTok, Google, Snapchat, Pinterest, X, Microsoft Ads and Reddit from one setup. Whichever route you choose, choose one per pixel.

Common mistakes on Shopify

  • Two server sources at once, for example Shopify's Facebook & Instagram channel on maximum data sharing plus another CAPI app, without a shared event id. Pick one server source per pixel.
  • Sending Purchase on order creation instead of on payment, so unpaid or cancelled orders count as sales.
  • Leaving a test event code in a live setup, so real purchases end up in Test Events only.
  • Theme snippets from an old pixel install still firing next to the app.
  • Sending events days late. Meta only accepts events up to 7 days old.

How to set it up with Settl

  1. 1Create a Conversions API token

    In Meta Events Manager, open your dataset, go to Settings and generate an access token. Copy your pixel id too.

  2. 2Connect your store to Settl

    Install on Shopify in one click. Settl adds one line to your theme that saves the ad click on every landing.

  3. 3Paste your pixel id and token

    From then on every paid order is sent to Meta from the server, with the same event id as your browser pixel.

  4. 4Check Events Manager

    Place a test order with a test code, then watch Purchase show up from Browser and Server in the Overview.

Pricing

Monthly, cancel any time. No contract, no fee per order from Settl.

99,9% Tracking

Keep Shopify's checkout. Every paid order sent server-side to Meta, TikTok, Google, Snapchat and Pinterest.

7,99 $first month, then 44,99 $/month

Start with 99,9% Tracking

Pro

Your own checkout plus 99,9% Tracking and ROAS per ad, in one plan.

10,99 $first month, then 54,99 $/month

Start with Pro

Questions

Doesn't Shopify already send Conversions API events?+

Shopify's Facebook & Instagram channel can send server events on its higher data-sharing setting, and for many stores that's a fine start. The difference with a dedicated tool is control: the ad click saved for 90 days, the same setup for TikTok, Google, Snapchat, Pinterest, X, Microsoft Ads and Reddit, and a status per order. Use one server source per pixel, not both.

Will the Conversions API recover every lost sale?+

No tool can promise that. Settl sends every paid order to Meta, but Meta can only link it to an ad when it can match the buyer, and consent choices limit what can be used. In practice the gap gets much smaller, not zero.

Do I need Google Tag Manager or a developer?+

Not with Settl. You paste your pixel id and access token. The click saving, hashing, deduplication and retries run by themselves.

What Event Match Quality score should I aim for?+

Meta doesn't publish a fixed target, but a higher score on Purchase means more of your sales can be tied to people. Sending hashed email, phone and the saved fbc is what moves it most.

What does it cost?+

99,9% Tracking is €39,99 per month, the first month €6,99. Monthly, cancel any time, no fee per order.

Related

All guides and comparisons →

Every sale back to your ads.

Get started
Meta Conversions API for Shopify, set up without code · Settl