BLOG · 25 OCTOBER 2026

Meta Pixel vs Conversions API on Shopify: do you need both?

Meta gives a Shopify store two ways to report a purchase. The Meta Pixel sends it from the shopper's browser. The Conversions API sends it from a server. Meta's own advice is to run both and send the same events through each. This page explains what each one sees, why the pair covers more than either alone, and the rule that keeps an order from counting twice.

What the Meta Pixel is

Meta describes the pixel as a snippet of JavaScript code that tracks visitor activity on your website. It loads a small library in the shopper's browser. When the shopper does something you measure, such as a purchase, the browser sends an event to Meta.

Because it runs in the browser, the pixel sees the visit itself:

  • every page the shopper opens, product views and add to cart, not only the purchase;
  • Meta's browser ID, which Meta stores in the _fbp cookie on your domain;
  • Meta's click ID from an ad click, stored in the _fbc cookie;
  • the shopper's IP address and browser, which Meta adds to browser events on its own.

It cannot report a purchase the browser never sent. Shopify's own help says a browser-based ad blocker can prevent the Meta pixel from sharing data. A shopper who closes the tab before the order page loads sends nothing either.

What the Conversions API is

The Conversions API is Meta's address for events sent from a server. Meta says server events are linked to a dataset ID and processed like events sent with the pixel. On Shopify, the server learns about the order from Shopify after payment, so the purchase does not depend on what happened in the browser. Shopify's help says data sent from server to server cannot be blocked by browser-based ad blockers.

The server sees the order:

  • the order ID, the value, the currency and the products, straight from Shopify;
  • customer details from the order, such as email and phone, which Meta requires you to hash;
  • no cookies and no browser of its own.

Meta's reference says the shopper's user agent is required for website events sent through the Conversions API, and that the IP address and user agent must be set by hand on server events. Meta's browser ID and click ID live in cookies in the shopper's browser. So the server copy is stronger when something in the browser read those values during the visit and kept them with the order.

So, do you need both?

Meta's answer is yes. Its best practices page says: "Use the Conversions API in addition to the Meta Pixel, and share the same events using both tools." It adds that the Conversions API lets you share website events that the pixel may lose, and that using both tools provides more complete and reliable data sharing.

In plain terms, they cover each other's gaps:

  • Sends from: the Meta Pixel, the shopper's browser; the Conversions API, a server.
  • Sees page views and add to cart: the Pixel, yes; the Conversions API, only if your server sends them.
  • Stopped by an ad blocker: the Pixel can be; the Conversions API, no.
  • Has the browser cookies: the Pixel, yes; the Conversions API, only if they were kept with the order.
  • Has the order data from Shopify: the Pixel, what the page shows; the Conversions API, yes.

The pixel keeps the browsing events that audiences and campaign optimisation use. The server makes sure the purchase arrives.

How they work together: deduplication

Two senders means two copies of each purchase. Meta counts the order once only when it can tell the copies belong together. Meta's deduplication page says it checks two things:

  • the pixel's eventID must match the Conversions API's event_id;
  • the pixel's event name must match the Conversions API's event_name, for example both Purchase.

Meta's parameter reference adds that when it finds a match between events sent within 48 hours of each other, it only considers the first one. When both arrive within five minutes of each other, Meta says it favors the browser copy.

On Shopify, the order ID works well as the shared value. Both sides must send exactly the same string. For the how-to with a custom pixel, see The Meta event ID with a Shopify custom pixel. For how Meta matches events and how to read its report, see Meta event deduplication on Shopify.

Meta's fallback, matching by browser ID or external ID, generally works only when the browser copy arrives first. Send the event ID.

What goes wrong

Two copies, no shared ID. A theme snippet sends Purchase from the browser with no event ID, and an app sends it from a server. Meta sees two orders. To find each sender, see Meta counts purchases twice.

The server copy arrives late. A copy sent more than 48 hours after the first one is not matched. Meta's reference also says an event time can be at most 7 days in the past.

Server copies with thin data. Without the browser ID, click ID, IP address and user agent, Meta matches fewer server purchases to people. See Low Event Match Quality for Purchase in Meta.

The Facebook & Instagram app is a sender too. Above its lowest data sharing level, the app sends purchases from the pixel and from a server. Add your own server copy next to it, and Meta can get three. See Facebook & Instagram app data sharing levels.

Check your store

  1. 1In Meta Events Manager, open your pixel, then Overview, and open the Purchase event. Note whether it arrives from the browser, the server or both.
  2. 2If both, open Event Details and the Event Deduplication tab. The Rate of Deduplication Key Usage shows what share of each source's events carried an event ID. Both should be high.
  3. 3Place a low price test order and watch it in Test events. See Meta Test Events for a Shopify store.
  4. 4List every sender of Purchase: the Facebook & Instagram app, theme code, a custom pixel under Settings > Customer events, Google Tag Manager and any app.
  5. 5Refund or cancel the test order.

Your options for the Conversions API side are in Meta's Conversions API options for Shopify.

FAQ

Can I use the Conversions API without the pixel?

You can send purchases from a server alone. You then lose the browsing events the pixel sends and the cookies it sets, and Meta's advice is to use both.

Does the Conversions API get around cookie consent?

No. A server can send an order the browser missed, but the buyer's privacy choices still apply to it. See Shopify consent settings and missing purchases.

Where Tikra fits

Tikra sends each paid online order of your store from our server to Meta through the Conversions API, as a Purchase, with the order total in your store's currency, the order ID and the products. It keeps a record for each order: what was sent, when, and Meta's answer. For page views, add to cart and checkout steps, the Meta card and the Events page in Tikra say whether they are sent for your store. On Shopify the Facebook & Instagram channel has no switch for purchases alone, so turning it off also stops its page views, product views, add to cart and checkout events; our help lists what you lose before you go live.

Our help tells you to turn off the store's own Meta purchase tracking before Meta goes live in Tikra, so that one sender reports each purchase. A new Meta connection starts in a check before sending, and Meta gets nothing from Tikra during it. With a key that can read your pixel's statistics, Tikra reads Meta's own count every day for at least 48 hours and shows whether another connection still sends your purchases. Tikra applies your customers' consent choices to every order, and in Strict mode an order is sent only with the buyer's consent. A written guarantee in our Terms covers eligible orders: at least 97 % reach each platform, fixed within 12 hours or a month's fee credited (Terms of Service, section 8).

The free diagnosis sends none of your orders anywhere. It shows your paid orders of the last 7 full days, how many came from a Meta, Google or TikTok ad, and, after a full day and 10 paid online orders, how many your shoppers' browsers reported. With a key that can read your pixel's statistics, it also shows Meta's count.

Run the free diagnosis

Related

Guide

The Meta Conversions API access token for a Shopify store: how to make it, where it goes, how to keep it safe

How to create a Conversions API access token in Meta Events Manager for your Shopify store, what the system user route changes, which access you need, where to paste the token and how to keep it private.

Problem

Meta Conversions API access token stopped working

Your Meta Conversions API access token expired or was revoked and purchases stopped. Why it happens, how to check it in Events Manager and how to make a new one.

Problem

Meta Conversions API on WooCommerce: why server purchases are missing

Events Manager shows your WooCommerce purchases from the browser only, or the Conversions API is on and still sends nothing. What a working setup needs and how to check it.

Guide

Meta Pixel purchase event not firing on Shopify, and "fbq is not defined"

How to test whether your Meta Pixel sends Purchase on a Shopify store, what the result tells you, and what the "fbq is not defined" error means for your tracking.

All tracking problems · All guides