Profit Bidding: Bid on Profit, Not Revenue | TrueROAS
trueRoas-logotrueRoas-text-logo
Back to Blogs

Profit Bidding: I Told Google My Real Numbers and It Made Me More Money

What happens when you send profit instead of revenue to Google and Meta? Here is the full story, the math, and whether it is worth it for your store.

+15%
average campaign profit with Google's profit optimization
Source: Google
+12%
average ROAS from value optimization in Meta's testing
Source: Meta
2x
net profit in 2 months, best documented case (on 60% less spend)
Source: GrejFreak
WHAT IS POAS?

ROAS (Return On Ad Spend) is revenue divided by ad spend. Spend $1,000 on ads, get $4,000 in orders, and your ROAS is 4.0. POAS (Profit On Ad Spend) is the same math with profit instead of revenue: if those $4,000 in orders only carry $1,200 of profit after product and shipping costs, your POAS is 1.2. In short: ROAS tells you how much money moved. POAS tells you how much you kept.

A few years ago, before TrueROAS existed, I was running ads for an ecommerce store and having the best month of my life. ROAS was north of 4. Screenshots were flying in the team chat.

I was already mentally spending the profits.

Then the accountant called.

Record revenue. Record ad spend. Almost zero profit.

That month broke my brain a little. Fixing it led me to the single highest-leverage change I have ever made to an ad account: profit bidding.

This article is everything I know about it, with sources for every claim, so you can decide if it is worth it for your store.

The bestseller that was robbing us

Here is what had actually happened. The store's hero product was a big, expensive item: high price, gorgeous ROAS, terrible margin. Heavy to ship, frequently discounted, and costly to source.

Google and Meta only knew the revenue number we sent them. So their algorithms did exactly what we asked: they hunted for revenue. And nothing produces revenue like an expensive product, even if the store only keeps a few percent of it.

Meanwhile, a boring accessory with a 60%+ margin got almost no spend. Its price tag made it look weak in the auction.

The algorithm was not broken. It was obedient. We told it to chase the wrong number.

Here is what one order of each actually looked like, once you follow the money all the way down:

Hero productROAS 4.2, looks amazing
Revenue$600
Product cost-$402
Shipping-$60
Payment fees-$30
Gross profit (18%)$108
Ad spend-$143
You keep per order-$35
Boring accessoryROAS 2.6, looks weak
Revenue$45
Product cost-$12
Shipping-$4
Payment fees-$1
Gross profit (62%)$28
Ad spend-$17
You keep per order+$11

POAS (Profit On Ad Spend) is gross profit divided by ad spend. Above 1.0 you make money. Below 1.0 you are paying platforms for the privilege of shipping boxes.

The hero product ran at a POAS of 0.76, the accessory at 1.61. The product with more than twice the ROAS was a money incinerator, because every product has a different breakeven ROAS. In ProfitMetrics' classic kitchenware example, a frying pan breaks even at ROAS 2.12 while a mixer needs 8.88.

One account-wide target ROAS cannot be right for both.

The fix: tell the algorithm the truth

The fix sounds almost too dumb to work.

Instead of sending the order's revenue as the conversion value, you send the order's gross profit: revenue minus product costs, shipping, payment fees, and discounts.

That is it. Same campaigns, same bid strategies, same buttons.

Google's value-based bidding is value-agnostic; its own documentation says conversion values can be "real economic values, like revenue, or proxy values". Set the value to profit and Target ROAS quietly becomes Target POAS. The machine that used to hunt revenue now hunts money you actually keep.

When we did this, the account rebalanced itself over a few weeks. Spend drained away from the glamorous hero product and flooded into the boring high-margin stuff.

Revenue dipped slightly for two weeks and I sweated through every shirt I owned. Then profit started climbing. By month two the store was making more actual money at a lower ad spend than in our "record" month.

No new creatives. No new campaigns. We just stopped lying to the algorithm.

This is now official on both platforms

Back then this felt like a hack. Today both platforms have made it a first-class feature, which tells you where bidding is heading.

Google announced profit optimization at Google Marketing Live in May 2024: Performance Max and Shopping can optimize for profit using cart data and the cost_of_goods_sold attribute in Merchant Center.

Google's reported result for advertisers using gross profit optimization: an average 15% uplift in campaign profit versus revenue-only bidding. The native feature is still gated to select accounts, so most stores get there by sending profit values directly as the conversion value, which works on any account today.

Meta went even further. In June 2025 Meta officially announced value optimization on profit margins shared through the Conversions API, so campaigns can optimize for POAS instead of revenue ROAS.

In the same announcement Meta reported that value optimization beat volume optimization by an average of +12% ROAS in their testing. And Meta's long-standing benchmark for the Conversions API itself is a 13% average improvement in cost per result when added alongside the pixel, simply because the algorithm sees more complete data.

What the numbers look like in the wild

I am obviously biased (I built a company around this), so do not take my word for it. Here are documented results from stores that switched their bidding from revenue to profit values:

Store / SourceWhat changedResult
GrejFreak (outdoor gear, DK)ROAS to POAS biddingAd spend -60%, revenue +32%, net profit doubled in 2 months
CoolStuff (retailer, SE)Margin-based Shopping biddingRevenue +26%, gross profit +42%, cost -10% (Q4 YoY)
SavvyRevenue clientPOAS targets on profit conversionsRevenue +11%, profit +84%
Amical (agency)Profit biddingGross profit +110% in 6 weeks
Google (aggregate)Native gross profit optimizationAverage +15% campaign profit
Meta (aggregate)Value vs volume optimizationAverage +12% ROAS
Store owner (r/ecommerce)Profit values via Meta CAPIProfit +25% in 3 months (revenue -18%)

Fair warning on reading that table: several of those cases are published by vendors who sell profit tracking, so there is selection bias. Nobody publishes the case study where nothing happened.

That is why I anchor expectations on the platform aggregates (+12% to +15%), and treat the doubled-profit stories as the good end of the range, not the promise.

What that means in dollars

Percentages are abstract, so let's make it concrete. Take a typical Shopify store spending $25,000/month on ads, generating $100,000/month in ad revenue (ROAS 4.0) with a 40% gross margin.

That is $40,000 gross profit, or $15,000/month actually kept after ad spend.

ScenarioMonthly profit after ad spendExtra profit per year
Today (revenue bidding)$15,000baseline
+10% profit (conservative)$16,500+$18,000
+15% profit (Google's reported average)$17,250+$27,000
+24% profit (GrejFreak-level outcome)$18,600+$43,200

$18,000 to $43,000 per year, for changing one number in the data you already send.

Not from new creatives. Not from more hours in Ads Manager. The same budget just stops being spent on orders that were never going to make you money.

Who should do this (and who really shouldn't)

This is the part most articles skip, because it is more fun to promise everyone a doubled profit line.

Profit bidding has real requirements, and for some stores it does nothing at all.

RequirementGoogle AdsMeta Ads
Minimum conversion volume15 conversions with values in 30 days (official floor), 50+ recommended30 purchases with 5+ distinct values in 14 days
Learning phase3 to 4 weeks of value data before switching targetsAbout 50 purchases per ad set per week to exit learning
Margin varianceMargins must differ across productsAt least 5 distinct order values required
Data neededPer-order profit (COGS, shipping, fees, discounts)Same, sent server-side via Conversions API

Sources: Google's Target ROAS documentation and Meta's value optimization eligibility requirements.

Skip profit bidding if any of these describe you:

  • All your margins are basically the same. If every product keeps 40%, profit is just revenue multiplied by 0.4. The algorithm ranks every auction identically and nothing changes. The bigger your margin spread, the bigger the win.
  • You get fewer than ~30 to 50 orders a month. Below the volume floors, value bidding of any kind is noise. Fix volume first.
  • You are in lead gen. There is no order margin to send. (Proxy values like lead scores are a different article.)
  • You run on razor-thin blended margins with constant sitewide sales. If margins collapse to near zero during promos, you are feeding the algorithm chaos during your biggest weeks.

For everyone else, and that is most Shopify stores selling a catalog with mixed margins at decent volume, the math is heavily in your favor.

SavvyRevenue, an agency that has implemented this across many accounts, reports it works in roughly 80% of implementations. And the failure mode is "nothing improved", not "everything broke".

It is a rare asymmetric bet.

One warning before you switch

The week after you switch, your reported ROAS will drop and you need to not panic. If your margin is 40%, a real ROAS of 4.0 now shows up as a conversion value around 1.6, because the "value" column is now profit.

Nothing got worse. The number just started telling the truth.

Recalculate your targets (breakeven is now simply 1.0), warn whoever reads the dashboards, and judge the switch on month-two profit, not week-one ROAS.

The questions everyone asks on Reddit

While researching this article I went through years of threads on r/PPC, r/GoogleAds, r/FacebookAds and r/ecommerce. The same questions come up every single time profit bidding is proposed, so let me answer them all in one place.

"Is break-even POAS 0 or 1?"

It is 1.0. This gets asked verbatim on r/PPC, and the confusion is understandable. POAS is gross profit divided by ad spend, and ad spend is not subtracted from the gross profit number. At exactly 1.0, the ads ate your entire margin. Practitioners typically start with a target around 1.2 to 1.7 and tune from there.

"Profit values are smaller numbers. Will that break the algorithm?"

This is the most common fear, asked directly in this r/ecommerce thread, and the answer is no. Bidding algorithms care about proportions, not magnitude. As one commenter put it, multiply every value by 300 and nothing changes.

What is real is the transition: expect two to three bumpy weeks while the system relearns. The standard playbook is to collect profit values as a secondary conversion for about 30 days before making them primary, which is exactly how we roll it out at TrueROAS.

"Won't Google and my competitors see my margins?"

A fair concern with a neat community solution: one team on r/PPC sends profit divided by an arbitrary constant (theirs is 7.16), so the proportions survive but nobody can reverse the real margin from the pixel. Sending values server-side instead of through the browser also keeps them out of your page source entirely.

"What about returns and refunds?"

Returns can lag a purchase by 30 days, and skeptics on Reddit raise this constantly. Both platforms handle it: Google supports conversion adjustments that restate a conversion's value after the fact, and a proper server-side setup subtracts refunds automatically. Imperfect margin data that is 90% right still beats revenue data that ignores margins completely.

"Is this against Google's or Meta's policies?"

No. In dozens of threads I did not find a single person who ran into policy trouble, and both platforms have since built profit optimization into their own products. You are not gaming the system. You are feeding it better data, which is exactly what the platforms want.

"Does it always work?"

No, and anyone telling you otherwise is selling too hard. The honest failure cases from the forums: flat margins across the catalog (one consultant ran a manual spreadsheet audit for a client and found POAS and ROAS ranked campaigns identically, saving them the whole setup), and accounts below the volume floors where any value bidding is noise.

That spreadsheet-first sanity check is genuinely good advice: if your margins barely vary, skip the switch.

The honest catch: setup is genuinely painful

So why isn't every store doing this already? Because the plumbing is miserable.

To send correct profit values you need per-order gross profit calculated in real time: SKU-level COGS, shipping costs, payment fees, discounts, ideally refunds.

Then it has to reach the platforms correctly. On Meta that means the Conversions API with proper event deduplication, so you do not double count purchases or have your browser pixel's revenue values silently override your profit values.

Done by hand, this is weeks of developer time and a long list of ways to quietly corrupt your own data.

This is exactly the problem we built TrueROAS to solve. Because of our partnership with Shopify we already sit on your order data, costs included. We calculate true per-order profit and send it back to Meta's Conversions API and Google's enhanced conversion setup with correct deduplication, usually in days instead of weeks.

You keep running your campaigns exactly as before. The algorithms just finally get told which orders actually made you money, and they optimize accordingly.

It is the closest thing to "more profit without doing anything" that I have found in ten years of running ads.

The bottom line

Google and Meta have spent billions building machines that are terrifyingly good at finding whatever you ask them to find. Most stores ask for revenue, so that is what they get, profitable or not.

Ask for profit instead and the same machines, the same budget, and the same ads start working for your bottom line. The platforms' own numbers say that is worth 12 to 15% more profit on average, and the best documented cases go far beyond that.

I watched it happen in my own account years ago, and I have watched it happen for TrueROAS customers ever since.

Profit bidding is not a hack. It is just the correct way to buy ads.

Usually $300/hour • Free for a limited time

Find Out What's Holding Your Ads Back

30 minutes, 1-on-1 with the founder of TrueROAS.

Live review of your Meta & Google ad performance

Find the tracking gaps eating your profit

Leave with a clear plan to scale

Book Your Free CallStart Free Trial

Marius T.
"TrueROAS finally showed me the conversions Meta was missing. We scaled spend 2.3x in 30 days without guessing."

Marius T.Senior Media Buyer

Find it on the Shopify App Store
WooCommerce Plugin available
5 star rating badge