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
- If you refund 8% of orders, your reported revenue and ROAS are overstated by roughly 8%, every month.
- Ad platforms optimise toward products and audiences that look profitable but include high-return items.
- Your best-seller report may be flattered by a product that gets returned constantly.
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 freeGet 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 & pricingDatahound 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