META PURCHASES

WooCommerce Meta pixel not tracking purchases

Orders come in on your WooCommerce store, but Meta Events Manager shows fewer Purchase events than you have paid orders, or none. The pixel is on the site and page views arrive, so the problem is usually the last step: the page where the purchase should fire.

Why it happens

The shopper never comes back to the order received page. The Meta pixel sends Purchase from the browser, usually on WooCommerce's order received page (the /order-received/ endpoint). Many payment methods send the shopper to the payment provider's own site and then back to that page. A shopper who pays and closes the tab, or whose bank app does not return them, never loads it. Stripe's own docs warn that customers can leave the page after payment is complete, and tell developers to rely on webhooks for that reason. The order is paid in WooCommerce. Meta never hears about it from the browser.

A cache or a script optimiser breaks the pixel. WooCommerce asks you to exclude the cart, checkout and my account pages from caching, because they show data for the current customer. The order received page sits under checkout. The documentation of Meta's own plugin also says some caching plugins have optimisation settings that conflict with the pixel code, and suggests turning off the grouping of JavaScript files.

The shopper declined cookies or blocks the script. With a consent banner, a shopper who declines marketing cookies should not be tracked by the pixel. Ad blockers and browser privacy settings stop the script for others. These orders are paid and invisible to the pixel.

Purchase depends on a theme or plugin that changed. A pixel added by hand in the theme, a tag manager or an older plugin can stop firing after a theme update, a new checkout block or a plugin update. Two senders can also run at once, which shows up as duplicates rather than gaps.

Check it yourself

  1. 1In WordPress, open WooCommerce > Orders and count orders with the status Processing or Completed for the last 7 full days. Note your site's time zone in Settings > General.
  2. 2In Meta Events Manager > Data sources > your pixel > Overview, read the Purchase count for the same days, and check where the events came from: browser, server or both.
  3. 3List the payment method of each order Meta is missing. If most of them used one method that sends the shopper to another site, the return to the order received page is the likely gap.
  4. 4Install the Meta Pixel Helper extension in Chrome. Place a test order with that payment method and watch whether Purchase fires when the order received page loads.
  5. 5Open Events Manager > Test events, follow the steps for your website and place one more test order. If nothing arrives, the pixel did not fire.
  6. 6In your caching plugin, check that cart, checkout and my account are excluded, and try turning off JavaScript grouping or delay for the pixel.
  7. 7In your consent tool, read the share of shoppers who declined marketing cookies in the same days.
  8. 8List every plugin and script that sends a Meta Purchase. Keep one sender, or make sure every sender uses the same event ID.

The Shopify side of the same question is in the Meta Conversions API on Shopify.

Ask about your store

FAQ

Do I need the Conversions API on WooCommerce?

If many of your purchases are lost in the browser, a server connection is the only way to report them. See Meta Conversions API on WooCommerce.

Why does Meta count purchases that were never paid?

Some setups send Purchase when the order is created, before payment. An order that later fails or is cancelled stays in Meta's count. Check when your setup sends.

Can I send the missing purchases later?

Meta accepts server events up to 7 days old. Older purchases cannot be added.

Should Meta's count equal my orders?

No. Declined cookies and orders that did not come from your website separate the two. Compare whole weeks.

Related

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

Meta counts purchases twice

Meta shows more purchases than you had Shopify orders. Why browser and server events double up, and how to find every sender in your store.

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.

Problem

Meta purchases change when you change the attribution setting

Your Meta purchase count goes up or down when you pick another attribution setting. Why click, view and engaged-view windows change the number, and how to compare it with Shopify.

All tracking problems · All guides