Skip to content
Bach.ai

Value vs Purchase Optimization: Which Bid Goal Holds Margin

Many accounts switch to value optimization the moment someone says “optimize for revenue, not just orders.” It sounds obviously correct. The problem is that the bid goal optimizes toward top-line conversion value, and top-line value is not contribution margin. On the wrong catalog, telling the algorithm to chase bigger carts is telling it to chase your most discounted, lowest-margin buyers — and it will do exactly that, efficiently.

This is the real decision behind value optimization vs purchase optimization in Meta Ads: not “which makes more revenue,” but “which proxy sits closest to the profit you actually keep.”

For the surrounding account decisions, compare Paid Acquisition Cohort Value: A Realized Model and use Cost Cap vs Bid Cap vs Min ROAS: A Margin-First Decision Tree as the next diagnostic.

What each bid goal actually tells the algorithm

Purchase-count optimization asks delivery to find people plausibly to fire a purchase event. Every purchase is weighted equally — a small order and a large order are the same target. The system optimizes for frequency of conversion, full stop.

Value optimization (highest-value bidding) asks delivery to predict the value attached to each conversion and lean toward the people likely to spend more. It needs a value parameter flowing on your purchase event, and it needs enough recent value signal to model that variance. In exchange, it skews delivery toward predicted high-spend buyers.

The unstated assumption: that a higher-value order is a more profitable order. That holds only when your margin moves with your cart size. Frequently it doesn’t.

The hidden assumption value optimization makes

Value optimization treats revenue value as a stand-in for worth. But cart size in most catalogs is manufactured three ways:

  • Discounting — bundles, volume tiers, threshold-based promo codes. A big cart is frequently a deeply discounted cart.
  • Mix — high-ticket items that happen to carry thinner percentage margin (shipping-heavy, returns-prone, loss-leader anchors).
  • Genuine premium — a real higher-margin tier where customers pay up for the better product.

Value optimization can’t tell these apart. It sees the value parameter you send it, and your pixel almost always sends gross order value, not contribution. So it optimizes toward the largest gross carts — which, on a promo-driven catalog, are precisely the carts where you gave the most margin away.

A worked example (illustrative, not a benchmark)

Two buyer cohorts the algorithm could lean toward:

Cohort AOV (indexed) Contribution margin Contribution per order
A — full-price 1.0 45% 0.45
B — bundle/discount 1.6 28% 0.45

Cohort B looks 60% better on revenue, so value optimization tilts toward it. But contribution per order is identical — and that’s before the usual reality that big discount-bundle orders carry higher return and refund rates. Net of returns, B is the worse buyer. Value optimization just spent your delivery budget chasing it because the value parameter said “bigger is better.”

Treat those numbers as a planning illustration, not a fixed law — the point is the shape: when AOV variance is discount-driven, higher revenue and higher profit decouple, and the bid goal that chases revenue stops protecting margin.

Where value optimization quietly leaks margin

Two catalog profiles where value optimization can underperform on contribution:

Single-price or near-single-price catalogs. If every SKU clusters around one price, there’s almost no value variance for the model to separate. Value optimization has nothing meaningful to optimize toward, yet you still pay its costs: it requires the value signal to be clean and abundant, it narrows the eligible event pool, and structural changes reset learning. You take the tax and get no premium-buyer upside. Purchase-count is the cleaner, faster proxy here — every order is the same price anyway, so “more orders” and “more value” are the same instruction.

Thin or promo-dependent catalogs. When most of your AOV lift comes from discount mechanics rather than a genuine premium tier, value optimization systematically buys the discounted carts. You’ll see platform ROAS hold or even rise while contribution margin slides — the classic “great numbers in the dashboard, worse bank balance” pattern.

When purchase-count protects contribution better

Lean purchase-count optimization when:

  • Price spread across the catalog is narrow.
  • AOV variance is manufactured by discounting, bundles, or threshold promos rather than a real premium tier.
  • Your higher-AOV orders carry lower percentage margin (high-ticket loss leaders, returns-heavy categories).
  • Conversion volume is modest — value modelling wants more signal to be stable, and purchase-count stabilizes on less.

In all of these, “one more order” is a lower-risk instruction than “one bigger order,” because each order’s contribution is roughly comparable and you’re not paying delivery to hunt the discount-driven tail.

When value optimization earns its keep

It’s the right call when value variance is real and margin-aligned:

  • A genuine premium or pro tier that pays up and keeps its margin.
  • Wide, organic price spread that isn’t an artifact of promos.
  • Healthy event volume so the value model has signal to learn from.

When the higher-value buyer is genuinely the more profitable buyer, value optimization compounds beautifully — you’re pointing delivery at the people worth the most and keeping the margin.

The advanced move: feed it margin, not revenue

The sharpest fix isn’t choosing between the two goals — it’s fixing the input. If your stack lets you control the value parameter on the purchase event, send a margin-adjusted value (contribution, or revenue net of predictable discount) instead of gross order value. That reframes value optimization to chase contribution, not top-line. Done well, it neutralizes the entire failure mode above. It demands clean server-side value passing and a stable margin model, so treat it as a deliberate project, not a toggle — but it’s the version of value optimization actually worth running.

How to test without torching a month

  1. Judge on MER and contribution, not platform ROAS. Platform ROAS is the exact metric value optimization is happiest to inflate. Watch contribution margin and blended efficiency.
  2. Change one thing. Switching bid goal resets learning. Give each setup enough recent conversion signal to exit learning before you read it — comparing two structures mid-learning tells you nothing.
  3. Segment the buyers it bought. Look at margin and return rate by AOV band under each goal. If value optimization’s incremental orders sit in your thin-margin, high-return band, you have your answer.
  4. Keep a profit eye on the switch. A read-only operator like Bach can sit on the contribution gap between the two goals and flag when value optimization is buying revenue you don’t keep — then propose the change for you to approve, rather than acting on its own.

The takeaway

A bid goal is a proxy for profit, and the only question that matters is which proxy sits closest to the margin you keep. Value optimization is the right proxy when AOV variance is real and margin tracks revenue. When your AOV is manufactured by discounts, or your catalog is effectively single-price, purchase-count holds contribution better and learns faster. And if you can pass margin-adjusted value into the event, you stop choosing proxies altogether and optimize the thing you actually care about. Pick the goal that’s nearest your contribution line — or move your contribution line into the goal.

See what your Meta ads are really costing you.

Connect your account and Bach ranks every revenue leak in minutes — each with the money it costs and a one-tap fix. Free for 7 days, no credit card.

Start Free Audit
Start your free audit