META PURCHASES

Meta counts purchases twice

Meta shows more purchases than you had orders. Usually two senders report the same purchase and Meta cannot tell they are one.

Why it happens

The event IDs differ. Meta can receive the same purchase from the browser pixel and from a server through the Conversions API. It counts the purchase once only when both events carry the same event name and the same event ID. This is called deduplication. If the browser sends one ID and the server sends another, or one side sends no ID, Meta sees two purchases. Your reported return then looks better than it is, and your ad spend looks more efficient than it was.

Two tools send purchases. Stores often have more than one sender without knowing it. The Facebook and Instagram sales channel app sends purchases. A theme or custom code snippet may add a second pixel. A tag manager container may carry a third Purchase tag. Another app that promises tracking may add a fourth. Each one is a separate sender, and they rarely share event IDs. Meta then counts the same order once for each sender.

The same pixel is connected in two places. The same pixel ID can be installed through two routes, for example the sales channel and a manual snippet. Both fire on the confirmation page. A page that reloads can also fire the Purchase event again unless the sender guards against it, so a shopper who refreshes the confirmation page may be counted twice.

Check it yourself

  1. 1In Shopify admin > Orders, filter by Sales channel, keep the online store, and set the last 7 full days. Count paid orders, leaving out draft orders marked as paid, point of sale sales and subscription renewals.
  2. 2In Meta Events Manager > Data sources > your pixel > Overview, set the same days and read the Purchase count. If it is clearly above your paid orders, duplicates are likely.
  3. 3In the same Overview, open the Purchase event and look at the Browser and Server counts. A server count close to the browser count on a store with no cookie declines suggests both senders report every order, so check that Meta reports them as deduplicated.
  4. 4Open Events Manager > Data sources > your pixel > Diagnostics and read the warnings for the Purchase event. Meta lists problems with event IDs and with deduplication there when it finds them.
  5. 5Open Events Manager > Data sources > your pixel > Test events and make a test purchase on your store. Watch how many Purchase events arrive for the one order and which sender each came from.
  6. 6List every tool that can send purchases to this pixel: the sales channel app in Shopify admin, theme code, a tag manager, and any other app. In Shopify admin > Settings > Customer events, look at the list of pixels the store runs.
  7. 7Keep one purchase sender, or make sure every sender uses the same event ID for the same order.

To keep one copy of each purchase, see checking deduplication in Events Manager.

Run the free diagnosis

FAQ

Is a small difference between Meta and Shopify a duplicate?

Not necessarily. Time zones, attribution settings and declined cookies move the numbers both ways. Look for a Meta count that is above your paid orders for the same days, which no cookie or blocker can explain.

Does Meta remove duplicates on its own?

Only when events carry matching names and event IDs. Meta also uses other signals for matching, but a clean event ID is what makes deduplication dependable.

Do I need to remove the browser pixel when I add a server connection?

Not always. Browser and server events together are Meta's recommended setup, as long as they share event IDs. What causes doubling is two separate connections that each send a purchase without a shared ID.

Why does this matter for ads?

Meta optimizes on the purchases it sees. Counting an order twice overstates results and teaches the delivery system from inflated data.

Related

Problem

Google Ads shows more purchases than Shopify

Google Ads reports more purchase conversions than your Shopify orders. Why one order can count twice, and how to check your conversion actions, transaction IDs and tags.

Problem

TikTok shows more purchases than Shopify

TikTok Ads Manager reports more purchases than your Shopify orders. Why one order arrives twice, how TikTok's event_id deduplication works, and how to find the second sender.

Problem

Meta shows fewer purchases than Shopify

Meta's Purchase count is lower than your Shopify paid orders. Three common causes and a step by step check you can do in Events Manager today.

Problem

WooCommerce Meta pixel not tracking purchases

Your WooCommerce store has paid orders, but Meta shows few or no Purchase events. Payment redirects, caching and consent are the usual causes. Here is how to check.

All tracking problems · All guides