WooCommerce: Meta and Google show fewer purchases than my store. Where do the orders go missing?
Short answer
Test each payment method, check caching and plugin duplicates, and send the paid order from the server with the same event ID as the pixel.
The usual causes are that the purchase tag fires on the thank-you page only, the thank-you page is skipped by payment redirects or caching, blockers stop the browser tag, and consent holds it back. The fix is to send the paid order from the server, from the order itself.
A WooCommerce store fires purchase tags when the order confirmation page loads. If a customer pays through an external gateway and never returns, or closes the tab before the page, the tag never fires. The order exists, and the ad platform never hears of it.
Caching can break it. A cached thank-you page may skip the script that reads the order, or show another customer's data. Make sure the confirmation page is excluded from caching and that the tag reads the right order.
Payment plugins vary. Some redirect to a hosted page and return through a different path, which can drop parameters or fail to reach the thank-you page at all. Test each payment method with a real order.
Plugins can double count. Two plugins both sending purchase events, or a plugin plus a manual tag, create duplicates that no event ID fixes unless both copies share one. List every plugin that touches ad tracking and keep one.
Check consent. If a banner holds the tags until the visitor agrees, declined visitors are not counted, which is expected. Compare the size of the gap with your decline rate.
Fix with the server. WooCommerce knows when an order is paid. Sending the purchase from that event, with a unique order ID and a hashed email, means the ad platform gets it whether or not the browser cooperated. Give the pixel copy the same ID so it counts once.
Then compare daily. Plot store orders against each platform's purchases for two weeks. A stable ratio is fine. A drifting one signals something broke.
On WooCommerce, DataCops can take the paid order through its private webhook (the DataCops Shopify app is for Shopify), send it with the order ID and hashed identity, share the event ID with the pixel so each order counts once, and log each send as sent, held, skipped or failed with the reason.
Which payment methods and plugins does your store use for ad tracking?
DataCops in short
For this question: DataCops can take the paid order through its private webhook, send it with the order ID and hashed identity and the pixel's event ID, and log each send with the reason.
DataCops is a tool that counts every paid order once on every ad platform: the DataCops Shopify app reads the paid order from Shopify's own order webhook and a Web Pixel reports the shopping steps, with a bot verdict on every visit and a log of every send.
How DataCops does it
- The paid order from the server. It comes from Shopify's order webhook, so Shop Pay, Apple Pay and closed tabs still count.
- Counted once. The pixel and the server share an event ID, and the same order ID twice counts once.
- Every ad platform. Meta, Google Ads, TikTok and LinkedIn are live, with more connectable.
- Real people only. A bot verdict on every visit, with a switch per platform, off by default.
- A log you can read. Each send as sent, held, skipped or failed, with the reason.
Best for: Shopify and other online stores that want paid orders counted once on every ad platform, and CRM or phone sales counted too.
Ads Warmup: tell the ads who pays
Ads Warmup, DataCops' flagship feature, sends customers you already have to Meta, Google Ads and TikTok before a new campaign spends: upload a CSV (only email is required, up to 20,000 rows), see a 0 to 10 match score per person, pick the event, and send. Rows are dated when you send, and Google Ads credits only people who clicked a Google ad. Preview is free; sending needs a paid plan. Check your own consent basis for the list first. See Ads Warmup.
Ways to do this job
| Option | Best for |
|---|---|
| DataCops | Paid orders to every ad platform, with a bot verdict and a log |
| Shopify's Facebook and Instagram app | One Meta pixel and server events on Shopify, Meta only |
| A store tracking app (such as Elevar) | A managed data layer for a Shopify store |
| Hosted server GTM (such as Stape) | A team that already owns a GTM container |
When not to use DataCops
- Your only ad platform is Meta and your store is small. Shopify's own Facebook and Instagram app at Maximum data sharing may be enough.
- You need custom tag logic. DataCops sends to ad platforms and is not a Google Tag Manager container.
Sources and further reading
More on this: Shopify vs WooCommerce tracking, and the complete guide to offline conversion tracking.
Place a test order with each payment method and see which ones appear in the platform. The missing one is your cause.