Building the POAS column in Google Ads
ROAS compares revenue to spend. POAS compares margin to that same spend, and it has a property ROAS will never have: its break-even is 1, whatever your sector and whatever your margin rate. Here is how to display it in Google Ads, right next to ROAS, in a single working session.
What you need before you start A Google Ads login allowed to edit columns, the margin per order known to your shop, and a developer or a module for the transmission step. Allow an hour on the Google Ads side, and anything from a few hours to a few days on the shop side depending on how your margin is stored.
Step 1: send the margin, not just the revenue
This is the only step that takes technical work, and everything else depends on it. Today your shop sends Google the value of the order. It needs to send the margin on that order as well.
Two ways to do it, depending on your tooling. You can create a second conversion action, call it “Margin”, fired by the same purchase, whose transmitted value is the margin rather than the price paid. Or you can send the margin as a custom parameter on the existing conversion. The first is easier to work with in columns, the second avoids double-counting your conversions.
Three rules for the margin you send to be honest.
- Net of the discounts actually granted on that order, promo codes included. Otherwise promotional campaigns stay flattered, which is exactly the bias you are trying to correct.
- Excluding shipping revenue collected, or else net of the real shipping cost. Counting postage as turnover inflates the margin without adding anything.
- Approximate beats absent. If the exact cost of goods is not available line by line, a margin rate per product category is more than enough to re-rank campaigns. Accuracy to the cent is not the point, the ranking is.
Step 2: create the two columns
In Google Ads, open the campaigns table, then the Columns menu and the modify columns option. In the panel, the custom columns section lets you create a new one with a formula.
| Column name | Formula | Format | What it tells you |
|---|---|---|---|
| POAS | Margin ÷ Cost | Number, two decimals | Margin generated per euro spent. Below 1, the campaign destroys value |
| Profit | Margin − Cost | Currency | What the campaign left behind, in euros. The figure you bank |
Place those two columns immediately after ROAS in the display order. It is a layout detail and it is what does the teaching: the comparison jumps out every time anyone opens the account, without having to be looked for.
Step 3: read what it reveals
Two findings turn up almost every time, within the first few minutes.
Campaigns on the same ROAS have wildly different POAS. That happens as soon as your products do not all carry the same margin, so in nearly every shop. Budget had been moving between them as though they were equivalent.
Some campaigns that flatter on ROAS are grazing their break-even. A ROAS above 4 with a POAS close to 1 describes a campaign that repays its spend and very little else. We see this on live accounts, including on campaigns that have sat at the top of the table for months.
The trap to avoid straight away Do not switch your automated bidding over to margin the day the column appears. Start by displaying it: that changes nothing about how the account runs and it already teaches you the essential part. A column fed by a wrong margin or by broken attribution is more dangerous than no column at all, because people trust it. Check that it tells the truth over a full month first.
The two settings that make the difference
Attach the metrics to the conversion date rather than the click date. Google Ads offers both; by default a sale is attributed back to the day of the click that preceded it, sometimes weeks earlier. To compare one month against another without sales sliding between periods, the conversion-date variants are essential as soon as your buying cycle runs longer than a few days.
Look at new customer acquisition too. Google Ads can separate conversions from new customers from those from existing ones. Crossed with POAS, that distinction settles the old argument about brand and retargeting campaigns: a spectacular POAS carried entirely by customers you already had does not say the same thing as an average POAS carried by new ones.
What the column will not do
It ignores returns, which arrive after the order and which Google does not claw back retroactively. On categories with a high return rate, POAS stays optimistic and a monthly reconciliation against your real returns is still needed.
It depends entirely on the quality of the attribution upstream: an order counted twice inflates POAS just as surely as it inflated ROAS.
And it says nothing about incrementality: a campaign can post an excellent POAS by harvesting sales that would have happened anyway. POAS fixes the unit of measurement, not the attribution.
Going further
The full reasoning, the three flaws in ROAS and the contribution margin calculation for the cases where the column is not enough are in our article “ROAS rewards your worst campaigns”, due on 8 September 2026. The reliability of the measurement upstream is covered in the tracking that lies in silence.
This resource comes out of our analytics and performance practice, and out of accounts we run this way. Unsure about sending your margin, or about what the column is showing you? Write to us.
