Profit Tracking in Google Ads: How to Switch From ROAS to POAS Bidding (Step by Step)

Google Ads doesn’t show you what people bought. It shows you what they clicked. That single gap is why blended ROAS targets quietly cost you money, and why profit tracking (bidding on POAS instead of ROAS) is the most underused lever in ecommerce PPC right now. Here’s exactly how we implement it, and when we tell clients not to.

Profit Tracking in Google Ads: How to Switch From ROAS to POAS Bidding (Step by Step)

There’s a quiet assumption baked into almost every ecommerce Google Ads account: that the conversion tracking you’re looking at tells you what people bought.

It doesn’t. Conversion tracking only ever records the click.

That distinction sounds academic until you realise every bidding decision Google makes on your behalf is built on top of it. Your targets, your budgets, your “winning” campaigns, all of it rests on a number that describes a click, not a purchase. And once you accept that, the whole logic of blended ROAS targets starts to fall apart.

Two campaigns with identical ROAS but very different profit once cost of goods is subtracted.

Go beyond the article

Why the video is better:

  • See real examples from actual accounts
  • Get deeper insights that can’t be conveyed in writing
  • Learn advanced strategies for complex situations

The Blended Target Problem

Because we can’t see what each transaction is truly worth, almost every account ends up running on a blended target. One number, stretched across products with completely different margins.

Let me simplify to the point of absurdity, but bear with me here. Say you sell running shoes and running socks.

Two products side by side, running shoes and running socks, with wildly different margins but one shared ROAS target.

Branded running shoes are low margin. You need a 500% ROAS to make money on them. Running socks are high margin, so 250% is plenty. And everyone splits the difference. Target 375%.

Now two things happen simultaneously, and both of them cost you. Every shoe sale that comes in under 500% loses you money. And you’re not pushing socks anywhere near hard enough, which is exactly the product where you had room to scale.

The standard defense is that it all averages out. Sometimes it does. But you only settle for the average when you can’t see what each transaction is actually worth. And you can.

The Popular Fix That Doesn’t Work: Margin Custom Labels

The fix most agencies reach for is margin-based custom labels. Bucket your products by margin, give high-margin products a low ROAS target and low-margin products a high one. It’s logical. It’s also built on the same broken assumption: that people buy what they click.

The base reporting in Google Ads shows the product that was clicked, not the product that was bought. You can dig that out if you have cart data and look at cross-sell revenue, but that is not the data you see by default, and it is not the data Smart Bidding acts on.

Here’s an actual example from one of our accounts. We tracked a single SKU (a kids’ smartwatch in blue) for 14 days. Clicks on that product in Google Shopping produced 91 transactions. This is what those people actually bought.

55% bought something other than the product they clicked on. 30% bought from a completely different category: wifi cameras, USB chargers. One person searched for a kids’ smartwatch and walked away with a boombox.

Breakdown of 91 transactions from clicks on one kids' smartwatch: only 45% actually bought the clicked product.

On top of that, 10% of transactions contained more than one product, frequently with wildly different margins attached. Your custom label can’t see that either.

And remember the scale here: that’s one SKU, over two weeks, in a store carrying more than 20,000 SKUs. Extrapolate across the full catalogue over a year and the conclusion is uncomfortable but unavoidable. The margin of the product someone clicked tells you very little about the profit of the order they placed.

Margin labels are better than nothing. But they’re still a guess.

If you want to run this analysis on your own account, AI has made it trivial. Go into GA4, pull the report showing the exact items people purchased, filter it based on clicks on one of your high-volume products, then feed that export to an LLM and ask it to produce the breakdown I showed above. It takes minutes, and it usually ends the internal debate.

What Profit Tracking Actually Is

Profit tracking means calculating the actual profit of every single transaction (price, minus discounts, minus cost of goods, minus shipping, minus transaction fees) and sending that number to Google Ads as the conversion value instead of revenue.

The consequence is the important part. Smart Bidding stops optimising toward ROAS and starts optimising toward POAS: profit on ad spend.

A breakdown of one order from revenue to profit after discounts, COGS, shipping and fees, before it hits Google Ads.

We use ProfitMetrics for this. You add cost of goods to your feed, it sits in the middle of the flow, and it passes profit instead of revenue to Google. You also get server-side tracking and enhanced conversions bundled in, which, if you don’t already have a dedicated tracking setup, is close to worth the price on its own.

We made the first serious switch with a long-term client where we were already happy with performance. Nothing was broken. The question we asked was deliberately simple: if we push the target from 1.5x to 2x POAS, what happens to profit?

Diagram of profit data flowing from the product feed through ProfitMetrics into Google Ads instead of revenue.

Revenue growth dropped from 30% YoY to 11%. On a revenue dashboard, that’s a bad year. On the profit line, it was the opposite. Revenue reporting will never show you that gap.

How to Implement Profit Tracking in Three Steps

The implementation breaks into three steps:

  1. Import profit as a secondary conversion action
  2. Translate your current ROAS into a POAS target
  3. Gradually shift the bidding from ROAS to POAS

Step 1: Import Profit as a Secondary Conversion Action

Import the profit conversion action as a secondary action. Secondary means Smart Bidding ignores it entirely. Nothing changes in your bidding, nothing is at risk, you’re simply collecting data.

While that’s running, set up two pairs of custom columns so you can read ROAS and POAS side by side.

One detail trips up nearly everyone here: the custom column formula must use “All conversion value”, not “Conversion value”. Use the wrong one and it won’t pick up the secondary action at all, and you’ll spend an afternoon wondering why your columns are empty.

Custom column setup in Google Ads, using All conversion value in the formula to pull in the profit conversion.

Let this run for 30 days. Even at this stage, before you’ve changed a single bid, you’ll see campaigns that look excellent on ROAS and poor on POAS.

Step 2: Translate Your ROAS Into a POAS Target

After 30 days you have enough data to answer the question that matters: what does my current performance actually equal in POAS?

Pull a full 28-day window (accounting for conversion lag) and line up ROAS against POAS for every campaign or portfolio that will share a bid strategy.

In the example we worked through, performance clustered around 170% POAS. That becomes the starting target: the performance the account already delivers. The only thing changing in step three is the conversion action; the aggressiveness stays where it is.

And don’t eyeball this off three good days. Use the full window, across all the campaigns sharing the strategy.

Ninety days of campaign data converted from ROAS to POAS, showing performance settling around a 170% target.

Step 3: Shift From ROAS to POAS Bidding Gradually

This is where most implementations go wrong.

When you swap your revenue conversion action for your gross profit conversion action, Smart Bidding still holds all the historical revenue data.

So you cannot simply set your target to the new POAS number on day one. Most of the data in the system is still revenue, and you’d be telling Google to bid far more aggressively than you intended.

Then you wait one week.

At the same time, calculate your rough daily spend per weekday. If you start overspending versus that estimate, you’ve moved the target too low too fast. If spend collapses, you’ve moved too slowly or gone too high.

A weekly step-down plan showing target ROAS adjustments alongside actual ROAS and daily spend for each seven-day period.

On day 8, read your actual ROAS, estimate where you’ll land once conversion lag is accounted for, and update the target to match that actual figure.

Wait another week and repeat. In the example below, daily spend started drifting below where we wanted it, so we dropped the target slightly more aggressively than the plan called for.

A week by week schedule showing the target ROAS stepping down toward the POAS target, with spend tracked alongside.

After roughly 30 days, the historical revenue data has aged out and you’re running cleanly on your new POAS target. This is a simplified version of the process, and it works in about 80% of cases.

When You Should Not Bid on Profit

Profit bidding works in around 80% of the accounts we run it in. Let’s talk about the other 20%, because pretending otherwise would be dishonest.

Skip it, or at least delay it, if:

  • You run heavy promotions. Large discounts push per-transaction profit close to zero. Smart Bidding goes from seeing $100 per conversion to $5, and the signal becomes wildly inconsistent. In discount-heavy markets this happens routinely.
  • Your margins are basically flat. If every product carries roughly the same margin, profit bidding changes nothing meaningful. You’re taking on implementation risk for zero upside.
  • Daily losses will cause panic. A low-ROAS day used to just be a low day. With profit tracking, it shows up as an actual loss. If that triggers daily micromanagement from the team or the board, that behaviour will do more damage than the metric ever fixes.

And if you switch and growth stalls? Switch back. We’ve seen accounts recover perfectly well after reverting to revenue as the primary action. Keep profit as the secondary action and use it to set smarter ROAS targets instead. That’s still a significantly better position than where you started.

Start With the Step That Costs You Nothing

Step one carries no risk. A secondary conversion action does not touch your bidding.

So import profit as a secondary action, set up the custom columns correctly, and just look at the numbers for 30 days. Once you can see what your current ROAS targets are quietly costing you in profit, you’ll know whether the full switch is worth making.

Most of the time, the numbers make the decision for you.

[TL;DR]

  • Google Ads conversion tracking shows what people clicked, not what they bought. In one 14-day test on a single SKU, 55% of buyers purchased something other than the product they clicked, and 30% bought from a different category entirely.
  • Because of that, blended ROAS targets systematically lose money on low-margin products while under-scaling your high-margin winners. Margin custom labels don’t fix it, because they’re built on the same broken assumption.
  • Profit tracking sends per-transaction profit (price minus discounts, COGS, shipping, fees) to Google as the conversion value, so Smart Bidding optimises for POAS instead of ROAS.
  • Implementation is three steps: import profit as a secondary action and collect 30 days of data, translate your current ROAS into its POAS equivalent, then shift the target gradually over about 30 days using daily spend as your compass.
  • It works in roughly 80% of accounts. Skip it if you run heavy promotions, have flat margins across the catalogue, or if daily loss reporting will trigger panic-driven micromanagement.

Leave a Comment

Your email address will not be published. Required fields are marked *