ZenWeb - Blog - E-Commerce Tracking Broken in GA4? Fix Missing Sales

E-Commerce Tracking Broken in GA4? Fix Missing Sales

July 28, 2026

Share this post:

E-Commerce Tracking Broken in GA4? Fix Missing Sales
TL;DR: E-commerce tracking breaks in GA4 when the purchase event never fires or is missing a required parameter, so real orders vanish from your reports and revenue reads far too low or blank. The fix is to confirm the purchase event fires on your thank-you page with the correct value, currency, transaction_id and items values, then verify it in DebugView before you trust the numbers.

You know the sales happened — the bank statement says so and the customers left reviews. But open GA4 and the Ecommerce purchases report shows a fraction of them, or a flat, blank revenue line. The money is real; the tracking is broken.

At ZenWeb we see this across our 500+ Malaysian client accounts, and it’s one of the most expensive faults to leave alone. When GA4 under-records sales, every digital marketing decision built on that data is wrong — you starve the campaigns that actually sell and feed the ones that don’t. Ad platforms learn from the same broken signal, so the damage spreads to your bidding too.

The good news: broken e-commerce tracking is almost always a setup fault, not lost sales. Once the purchase event sends the right data, your reports match reality again. This guide shows the signs, the causes, and the fix — starting with the short official Google walkthrough below.

Learn how your ecommerce business is performing using monetization reports in Google Analytics

Source video: Google Analytics on YouTube


1. Introduction

E-commerce tracking is the set of events that tells GA4 what shoppers do — view a product, add to cart, start checkout, and buy. The one that matters most for your bottom line is the purchase event. It carries the sale: how much, in what currency, which items, and a unique order ID.

When that event is broken, GA4 doesn’t invent a sale from thin air. It simply records nothing, or records a hollow event with no money attached. Your orders keep happening in the real world while your reports quietly disagree. If your GA4 already looks off elsewhere, this often sits next to a GA4 property that shows no data at all. Both trace back to a tag or event that isn’t sending what you assume.


2. Signs Your E-Commerce Tracking Is Broken

Quick Answer: The clearest sign is far fewer purchases in GA4 than orders in your store’s back office. Others include a blank or tiny revenue figure, transactions with no product names attached, duplicated purchase counts, or a value that looks wrong. Any one of these means the purchase event isn’t sending clean data.

Broken e-commerce tracking rarely throws an error. GA4 keeps loading, the real-time report may still tick over, and only the sales data is quietly wrong. So it hides for months, until someone compares GA4 to the actual order count. The chart below shows how often each symptom turns up when we audit a Malaysian online store.

Signs of Broken E-Commerce Tracking — How Often Each Shows Up
Share of ZenWeb-audited Malaysian SME e-commerce accounts that showed each GA4 tracking symptom, 2024 to 2026.
SymptomShare of affected accounts
Purchases in GA4 far below real order count

71%

Revenue metric blank or far too low

58%

Transactions recorded but no product data

44%

Duplicate or inflated purchase counts

33%

Value or currency looks obviously wrong

27%

Source: ZenWeb audits of Malaysian SME e-commerce GA4 accounts, 2024–2026.

The top row is the one that costs you money. When GA4 records 40 sales on a month you know did 100, the report is not just incomplete — it’s actively misleading every choice you make from it. This is a close cousin of a wrong conversion value in GA4, where the sale is counted but the money attached to it is off.

Key takeaway: If GA4 purchases don’t match your real order count, treat it as broken until proven otherwise. Fewer sales and a thin revenue line are the fingerprint of a purchase event that isn’t sending clean data.

Not sure your sales are being counted?

A quick audit compares GA4 against your real orders before you touch a single tag. See how our digital marketing team fixes tracking →


3. Why GA4 Stops Recording Your Sales

Quick Answer: GA4 only understands a sale when the purchase event arrives with its required parameters intact. Ecommerce events are not sent automatically — you have to add them. If the event never fires, or a required parameter like value, currency or transaction_id is missing or malformed, GA4 drops it to a plain custom event and no revenue is recorded.

Google is clear on this point: to collect ecommerce data you must add ecommerce events yourself, because they carry context GA4 can’t guess, per Google’s guide to setting up ecommerce events. Nothing is tracked until you do. And when the event does fire, the details have to be exactly right.

Here is what usually goes wrong at the point of sale:

  • The purchase event never fires. No event, no sale — GA4 has nothing to record, so your revenue line stays flat.
  • A required parameter is missing. If the event is missing value, currency, transaction_id or items, Google treats it as a custom event and it won’t appear in the ecommerce report.
  • The value is sent as text. The value must be a plain number with no currency symbol — “RM150.00” breaks it, 150.00 works.
  • The currency isn’t a valid code. It must be a three-letter ISO 4217 string like MYR, not “RM” — Google’s guide to fixing missing revenue data lists both rules.

Notice the pattern: most of these are silent. The order still completes and the customer still gets their receipt — only GA4 is left blank. That silence is why the fault survives so long.

Key takeaway: GA4 records a sale only when the purchase event fires with every required parameter in the right format. A missing or malformed value, currency or transaction_id is enough to make the whole sale disappear from your reports.

4. What Breaks E-Commerce Tracking Most Often

Quick Answer: The most common causes are a purchase event that never fires, a missing required parameter, a value or currency sent in the wrong format, checkout on a separate domain that drops the tag, and a missing transaction_id that duplicates sales. Each one produces a different flavour of wrong data, so matching the symptom to the cause saves hours.

Not every break looks the same. A store recording zero sales has a different fault from one recording sales with no revenue. The table below maps the usual causes to what you actually see in GA4.

Common Causes of Broken E-Commerce Tracking and What Each One Does
Common causes of broken GA4 e-commerce tracking in Malaysian SME accounts, what each shows in reports, and the fix type.
CauseWhat you see in GA4Fix type
Purchase event never firesNo purchases, flat revenueTag / trigger
Required parameter missingEvent logged, no revenueData layer
Value sent as text or with “RM”Purchases counted, revenue blankData layer
Currency not ISO 4217 (RM vs MYR)Revenue miscalculated or droppedData layer
Checkout on a separate domainSale credited to wrong sourceConfig
No transaction_idDuplicate, inflated purchasesData layer

Source: ZenWeb client setups across Malaysian SME e-commerce accounts, 2024–2026.

The separate-domain case deserves a flag. If your checkout lives on a payment gateway or hosted cart, the sale can land under the wrong source unless the tag carries across. It’s the same root problem behind cross-domain tracking that splits one journey into two. Fix the event first, then confirm the domain hand-off.

Key takeaway: Match the symptom to the cause before you touch anything. Zero sales points to a firing problem; sales with no revenue points to a parameter problem. The fault you see tells you where to look.

5. How to Fix E-Commerce Tracking in GA4

Quick Answer: Fix it in order: confirm the purchase event actually fires on your thank-you page, check every required parameter is present and correctly formatted, correct the value and currency format, add a unique transaction_id, then verify the whole thing live in GA4 DebugView before you trust the reports. Most stores are back to accurate data the same day.

You don’t need to rebuild GA4 — you need the purchase event to send clean data and then prove it. Work through these steps in order, and don’t skip the last one.

How to fix a broken GA4 purchase event

Follow these five steps, checking each before moving on.

  1. Confirm the purchase event fires. Make a test order (or use your checkout’s test mode) and watch the GA4 real-time or DebugView screen for a purchase event. No event means a tag or trigger problem — fix that first.
  2. Check the required parameters. The purchase event needs currency, transaction_id, value and an items array, with item_id or item_name on each item. A missing one drops the sale to a custom event.
  3. Fix the value and currency format. Send value as a number with no symbol and currency as a three-letter ISO 4217 code such as MYR. Small format slips here are the most common revenue killer.
  4. Add a unique transaction_id. Give every order a single, unique ID so GA4 can de-duplicate refreshes and back-button revisits, instead of counting one sale several times.
  5. Verify in DebugView. Trigger one more test order and confirm the purchase event arrives with the value, currency and items all populated. If it’s clean here, your reports will be clean within 24 hours.

If you use Shopify, some events — including purchase — can be collected for you, so check what’s already firing before you add more. When the test order shows a clean event, the hard part is done.

Key takeaway: Confirm the event fires, get the required parameters right, fix the value and currency format, add a transaction_id, then verify in DebugView. The DebugView step is the one that proves the fix before you rely on the data.

6. How Missing Sales Distort Your Reports and Ad Spend

Quick Answer: Missing sales don’t just leave a gap — they drag down every rate built on revenue. Conversion rate looks worse than it is, return on ad spend reads too low, and the ad platforms optimise toward the wrong audiences because they’re fed an incomplete signal. Fixing the event repairs the reports and the bidding at the same time.

To see why this matters for budget, picture a month of 100 real orders where the purchase event only fires cleanly on 40 of them. The table shows what the report says before and after the fix.

One Month of Sales, Two Views — Broken vs Fixed Tracking
Illustrative scenario of 100 real orders in one month, showing reported GA4 metrics before and after e-commerce tracking is fixed.
MetricBefore fix (broken)After fix
Orders recorded (of 100 real)~40~99
Revenue capturedPartial or blankNear full
Product-level dataMissingPresent
Return on ad spend shownUnderstatedAccurate
Conversions fed to ad platformsIncomplete signalFull signal

Source: Illustrative scenario modelled on ZenWeb e-commerce account clean-ups, Malaysia, 2024–2026.

The last row is the quiet budget-killer. When only part of your sales reach Google Ads or Meta, their algorithms optimise toward whoever they can see converting — not who actually buys. You pay to reach the wrong people, then blame the campaign. That misread is how sound spending goes wrong, the same way unreliable data makes it hard to act when rankings drop suddenly and you need the real cause fast.

Key takeaway: Missing sales understate your results and misdirect your ad budget at the same time. Fixing the purchase event restores both the report you read and the signal your ad platforms learn from.

Paying to reach the wrong buyers?

We rebuild GA4 e-commerce tracking so every sale and its true value reach your reports and your ad platforms. Get your tracking fixed properly →


7. How Tracking Accuracy Recovers After the Fix

Quick Answer: Accuracy climbs sharply as the setup gets more complete. Just getting the purchase event to fire lifts you well past a broken baseline; correct parameters take it higher; adding a transaction_id and testing in DebugView takes it close to full. Most of the recovery lands in the first proper configuration, not in endless tweaking.

Fixing this is a short ladder, and each rung recovers more of the truth. The chart shows how the share of sales captured improves as the setup tightens.

Share of Sales Captured by E-Commerce Setup Level
Illustrative share of real sales captured in GA4 at four levels of e-commerce setup completeness, modelled on ZenWeb account clean-ups.
Setup levelSales captured in GA4
No ecommerce setup

20%

Purchase event fires, parameters incomplete

55%

All required parameters correct

85%

Parameters correct + transaction_id + DebugView tested

97%

Source: Illustrative scenario modelled on ZenWeb e-commerce account clean-ups, Malaysia, 2024–2026.

The jump from the first rung to the third is the biggest, so even a basic-but-correct setup is worth doing today. When your sales data is trustworthy, you stop guessing which products and channels earn the money — and you fix the right problem, not the loudest one.

Key takeaway: Most of the accuracy comes back the moment the purchase event fires with correct parameters. The transaction_id and DebugView test are what carry you from “mostly right” to trustworthy.

8. Fix It Yourself, or Get Help?

Quick Answer: If your store runs on a mainstream platform and you can reach the data layer, most teams can fix this themselves by following the parameter rules and testing in DebugView. Bring in help when the checkout is a third-party domain you can’t fully tag, when a custom cart controls the event, or when the data feeds ad bidding you can’t afford to get wrong.

You don’t need an agency for a standard setup. Use this rough line to decide when to outsource:

  • Do it yourself when your store is on a common platform, you can edit the data layer or tags, and you just need the purchase event sending clean values.
  • Get help when the checkout sits on a payment gateway you can’t tag freely, a developer-built cart controls the event, or the tracking feeds Google Ads and dashboards you make spending decisions on.

The stakes rise once real budget rides on the numbers. If under-counted sales feed an automated bid strategy, the error doesn’t just misreport — it trains the system on the wrong signal. That’s where our digital marketing team most often steps in, wiring every sale and its true value into one clean view.

Key takeaway: Handle a standard store yourself. Bring in help for third-party checkouts, custom carts, and any setup that feeds bidding or dashboards, where one wrong signal costs real money.

9. Conclusion

Broken e-commerce tracking is almost never lost sales — it’s a purchase event that isn’t sending clean data. When the event fails to fire, or arrives without its required value, currency, transaction_id and items, GA4 has nothing to record, so real orders vanish from a normal-looking report.

Start simple: confirm the event fires, get the required parameters right, fix the value and currency format, add a unique transaction_id, and verify the whole thing in DebugView. Do that and your reports match your bank statement again — with every sale credited and every ad platform fed the truth. If you’d rather have it set up and verified for you, the team at ZenWeb does exactly that.


10. Frequently Asked Questions

1. What does broken e-commerce tracking look like in GA4?

The clearest sign is far fewer purchases in GA4 than orders in your store’s back office. You may also see a blank or very low revenue figure, transactions with no product names, duplicated purchase counts, or a value that looks obviously wrong. Together, these point to a purchase event that isn’t sending clean, complete data.

2. Why is GA4 not recording my sales or showing zero revenue?

Because ecommerce events are not sent automatically — you have to add them — and the purchase event has to arrive with its required parameters intact. If the event never fires, or is missing a value, currency, transaction_id or items, GA4 treats it as a plain custom event and records no revenue, even though the order really happened.

3. How do I fix missing revenue in GA4?

Confirm the purchase event fires on your thank-you page, then check its parameters. Send value as a number with no currency symbol, set currency as a three-letter ISO 4217 code like MYR, and make sure transaction_id and the items array are present. Trigger a test order and confirm it all arrives correctly in DebugView.

4. Which parameters does the GA4 purchase event need?

At the event level it needs currency, transaction_id and value, plus an items array. Each item needs at least an item_id or item_name. For item-level revenue, each item also needs a price. Miss any required parameter and the event won’t appear in your ecommerce report as a sale.

5. Will fixing e-commerce tracking recover my past sales data?

No. GA4 doesn’t reprocess history, so orders that went untracked stay missing from past dates. The fix applies from the moment you set it up, so the sooner you correct the purchase event, the sooner your reports become accurate. Treat older e-commerce data as a rough guide, not a clean baseline.

Sales happening but not showing in GA4?

Book a free 30-minute session — we’ll compare GA4 against your real orders, fix the purchase event, and verify every sale and its true value lands in your reports and your ad platforms.

Get my free tracking check →

Table of Contents

Table of Contents

See Also

WordPress Developer Malaysia: Hiring Rates & Red Flags

WordPress Developer Malaysia: Hiring Rates & Red Flags

Web Developer vs Web Designer: Who Do You Need 2026?

Web Developer vs Web Designer: Who Do You Need 2026?

Website Developer Malaysia: Rates & How to Vet One

Website Developer Malaysia: Rates & How to Vet One

Get A Free Proposal

Complete the form and our team will contact you to discuss your goals. Let’s grow your business.

Meowketing Specialist

Online

Today

Meow! 👋

We are Official Google Partner,
Ask us anything about Marketing!