Rebuilding a Google Ads account around profit, not clicks
The account was buying traffic beautifully and revenue badly. We rebuilt it on margin-weighted bidding, cut 340 keywords that had never converted, and moved the shopping feed to server-side tracking so Smart Bidding finally optimised on real orders.

4.8×
blended ROAS
-37%
cost per acquisition
340
dead keywords cut
The challenge
On paper the account looked healthy: 3.1× ROAS, falling CPCs, a rising conversion count. In the P&L it was losing money on roughly a third of spend.
Two measurement problems explained it. Conversions were counted browser-side, so ad blockers and Safari ITP were hiding around 22% of real orders while double-counting some returning customers. And every product was treated as equal revenue despite gross margins ranging from 8% to 61% — Smart Bidding was dutifully buying the cheapest possible orders on the worst possible products.
What we did
Fixed measurement before touching a bid
We stood up server-side tagging with a deduplicated order ID as the source of truth, then ran it in parallel with the old setup for three weeks. No structural changes shipped until the two datasets agreed within 2%.
Sent margin, not revenue
Conversion values were replaced with gross profit per order via a feed rule and offline conversion imports. Same bidding strategy, completely different behaviour — the algorithm started spending where the money actually was.
Cut the dead weight honestly
340 keywords had spent money over 18 months with zero conversions. Rather than pause them into an archive nobody reads, we removed them, and reallocated the freed budget into two Performance Max asset groups split by margin tier.
Rebuilt the feed as a first-class asset
Titles, GTINs and product types were normalised, and 400 products with missing attributes were fixed. Feed quality moved more Shopping impression share than any bid change we made.
“They are best in their field.”
The outcome
Blended ROAS reached 4.8× on true margin-weighted values, and cost per acquisition fell 37% while total spend held flat. Reported conversions initially dropped — which is what a correct measurement fix looks like — before finishing 19% above the old browser-side count.
The account now runs on a monthly margin review rather than a weekly ROAS check.
Tell us what's stuck.
We'll audit the account or the codebase, show you what we'd change, and only pitch if we think we can move the number.
Typically replies within one business day