refund is the Google Analytics 4 event that records money returned to a customer for an order, either in full or for some of the items. It links back to the original sale through the order number, so GA4 can show revenue after returns rather than only the amount taken at the till.
How the refund event works
Refunds rarely happen on the website. A customer sends a parcel back, your team processes it in the shop platform or warehouse system, and the money goes back to their card days later. That is why the refund event is usually sent from your systems rather than from the shopper’s browser, through GA4’s Measurement Protocol, a server-side tag or an integration built into the shop platform.
The event carries:
- transaction_id The order number of the original purchase. This is required.
- value and currency: the amount refunded, in GBP.
- items Only for a partial refund, listing the products and quantities returned. For a full refund, the transaction_id alone tells GA4 the whole order was returned.
At the time of writing (October 2026), GA4 shows refunds through metrics such as refund amount, and its purchase revenue figure is reported net of refunds, with a separate gross figure for revenue before returns. Exact metric names change from time to time, so check the definitions in your own property.
Why it matters
For some sectors, the gap between what was sold and what was kept is large. UK shoppers have a legal right to cancel most online orders within 14 days of receiving them under the Consumer Contracts Regulations, and fashion and footwear shops in particular see a high share of orders come back. A campaign that sells £10,000 of dresses with a high return rate may be less profitable than one that sells £7,000 of homeware that stays sold.
Without refund data, GA4 and your ad platforms credit both campaigns with gross sales. With it, you can compare channels on revenue kept, spot products with a high returns rate, and find campaigns that attract serial returners, such as heavy discount promotions.
One point that catches people out: refunds sent to GA4 do not automatically reduce the conversion values that Google Ads uses for bidding. Google Ads has its own conversion adjustments for retractions and restatements, which need setting up separately if you want bidding to learn from returns.
Common mistakes
- Never sending refunds at all So revenue in GA4 is permanently overstated compared with your accounts.
- Using a different order reference in the refund from the one sent with the purchase event, so GA4 cannot match them.
- Sending a full refund with an items list that only covers some products, or a partial refund with no items, which gives the wrong product-level picture.
- Refunding exchanges. A size swap is not lost revenue; sending it as a refund understates sales.
- Testing in the live property and leaving fake refunds in the data.
How to act on it
Start by checking whether refunds reach GA4 today. Compare the refund amount for last month with the refunds in your shop platform or payment provider. If GA4 shows nothing, see whether your platform’s GA4 integration offers refund sending before building anything custom.
Decide your rules in writing: which events count as a refund, how exchanges and store credit are treated, and whether value includes VAT. Use the same VAT basis you chose for purchases, or the net figures will not line up.
Then report on kept revenue alongside gross revenue, by channel and campaign. If returns vary a lot between channels, that belongs in how you set return on ad spend targets. Building returns into how paid channels are judged is part of my performance marketing service.
