Tracking
Contribution margin as conversion value: the switch in five steps
Smart Bidding optimises on what you pass it. Pass revenue and you get revenue, even when it earns nothing. How to give Google the right number without choking the account.
Published on · 9 min read
- 1Google values an order at whatever you pass it. With order value as the base, a product with 120 euros of revenue and 40 percent returns is worth more than one with 80 euros and 60 percent margin. In reality it is the other way round.
- 2You do not need a perfect margin per product. A margin per product group from your ERP, adjusted for the return rate, is enough to start.
- 3The value belongs server-side and the targets have to be recalculated, otherwise you throttle the account instead of improving it.
- 4Two to three weeks of unrest are normal. Whoever turns back during that time has not run the test, only paid for it.
Most stores pass the order value to Google as the conversion value. It is the default in every shop system, and it is so natural that nobody questions it. Smart Bidding then does exactly what it was built for: it looks for the clicks that bring the highest passed value per euro of ad cost. If that value is revenue, it looks for revenue. Including the orders that produce a loss after cost of goods, shipping, payment fees and returns.
This is not a theoretical problem. It is the reason many accounts with a good ROAS have less money left at the end of the month than expected. The algorithm did nothing wrong. It just got the wrong number.
Why revenue is the wrong number
Take two products from one range. For Google, which sees order values, product B is the more valuable one. For you, who know cost of goods and returns, it is product A, by a wide margin.
| Product A | Product B | |
|---|---|---|
| Order value | €80 | €120 |
| Gross margin | 60% | 20% |
| Return rate | 5% | 40% |
| Contribution margin per order | €45.60 | €14.40 |
| What Google sees with revenue as value | 80 | 120 |
| What Google sees with contribution margin as value | 45.6 | 14.4 |
Invented example. Contribution margin simplified here as order value times gross margin, adjusted for return rate. Shipping and payment fees would come on top.
1.5×
how much more valuable Google finds product B when you pass revenue
3.2×
how much more contribution margin product A actually brings
With revenue as the value, Smart Bidding bids half as much again for product B as for product A. It sends budget into the product that generates returns and leaves hardly any margin. With contribution margin as the value, the ratio flips, and the algorithm suddenly works for your result instead of your revenue column. Same technology, same campaigns, same ads. Only the number is different.
The switch in five steps
- 1
Make margin available per product
You do not need a perfect value per item. A gross margin per product group from your ERP beats an exact revenue figure that measures the wrong thing. What matters is that the value sits in a field the shop can read at checkout, and that somebody maintains it when purchase prices change.
- 2
Factor in the return rate
The return arrives weeks after the order, and by then Google has long counted the conversion. So the average return rate per product group goes straight into the passed value. In fashion and footwear this step decides whether whole categories are profitable or loss-making.
- 3
Pass the value server-side
Contribution margin does not belong in the browser. There it is readable by anyone who opens the page, and it is lost with ad blockers and declined consent. Server-side tagging sends the value from the shop backend, with a hashed email for Enhanced Conversions. It is the same rebuild that also narrows the consent gap.
- 4
Recalculate targets
The decisive step almost everyone forgets. A target ROAS defined on revenue is far too high on a contribution margin basis. Whoever leaves it in place watches the account throttle spend within days and concludes that the switch does not work.
- 5
Sit through the learning phase
Expect two to three weeks in which spend and revenue fluctuate. The algorithm is learning a new target and redistributing budget. Campaigns with few conversions take longer. Whoever moves targets back and forth during this time restarts the learning phase every single time.
Recalculating targets properly
The conversion is simple once written down. The target ROAS on a contribution margin basis is the old target ROAS times the average margin. Whoever ran a ROAS of 4 on revenue lands well below that, depending on margin:
| Previous target ROAS on revenue | Average margin after returns | New target ROAS on contribution margin |
|---|---|---|
| 4.0 | 30% | 1.2 |
| 4.0 | 40% | 1.6 |
| 4.0 | 50% | 2.0 |
| 3.0 | 40% | 1.2 |
A contribution margin ROAS of 1.0 means ad costs are exactly covered by contribution margin. Everything above 1.0 is profit before fixed costs, everything below is a loss.
The new target has an advantage the old one never had: it is directly interpretable. A ROAS of 1.6 on contribution margin means every euro of ad cost brings back 1.60 euros of contribution margin, so 60 cents of profit before fixed costs. With a revenue ROAS of 4 you first had to know the margin behind it to say whether the account makes money at all.
What happens during the learning phase
The trajectory after the switch follows the same pattern in almost all accounts. First, contribution margin after ad costs falls, because the algorithm pulls budget out of products that used to bring a lot of revenue and does not yet know where to put it. Then it rises above the old level, because the budget arrives at the products you earn on. The low point is usually in week two.
Schematic curve. The dip in week two is the moment the switch gets abandoned most often, shortly before it starts working.
Before the switch
- Conversion value = order value from the shop
- Passed in the browser, lost with ad blockers and declined consent
- Target ROAS 4.0, without knowing the margin behind it
- Report shows revenue, margin gets calculated at month end
After the switch
- Conversion value = order value times margin, adjusted for returns
- Server-side passing with Enhanced Conversions
- Target ROAS 1.6, readable directly as profit per ad euro
- Report shows contribution margin, the margin is already inside
Prerequisite
The switch needs access to numbers that do not live in the ads account: purchase prices, return rates, shipping costs. Whoever hires an agency that only works inside the ads account cannot take this step. That is why access to shop and ERP belongs in every brief, not just access to Google Ads.
Smart Bidding optimises on what you pass it. Pass revenue and you get revenue. Pass contribution margin and you get contribution margin.
If you want to know whether the switch is worth it for you: take your twenty best-selling products, write margin and return rate next to each and sort by contribution margin per order. If that order differs strongly from the revenue order, Google is currently optimising on the wrong products. Then the switch is not a refinement, it is the biggest lever in the account.