All case studies
A 3.2x ROAS account that was losing money on its bestsellers - case study cover
EcommerceIllustrative example60 days

A 3.2x ROAS account that was losing money on its bestsellers

We rebuilt the bidder around profit, not revenue. Same sales, 36% more margin.

Gross profit

+36%

POAS

1.0 → 1.4

ROAS

3.2x → 3.1x

Revenue

Flat

Chapter 01

Revenue is a vanity metric at the SKU level

ROAS optimises revenue. Revenue is not profit. When your catalogue has a mix of margins, a flat ROAS target quietly pushes budget toward whatever converts most easily, and the things that convert most easily are often your discounted, low-margin bestsellers. The dashboard goes up and to the right. The contribution margin sits at break-even. Everyone's confused about why a winning account feels broke.

Here's the math that exposed it. A flat 3.2x ROAS means your ad cost is the sale price divided by 3.2. Run that against two real SKUs from this account and the truth is brutal.

Same ROAS, opposite outcomes

SKUPriceMarginROASProfit per sale after ad cost
Discounted bundle$8012%3.2x−$15
Hero product$14058%3.2x+$37

The $80 sale costs $25 in ads and carries $9.60 of margin, so it loses $15. The $140 sale costs $44 and carries $81 of margin, so it makes $37. Same ROAS. One funds the business, one drains it.

Chapter 02

Feeding profit into the bidder

If you send Google revenue, it buys revenue. Send it profit and it buys profit.

The rebuild

  1. 1

    Pulled true margin per SKU

    Got real landed cost and margin per product from the brand's finance and store data. No estimates. Bidding to profit only works if the profit number is right.

  2. 2

    Tagged margin tiers with custom labels

    Every SKU labelled into a margin tier in a supplemental feed, so campaigns could be split and targeted off real economics.

  3. 3

    Sent profit as the conversion value

    Switched the conversion value from revenue to a margin-adjusted profit value, so the bidder optimises toward money kept rather than money moved.

  4. 4

    Locked down tracking with enhanced + server-side conversions

    Bidding to profit against bad data just optimises against bad data faster. Enhanced conversions plus a server-side setup made the values accurate and complete under consent mode.

  5. 5

    Set targets off break-even per tier

    Each margin tier got a tROAS derived from its own break-even plus a buffer, instead of one flat number pretending every product was the same.

What you send is what you get

What you send GoogleWhat it optimises for
Revenue (the default)More sales, at any margin
Profit (margin-adjusted value)More money kept

Chapter 03

Sixty-day results

Before and after

MetricBeforeAfter (day 60)
Revenue$240K / month~$236K / month
Ad spend$75K$75K
ROAS3.2x3.1x
Gross profit$76.8K$104K
POAS1.01.4

Revenue flat, spend flat, and the business kept an extra $27K a month.

Our dashboards said we were winning all year. The first month we bid to profit, revenue barely moved and we kept twenty-seven thousand more dollars. That was the real account the whole time.
Founder

Questions we get asked about this

What's the difference between ROAS and POAS?

ROAS is revenue over ad spend. POAS is profit over ad spend. ROAS treats an $80 sale at 12% margin the same as an $80 sale at 60% margin, even though one funds the business and one drains it. POAS only counts the money you keep. If your margins vary across the catalogue, ROAS will quietly push budget toward your worst products because they often convert easiest.

How do I send profit to Google instead of revenue?

Two routes. The clean one is to send a profit-adjusted conversion value from your store or server, so Google bids on margin directly. The simpler one is to tag SKUs into margin tiers with custom labels and run separate tROAS targets per tier set off each tier's break-even. Most accounts start with tiers and graduate to true profit values once tracking is solid.

What's my break-even ROAS?

One divided by your gross margin. A 50% margin product breaks even at 2.0x, a 25% margin product at 4.0x, a 12% margin product at 8.3x. This is why a flat ROAS target across a mixed catalogue is a mistake: the same 3.2x is wildly profitable on one product and deeply unprofitable on another.

Do I need server-side tracking for this?

You need accurate values, and enhanced conversions plus a server-side setup is the reliable way to get them, especially post-iOS and with consent mode in play. If your conversion values are wrong or undercounted, bidding to profit just optimises against bad data faster.

About these numbers

Illustrative example. The campaign structure and the margin math shown are the exact approach we deploy. The figures are representative of what it produces for accounts in this spend band over a 60-day window, not an export from one client's account.

More breakdowns on the daily newsletter

Read next

Want this run on your account?

Free 15-minute audit. No deck. No pitch. We screenshare your account, run the same audit playbook these case studies came out of, and walk away leaving you the doc.

Book the call