WooCommerce orders missing in GA4 after payment
Last updated Nov 12, 2026
When WooCommerce has a paid order and GA4 or Meta has no purchase for it, the payment most often ended on another site — PayPal, Stripe Checkout, a bank's card page — and the buyer never came back to the order received page, where the purchase is sent. The page may also not load the tag, the buyer may not have consented, or a reload may send it twice.
Why the purchase is missing
- The buyer never comes back from the payment provider. With PayPal, Stripe Checkout or a bank's card page, the payment ends on the provider's site. The provider usually tells your store on its own, so WooCommerce marks the order paid even if the buyer closes the tab. GA4's and Meta's purchase, though, is sent from the order received page, and a buyer who never returns to it never sends it.
- The order received page does not load the tag. A thank-you page of your own, from a funnel builder or a checkout plugin, can skip WooCommerce's. Caching, or a plugin that delays scripts, can also keep the tag from running.
- Consent. The purchase is only sent if the buyer accepted analytics or advertising cookies. A buyer who left for the payment without answering the banner comes back to a tag still waiting for that answer (GA4 and consent).
- A reload sends it twice. The other way round: the order received page opened again, by a reload or from the order email, can send the purchase a second time (duplicate purchases).
How to check it by hand
- Pick a full day GA4 has finished processing. In WooCommerce › Orders, note that day's paid order numbers and their payment method.
- In a GA4 exploration, list the same day's purchases by the Transaction ID dimension. The numbers missing there are the orders GA4 never got. If most were paid through one provider, start with the return from it.
- In that provider's settings, check that it sends the buyer back to your store as soon as they pay, and that the return address is WooCommerce's order received page.
- Put the provider in test mode and place two orders with Tag Assistant open: one coming back to your store, one closing the tab on the provider's page. The second ends up paid in WooCommerce and sends no purchase.
- On the order received page, accept cookies and check that the purchase is sent once. Reload the page: it should not be sent again.
What TraceLog sees and what it does not
TraceLog reads nothing from GA4 or Meta, and sends them none of the purchases they missed. It keeps its own record of the purchase path, beside them. On WooCommerce, the plugin sends the purchase from the order received page and, from plugin 0.6.0, the store's server confirms each order as it becomes paid, whatever the payment provider (install on WooCommerce).
So the order of a buyer who never came back still counts, even though the browser never sent it, and the Path page says how many only the server saw. Each order counts once by its number, however often the order received page is opened (why the two counts differ).
From the browser, TraceLog sends nothing until the buyer consents, and nothing if they refuse; the server's confirmation still counts the order. When a step that arrived steadily stops arriving, TraceLog alerts you, on every plan. Why it stopped, and what to change in GA4 or at the provider, stays your decision.
Questions
Does TraceLog put the missing purchases back into GA4?
No. It sends nothing to GA4, Meta or Google Ads, and changes none of their tags. A purchase GA4 missed stays missing there; in TraceLog's record, the order counts.
Why does GA4 credit purchases to PayPal or my payment provider?
Because the buyer comes back from the provider's site, and GA4 takes it as the source of a new visit. GA4 lets you list unwanted referrals in your web data stream's tag settings (Google's help).
Which plugin version do I need?
0.6.0 or later, for the server to confirm the order whatever the payment provider; before it, only providers that complete the payment online did. With automatic updates on, each version reaches your store by itself.
Try it on your store
Install the plugin: the purchase path comes already set up, and TraceLog checks it while you install.