A high ROAS does not automatically mean Google Ads is making an eCommerce money. It only means that, according to the data passed to Google Ads, conversion value is higher than ad spend.
The problem is that this value can be incomplete, inflated or commercially useless. If gross revenue goes into Google Ads while low margins, returns, cancelled orders, discounts, shipping, payment fees and loss-leader products live outside the report, ROAS can look good while real profit is far more fragile.
For an eCommerce owner this is one of the most dangerous traps: you look at the report, you see green numbers, you keep investing. But if the account is optimising on the wrong values, automation can learn to bring in sales that only look good inside the Ads panel.
What ROAS is and why it can deceive
ROAS, Return On Ad Spend, is the ratio between conversion value and advertising spend. If you spend 1,000 euros and Google Ads records 5,000 euros of conversion value, ROAS is 500%.
So far it looks simple. But that number does not tell you:
- what margin you have on those products;
- how many orders will be cancelled;
- how many customers will return their purchase;
- whether the value includes VAT, shipping or discounts;
- whether tracking counts the same purchase twice;
- whether you are selling at a loss to clear stock;
- whether the revenue comes from new customers or from customers who would have found you anyway.
A ROAS of 600% can be excellent on high-margin products. The same ROAS can be mediocre, or even dangerous, on low-margin products with a lot of returns.
Conversion value is not always real value
Google Ads works on the values it receives. The official documentation explains that to use strategies like Target ROAS you have to set conversion values, and that bidding is optimised on the basis of the values you declare. That is powerful, but it also creates an enormous responsibility: if the value you send is wrong, your reading of ROAS becomes wrong too.
In eCommerce accounts we often see errors like:
- static values: every purchase is worth the same amount, even though real orders differ;
- gross revenue: the value includes VAT, shipping, discounts or items that do not represent margin;
- duplicate conversions: GA4 and the Google Ads tag count the same order twice;
- no order ID: the system does not deduplicate properly;
- returns not subtracted: the order stays valid even when the customer sends the product back;
- cancellations not handled: cancelled, unpaid or unfulfilled orders stay inside the conversion value;
- values not updated: promotions, coupons and order changes never reach the advertising data.
The point is not simply having tracking switched on. The point is having tracking that represents the real business.
Margin: the figure ROAS often hides
Revenue is not profit. A 100 euro order can leave 55 euros of margin, 20 euros or almost nothing. If Google Ads only sees the gross value, it can treat those three orders as equivalent.
For example:
- Product A: 100 euros of sales, 55% margin;
- Product B: 100 euros of sales, 18% margin;
- Product C: 100 euros of sales, 8% margin and a lot of returns.
For Google Ads, if conversion value is 100 euros in all three cases, the orders look similar. For the business, they are completely different.
This is where feed, catalogue and advertising strategy have to talk to each other. With custom labels, product segments and commercial data, you can distinguish high-margin products, products to push, products to protect and products that should not absorb too much budget. We covered this too in the article on Google Merchant Center feed errors that burn budget.
Returns and cancelled orders: the black hole of ROAS
Many Google Ads reports look at the order at the moment it is recorded. But an eCommerce carries on living after checkout.
An order can be:
- cancelled by the customer;
- unpaid;
- unfulfilled because of incorrect stock;
- partially refunded;
- fully returned;
- replaced with a product of a different value.
If these events are not taken into account, Google Ads keeps seeing that order as a complete success. And if a category generates a lot of returns but a lot of gross value, the algorithm can keep pushing it.
Google Ads offers tools such as conversion adjustments, useful for restating or retracting conversions after the click. Not every eCommerce has to implement everything straight away, but a serious agency should at least know whether returns and cancellations are distorting the picture.
Performance Max learns from the value you give it
The problem becomes even more serious with Performance Max and value-based strategies.
PMax does not reason like a person who knows the warehouse, the margins, the returns and the commercial policy. It uses signals, conversions and conversion value to work out where to find results. If the value is inflated, duplicated or commercially poor, the campaign can optimise in the wrong direction.
We have seen the same mechanism with cart conversions: if an account uses "add to cart" as its main conversion, PMax can learn to generate carts instead of orders. The theme here is similar: if conversion value does not represent real profit, the campaign can learn to chase apparent revenue instead of healthy sales. We went deeper into this risk in the article on Performance Max, carts and real orders.
Brand ROAS and non-brand ROAS are not the same thing
Another way ROAS can look better than it is comes from aggregating brand and non-brand traffic.
If someone is already searching for your brand, the cost of converting them can be much lower. That does not mean brand campaigns are useless: they often protect demand, control the message and defend you against competitors. But you cannot read brand ROAS as if it were the return of the whole account.
A healthy report should separate at least:
- brand;
- non-brand;
- Shopping and Performance Max;
- remarketing;
- main categories;
- high and low margin products;
- new and returning customers, where the data is available.
If everything is thrown into a single average ROAS, the number can be easy to sell but not much use for making decisions.
Discounts, shipping and hidden costs
An eCommerce does not simply collect "order value". It has operational and commercial costs to cover.
In your management accounting you should consider at least:
- VAT, if you are looking at gross values;
- discounts and coupons;
- free shipping absorbed by the company;
- payment fees;
- packaging costs;
- the cost of returns;
- customer support generated by certain products;
- any marketplace or third-party system fees;
- cost of goods and real margin.
Not all of this data has to go into Google Ads. But it does have to enter your strategic reading. Otherwise you risk rewarding campaigns that generate revenue rather than profit.
The right report is not a pretty PDF: it is a reconciliation
When an agency sends a report, the point is not just to see clicks, cost, conversions and ROAS. The point is to understand whether the advertising numbers match the ERP.
The important questions are:
- do the orders counted by Google Ads actually exist in the ERP?
- does conversion value match the correct order value?
- are returns broken down by category, product or campaign?
- are cancellations at least read in the internal report?
- is ROAS compared with margin?
- are brand campaigns separated from acquisition campaigns?
- are the most heavily pushed products also the most profitable ones?
This is one of the checks we include in our eCommerce Google Ads audits: knowing what the Ads account says is not enough, you have to understand whether the data is consistent with orders, feed, catalogue and business.
What to ask your Google Ads agency
If you run an eCommerce and want to know whether your ROAS is reliable, do not stop at "how are we doing?". Ask how that number is built.
- Which conversions are included in the "Conversions" column?
- Is purchase the only primary conversion for sales campaigns?
- Is conversion value dynamic or static?
- Does the value include VAT, shipping, discounts or coupons?
- Does Google Ads receive the order ID to avoid duplicates?
- Are GA4 and the Google Ads tag counting the same order twice?
- Are returns and cancellations subtracted, or at least read separately?
- Is ROAS compared with real margin?
- Are brand campaigns separated from non-brand campaigns?
- Are products segmented by margin, stock, seasonality and returns?
- Is there a monthly comparison between Google Ads, GA4 and the ERP?
- Which decisions have been made on the basis of margin, not just revenue?
If the answer is vague, or if the report only shows an aggregate ROAS, that is a signal worth digging into.
How we work at BitHub
For us, Google Ads for eCommerce is not separate from the platform. Campaigns, feed, tracking, catalogue, margins and orders have to be connected. If the site sends dirty data, the advertising account cannot make clean decisions.
When we develop a custom eCommerce, we can design the data flow better: order value, order ID, categories, products, Merchant Center feed, availability, facets, custom labels and the signals that separate what sells from what is worth selling.
The digital strategy side exists precisely for this: to turn advertising data into commercial decisions. Not "let's increase the budget because ROAS is high", but let's read what sits behind that ROAS.
A good Google Ads account should not just spend better. It should help you understand which products, categories and customers build real margin.
Useful sources
To go deeper into the technical side, you can read the Google Ads documentation on Target ROAS bidding, on transaction-specific conversion values and on conversion adjustments for restating or removing conversions after they have been recorded.
FAQ on misleading Google Ads ROAS
Does a high ROAS mean Google Ads is working?
Not always. A high ROAS shows that the recorded conversion value is higher than ad spend, but on its own it does not tell you whether the orders are profitable, whether they carry margin, whether they will be returned or whether the value was tracked correctly.
What is the difference between ROAS and margin?
ROAS compares conversion value with advertising cost. Margin shows what is left to the business after the cost of goods and other commercial costs. Two orders with the same value can have very different margins.
Should returns and cancelled orders be removed from conversion value?
Where possible yes, or at least they should be read in a separate report. If returns and cancellations stay inside conversion value as good sales, ROAS can look better than the real result.
Can Performance Max optimise on wrong data?
Yes. Performance Max uses conversions and conversion value to learn where to find results. If the value is duplicated, inflated or inconsistent with margin, the campaign can optimise towards apparent revenue instead of real profit.
How do I know whether conversion value is correct?
You have to compare Google Ads with the ERP, GA4 and real orders. Check order IDs, duplication, dynamic values, VAT, shipping, discounts, returns, cancellations and the difference between gross value and the value that is actually useful to the business.
What report should I ask my agency for?
Ask for a report that separates primary conversions, real orders, value, margin, returns, cancellations, brand, non-brand, categories and main products. An aggregate ROAS without these details is too weak a basis for budget and strategy decisions.