Ecommerce tracking

Refunds are inflating your GA4 revenue (and your ROAS)

Here is a quiet one that flatters every report you own: unless you actively tell GA4 about refunds, it keeps the full original revenue on the books. Your dashboards, and the ROAS you judge campaigns on, are overstated by your entire refund rate.

GA4 does not know about refunds by default

A purchase event books the revenue. A refund in Shopify or Stripe happens after, usually days later, in a different system. Nothing tells GA4 unless you implement a refund event. So GA4 counts money you have handed back as revenue you earned.

Why it quietly matters a lot

How to track refunds

Send a GA4 refund event (full or partial, with the transaction_id and amount) when a refund is processed, ideally server-side so it is reliable and not dependent on the customer's browser. Then your revenue reflects what you actually kept, and your ad optimisation stops rewarding returns. It is a small implementation with an outsized effect on how honest your numbers are.

Want us to check your tracking in 10 seconds?

Pop in your domain and we will show you what is firing, what is not, and where data is leaking. Free, no signup.

Check my tracking free

Get a plain-English audit

We check your live GA4, Google Tag Manager and consent setup by hand and tell you exactly what is wrong. The audit comes off any build.

See how it works & pricing

Datahound are analytics and ad-tracking specialists. We fix broken GA4, Google Tag Manager and server-side tracking so every sale, form and call gets counted. Back to datahound.agency · All tracking guides · GA4 revenue vs Shopify payouts