Refunds Are Quietly Inflating Your ROAS
If a chunk of your orders get refunded, your ad platforms never find out. Here is how to send refunds back so your reported ROAS matches your real margin.

Your ad platforms find out the moment someone buys. They never find out when that person sends it back.
For a store with a 5 percent return rate this is a rounding error. For fashion, footwear, or furniture, where returns can run above 30 percent, it means your reported ROAS is describing a business you do not actually have.
What is going wrong
A customer buys for 200. The purchase event fires and Google and Meta both record 200 of revenue against the campaign.
Two weeks later they return it. You refund the 200. Your bank balance knows. Shopify knows. Neither ad platform hears a thing.
Multiply that across a few hundred orders and your campaigns look considerably more profitable than they are. Worse, Smart Bidding is learning from that inflated data, so it actively seeks out more of the customers who return things.
The part that really costs money
This is not only a reporting problem, and that is the bit people miss.
Bidding algorithms optimise toward the value you report. If a particular audience, product, or region has a very high return rate but you never report the returns, the algorithm sees strong performance and spends more there.
You end up paying to acquire your least profitable customers, efficiently.
How to fix it
Google Ads: conversion adjustments
Google Ads supports retroactive corrections to conversions you already reported. There are three kinds.
Retraction cancels the conversion entirely. Use it for a full refund or a cancelled order.
Restatement changes the value. Use it for partial refunds or a revised order total.
Enhancement adds customer data without changing the value.
Adjustments are matched by order ID, so your original conversion needs to have carried one. If it did not, this is the moment you find out.
Meta: send the refund as a negative value
Meta handles this through the Conversions API, reporting the refund so the original purchase value is corrected.
GA4: the refund event
GA4 has a built in refund event. Send it with the same transaction ID as the original purchase and the revenue is adjusted. Most stores never implement it, which is why GA4 revenue drifts away from actual revenue over time.
Where it usually goes wrong
No order ID on the original conversion. Without it there is nothing to match the adjustment against, and the whole approach fails at the first step.
Order ID mismatch. The refund webhook sends a different format of ID than the purchase did. The adjustment is accepted, reports success, and changes nothing.
Only refunds are handled, not cancellations. Orders cancelled before shipping never generate a refund event in some setups, so they stay in the data forever.
Partial refunds sent as full ones, which swings the correction too far the other way.
A warning about testing here. Google’s adjustment endpoint can return a success response while quietly rejecting the adjustment in the response body. Do not trust a green tick. Check what actually changed in the reporting a day later.
Getting the timing right
Do not send the adjustment the instant a return is requested. Send it when the refund is actually processed, otherwise a cancelled return request corrects a conversion that was fine all along.
Also accept that there is a lag. A return that happens 40 days after purchase may fall outside the adjustment window, so some leakage is unavoidable. The goal is to catch most of it, not all of it.
What changes afterwards
Reported ROAS will fall. That is correct and it is the point, but warn whoever reads the reports before it happens.
Then bidding starts learning from real profitability rather than gross sales. For high return categories this usually reallocates budget noticeably, and toward better customers.
Pair it with proper Shopify purchase tracking so the original conversions carry the order IDs the adjustments need.
Need this fixed properly?
If you have a meaningful return rate and none of it reaches your ad platforms, your reported ROAS is describing the wrong business. I set up and repair tracking for ecommerce stores and lead generation businesses, so the numbers in your ad accounts match the money in your bank account.
Have a look at what I do, or book a call and we can go through your setup together.






















