How to Track Revenue in GA4 (Without Breaking Your Data)

April 17, 2025
Revenue tracking in GA4 isn’t as β€œplug and play” as it sounds. Yes, GA4 has a built-in monetisation report. Yes, it shows you revenue, quantity, and items sold. But here’s the kicker: most setups are inaccurate, and most marketers don’t know it until it’s already impacted decisions. Whether you're running ads, analysing ROAS, or trying to build remarketing audiencesβ€”your revenue data needs to be trustworthy. Let’s fix the most common problems.

⚠️ Common Mistakes That Break Revenue Tracking

Here are the issues I see again and again:

  • Missing the purchase event altogetherβ€”especially for non-standard ecommerce platforms or headless setups
  • Triggering the purchase tag multiple timesβ€”for example, when a user reloads the order confirmation page
  • Duplicate transaction_id valuesβ€”leading to GA4 deduplicating real transactions as duplicates
  • Sending revenue values on begin_checkout or add_to_cartβ€”which inflates reports
  • Failing to filter out test/staging dataβ€”adding false revenue
  • Missing or inconsistent currency fieldsβ€”especially dangerous for multi-region stores
  • Coupon codes, tax and shipping not being tracked correctlyβ€”leading to mismatched totals

If your GA4 revenue doesn’t match your Stripe/Shopify numbers, it’s probably not your backend that’s wrong. It’s your tracking.

πŸ’Έ The Subscription Trap

One major limitation with GA4 is that it tracks revenue at the point of event, not as recurring payments.

So if someone buys a subscription for Β£10/month, your GA4 report will only show the initial Β£10 at checkoutβ€”not future rebills. That’s fine for one-time products, but misleading for SaaS or memberships.

What you can do:

  • Track each recurring charge via backend server-side calls (requires dev)
  • Use BigQuery to stitch together historical user payments over time
  • Segment first-time vs. returning revenue in GA4 using custom dimensions

🎁 What About Gift Cards?

Gift cards are tricky.

If a user buys a gift card, GA4 will count that as revenue (on the purchase event).
But when someone spends a gift card, GA4 may also include that in the purchase eventβ€”potentially double-counting the value.

Best practice is:

  • Track gift card purchases as revenue
  • Subtract gift card usage from future purchase value parameters
  • Or set a custom parameter to distinguish β€œpaid with gift card” revenue in BigQuery

🧾 Refunds, Tax, and Shipping

  • Refunds: GA4 supports a refund event, but it's often not implemented. Without it, your revenue numbers will always skew high.
  • Shipping & tax: You can include these as separate item parameters or roll them into the total value. But whichever route you choose, stay consistent.
    In BigQuery, value is the total order value, but not broken down unless you send custom item-level parameters.

πŸ’‘ Pro Tip: BigQuery Can Be Misleading

Even if you’re piping your GA4 data into BigQuery, be carefulβ€”GA4 converts revenue to USD based on the exchange rate at the time of ingestion.

So if you’re reporting across currencies, or doing YoY analysis, you might see inconsistencies.

Solution:

  • Always include the original currency in your exports
  • Use currency and value to back-calculate in your preferred reporting tool
  • For high-accuracy financials, match BigQuery to backend valuesβ€”not GA4 frontend numbers

βœ… How to QA Your Revenue Tracking

Don’t assume it works. Check:

  • Does the purchase event fire on the thank-you page (and only once)?
  • Is the transaction_id unique and consistent with your backend?
  • Are the value, currency, and items all present?
  • Use GA4 debug view or Tag Assistant to simulate a purchase
  • Cross-check totals weekly vs backend/CRM

🧰 Bonus: Tools & Checks

  • GA4 Debug View
  • Real-time monetisation report
  • BigQuery event_name = "purchase" analysis
  • Custom alerts when revenue drops below thresholds
  • My BigQuery checks (https://www.netimpression.co.uk/tools/bigquery-data-quality-checks) can catch the basics too

Final Thoughts

GA4 doesn’t lieβ€”it just reflects what you send it.
If you send broken or bloated data, it’ll faithfully show you the wrong answers.

Revenue tracking isn't just about numbersβ€”it's about decisions. If your reports are off, you're targeting the wrong channels, pausing winning campaigns, and misunderstanding what actually converts.

Get it right, and everything downstream improves.

‍

Talk To Us
Share Insights

Web Design

Data Optimization

User Experience

Conversion Strategies

Chris Walton

Contact us

As a specialist analytics and CRO agency, we work closely with clients to make data a driving force behind smarter decisions and stronger performance.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.