GA4 is not tracking your purchases, and that is the normal state
For the week of 22 to 28 August 2026, GA4 reported zero purchases for our own online shop. The shop’s own order list shows 20 orders from Google search in those same seven days. They were worth US$288.75.
Nothing broke that week. No plugin had been updated and no tag removed. GA4 not tracking purchases is what a browser tag does on a small shop in 2026. So we now read GA4 as the traffic report, and the order list as the sales report.
If you are about to buy ads, pay for a redesign, or fire an agency over what GA4 says about sales, settle this first. The tool is not bad. It was never built to be the money number.
Four reasons for GA4 not tracking purchases
Four things sit between a paying customer and a sale that shows up in GA4. Any one of them drops the sale.
They left your site to pay. In WooCommerce, a redirect gateway sends the buyer off to the payment provider and hands them back after. WooCommerce’s payment gateway docs are clear about what happens next. The order is finished on the server, by payment_complete(). That call cuts stock and sets the order status. The browser plays no part in it. So a buyer who shuts the tab at their bank’s verification screen has still bought the thing. What they have not done is load your thank-you page. And that page load is the only thing that fires the purchase tag.
Safari drops the cookie first. Since a change announced in March 2020, WebKit wipes storage written by script after seven days. That built on the cookie cap it brought in back in February 2019. GA4 writes its cookie with script. So on Safari, that cookie is on a seven-day clock. WebKit’s tracking prevention policy lists “analytics in the scope of a single website” as a practice it does not mean to disrupt, but expects to damage anyway. It also says this: “when faced with a tradeoff, we will typically prioritize user benefits over preserving current website practices.” That is a published position, not a bug that Apple plans to fix.
The cookie banner did its job. If a visitor turns down analytics storage, GA4 gets nothing.
Nothing fills the gap at your size. Google’s answer to refused consent is to estimate the missing sales, which it calls behavioural modelling. The thresholds for it are the part nobody reads out. Google’s own page sets them out. You need 1,000 events a day tagged analytics_storage='denied', for seven days. You also need 1,000 users a day sending granted events, on 7 of the last 28 days. Even then, Google says you may not qualify. Our shop had 74 visits from search in the whole week. That is about a hundred times short of the first bar. So the modelling that big shops lean on never switches on for a shop this size. The gap stays a gap.
The error does not run in one direction
GA4 not tracking purchases is only half of it. The tempting fix is a rule of thumb: assume GA4 runs a third low, add it back, move on. Our own numbers say that fails too.
Take our scrapbooking web app. The same weekly review counted 10 signups in GA4 for 22 to 28 August. But one person can fire that event twice, so the count is high, not low. Then take our 3D printing tool. GA4 put US$42.94 across two purchases in the same week. We treat that as a rough guide until we check it against what Stripe and PayPal really paid us.
One site under. One over. One unchecked. Same seven days, same tools. So there is no factor to apply. There is only one question. Which system are you willing to be paid by?
Pick the money number before you pick the fix
The money number is the one the money touches. That means orders in WooCommerce, Shopify or Etsy, checked against what Stripe or PayPal paid out. It is what your accountant sees. It is what your bank agrees with. Judge a month by it.
GA4 is the shape number. It tells you which page they landed on, where they gave up, and whether phones behave differently from desktops. It is good at that, so keep it. Just stop asking it how much you sold.
Ad platforms are neither. Meta and Google each count sales they had a hand in, on their own time windows. So their totals will beat your shop’s, and each other’s. Compare them to last week on the same platform, never to your invoices.
Split those three apart and most of the arguing about GA4 not tracking purchases stops. Everyone knows which report answers which question.
What actually fixes GA4 not tracking purchases
Two changes do most of the work, and both move the count out of the browser.
First, count the sale where it is confirmed. In WooCommerce that means the server event that fires on payment, not the thank-you page. By then the order is already on the books, open browser or not.
Second, if you want the sale sitting in GA4 next to the traffic, send it server to server. Google’s Measurement Protocol is built for that, and was last updated on 8 June 2026. It records events that happen outside a normal browser visit. Read the limits first. Google says that if you use it on its own, “only partial reporting may be available”. Some event names are also reserved for the standard tags. It backs up browser tagging. It does not replace it.
Set consent up properly too, rather than switching the banner off. Google’s consent mode page was last updated on 30 July 2026, and covers the four signals a tag reads. Consent that is declared and wired up right costs you less data than a banner that blocks everything.
What this looks like as a job
GA4 not tracking purchases is a plumbing job, and plumbing is what gets cut when a project is priced on screens. We wrote about that in what an AI automation agency actually builds. The part that has to survive a reload, a retry and a redirect is never the part anyone demos.
On our own shops it takes about a day. Find where the order is confirmed on the server. Fire the event there. Send it to GA4 by Measurement Protocol. Then check a full week against what the payment processors paid out. That last step is the one you cannot skip. A fixed tag that nobody has checked against a bank statement is just a new number to argue about. You can see the products we run this on in what we’ve built. We live with those reports, which is why the weekly review exists at all.
Does your dashboard disagree with your bank? If you would rather not spend a week working out which one is lying, our free website check covers it. We look at your site, your ads and your search rankings. We count what your shop actually recorded. You get a written report within one working day. The check costs nothing. You only pay if you ask us to fix something.
One thing to do first, and it also costs nothing. Open your shop’s order list for last month. Open GA4 for the same dates. Write both totals on the same piece of paper. If they match, your tracking is in better shape than most. If they do not, then GA4 not tracking purchases has been shaping decisions you already made this year.