Cloud Ten / Guides / POAS bidding: how to make Meta and Google optimi…

POAS bidding: how to make Meta and Google optimise for profit.

The algorithms optimise for exactly what you send them. Send revenue and they buy revenue, cheapest first. Send profit and they start buying the orders that actually pay.

The problem you are fixing

Value-based bidding works. Meta's highest-value bidding and Google's target ROAS are good at finding the orders that maximise whatever number you hand them. The trouble is the number. Almost every account sends revenue as the conversion value, so the algorithm learns that a £120 order of a 15% margin product is worth more than a £60 order of a 60% margin product. It is not. The first leaves £18; the second leaves £36.

Left alone, the system drifts toward discounted, low-margin, high-return products, because they convert cheaply and report large values. ROAS climbs, POAS falls, and nobody can see it happening inside the platform. POAS bidding is the family of fixes.

Three ways to do it

1. Send profit as the conversion value

The cleanest option. At the moment of purchase, calculate contribution for the order: revenue minus cost of goods, minus estimated shipping, fulfilment and payment fees. Send that as the value on the purchase event to Meta and Google instead of the order total. Keep revenue in a custom parameter so you can still report it.

The platforms now optimise directly for profit. Their ROAS column becomes a POAS column. Bidding strategies that were chasing cheap revenue start chasing margin, with no other change to the account.

2. Set target ROAS per product from margin

If you cannot change the value you send, change the target. Group products by margin band into separate campaigns or asset groups, and set each one's target ROAS from its own break-even plus a safety factor. A 50% margin group might run at 3.0x; a 30% margin group at 4.5x. Same profit floor, expressed in each group's own revenue terms.

3. Use value rules

Google's conversion value rules and Meta's value rules let you adjust the value the platform sees for a segment without changing the pixel. Down-weight low-margin categories, up-weight new customers, discount known high-return regions. It is coarser than option one, but it needs no developer.

Setting it up on Shopify

  1. Build the margin table. Cost of goods per SKU, average shipping and fulfilment cost, payment fee rate, return rate by product. A spreadsheet or a metafield per product.
  2. Compute profit at purchase, server-side. The Conversions API for Meta and a server-side purchase event for Google should be the source of truth, with the browser pixel carrying the same event ID for deduplication. Look up each line item's margin and sum contribution.
  3. Send contribution as value. Revenue goes in a custom parameter. Test in Events Manager before switching bidding over.
  4. Rescale every target. A 4.0x revenue target on a 40% margin product is a 1.6x profit target. If you leave the old targets in place, delivery collapses because nothing can reach them.
  5. Set the floor. Target POAS at or above the level that covers overheads, usually 1.5x to 2.5x, and never below 1.0x.
Never run revenue values and profit values in the same account at the same time. The algorithm cannot tell them apart, and you will spend a month wondering why it is buying strange orders.

Pitfalls

  • Learning resets. Changing the value definition is a material change. Expect a learning period and do not judge it in the first week.
  • Volume thresholds. Both platforms want a minimum number of conversions in a window before value-based strategies behave. Splitting into too many margin groups can starve each of them. Fewer, larger groups beat many small ones.
  • Returns arrive later. Profit at purchase cannot know the order will come back. Use the product's historical return rate in the margin table rather than trying to send refunds as negative events.
  • Reporting shock. Every ROAS chart in the business will fall by roughly the margin percentage overnight. Warn people before you flip the switch, and show the POAS versus ROAS comparison so they understand nothing got worse.

What changes

Budget moves. Products that looked like heroes on revenue and were quietly losing money get less spend. Higher-margin products that never won on ROAS start scaling. In most accounts we have moved to profit values, reported revenue dips slightly and contribution rises, which is exactly the trade the business wanted and could never make while the platform was scoring itself.

Frequently asked

Does Meta Ads support POAS bidding natively?

Not as a named feature. Meta optimises for the conversion value you send. Send gross profit as the purchase value and highest-value or minimum-ROAS bidding become profit bidding. Value rules offer a coarser adjustment without changing the pixel.

Can I do POAS bidding in Google Ads?

Yes, the same way: send profit as the conversion value, or use conversion value rules to adjust value by product category, audience or location. Target ROAS then optimises toward profit. Rescale your targets when you switch.

Will my ROAS look worse after switching to profit values?

Yes, by roughly your margin percentage, because the values are smaller. Nothing has actually got worse. Warn stakeholders, rescale every target, and report POAS alongside the old ROAS for a month so people can see the relationship.

What target should I set when bidding on profit?

A POAS at or above the level that covers your overheads at the volume you plan to buy, typically 1.5x to 2.5x, and never below 1.0x. Below 1.0x, the ads cost more in spend than they return in contribution.

Can I set up POAS bidding without a developer?

Partly. Value rules and per-margin-group target ROAS need no code. Sending true profit as the conversion value usually needs server-side tracking or an app that computes margin per order at purchase.

Get your free competitor report