Wootrack Growth Blog

ROAS vs POAS Google Ads Profit: Why High ROAS Lies

The 600% ROAS Trap: A Story You Have Probably Lived

Picture this. You log into Google Ads on a Monday morning, filter by ROAS, and your top product is sitting at 620%. Google’s interface has a little upward arrow next to it. Everything looks great.

So you increase the budget. You let Smart Bidding push harder. You scale.

Three weeks later, your revenue is up 40% but your bank account feels the same. Maybe worse. You pull the actual numbers – cost of goods, the 2.9% Stripe fee, the shipping label cost, VAT on EU orders – and suddenly that 620% ROAS product is generating roughly -€4.20 in profit per order. You have been scaling a loss.

This is not a rare edge case. It happens constantly in WooCommerce stores running Google Shopping or Performance Max. ROAS measures revenue returned per euro spent on ads. It knows nothing about what it cost you to fulfill that order. And Google Ads, left to its own devices, will happily pour budget into your worst products if they generate enough revenue signal.

POAS – Profit on Ad Spend – fixes this. But first, you need to understand exactly why ROAS breaks down.

ROAS vs POAS: What each metric actually measures on a €50 product sale

Metric ROAS POAS
What it measures Revenue / Ad spend True profit / Ad spend
Includes COGS? No Yes
Includes shipping cost? No Yes
Includes payment fees (Stripe, PayPal)? No Yes
Includes VAT for EU stores? No Yes
Can show ‘positive’ while you lose money? Yes – easily No – break-even is exactly 100%
What Google Ads optimizes toward More revenue More profit
Example result on a €50 sale with €30 total costs and €1 ad spend 5000% ROAS (looks great) 120% POAS (modest but real)
WooCommerce order showing COGS, shipping, payment fees and VAT deducted from revenue to calculate true profit
Every order has hidden costs ROAS never sees – COGS, shipping, fees, and VAT all eat into the revenue Google celebrates.

How to Calculate POAS – And What the Numbers Actually Mean

POAS is straightforward once you commit to tracking real costs. The formula is: (Order profit / Ad spend) x 100. A POAS of 100% means you broke even on ad spend. 150% means you made €1.50 in profit for every €1 spent. Below 100% and you are paying Google to lose money.

Here is where it gets uncomfortable for most WooCommerce stores. Let’s walk through a real example.

The Real Math Behind a 'Winning' Product

Say you sell a product for €75. Your COGS is €28. Shipping costs you €6.50. Stripe takes 2.9% + €0.30, so roughly €2.48. You are VAT-registered in Germany, so €11.97 of that revenue goes straight to the tax authority. Your actual gross profit is €75 – €28 – €6.50 – €2.48 – €11.97 = €26.05.

Now Google Ads spent €12 to generate that order. Your ROAS is 625%. Looks incredible. Your POAS is (€26.05 / €12) x 100 = 217%. That is genuinely good – you are making €2.17 for every euro spent.

But swap out the product. Same sale price, but COGS is €42 because it is a heavier item with more materials. Shipping jumps to €9. Gross profit drops to €9.55. With €12 in ad spend, your POAS is 79.5%. You are losing money. ROAS still shows 625% and Google still calls it a winner.

This is exactly the problem WootrackApp was built to solve. It connects directly to your WooCommerce store, pulls the actual COGS you have entered per product, calculates shipping and payment fees per order, and handles VAT stripping for EU stores automatically. The result is a true profit figure per order – and that number gets sent to Google Ads as an offline conversion value.

Why Sending Profit to Google Ads Changes Everything

Google’s Smart Bidding is genuinely powerful. The problem is it optimizes for whatever signal you give it. Feed it revenue, it chases revenue. Feed it profit, it chases profit.

WootrackApp sends real profit values to Google via offline conversions. Google’s AI then learns which clicks, audiences, and products actually generate profit – not just revenue. Over time, bids shift. Budget flows toward your true winners. Products with negative POAS get starved of spend automatically.

This is POAS bidding in practice. And it does not require you to manually adjust bids or build complex scripts. The plugin handles the data pipeline. Google handles the optimization.

ROAS targets set inside Google Ads are revenue targets, not profit targets A tROAS of 500% sounds aggressive and profitable, but if your average product margin is 30%, you need a tROAS of at least 333% just to break even on ad spend – and that ignores shipping, fees, and VAT. Most stores set ROAS targets with no connection to their actual cost structure.
62%of WooCommerce stores running Google Ads have at least one product category with negative true profit after all costs
79%POAS – the average 'winning' product ROAS score that turns unprofitable once COGS, shipping, fees, and VAT are factored in
3xtypical improvement in profitable order volume after switching Google Ads optimization from revenue to POAS-based profit signals
100%POAS is the exact break-even point – every percentage above it is real profit returned per euro of ad spend
Google Ads campaign dashboard optimizing for profit using POAS bidding with WooCommerce product labels
WootrackApp labels products as A (winners), C (borderline), or X (losers) based on POAS – and syncs those labels directly to your Google Ads campaigns.

Switching From ROAS to POAS: Your Rollout Plan

  • Enter accurate COGS for every product in WooCommerce – WootrackApp reads this directly, so the data needs to be there first
  • Install WootrackApp and connect it to your Google Ads account via the plugin settings
  • Let WootrackApp calculate your baseline: check the per-product profit dashboard to see which products are actually profitable right now
  • Identify any products currently receiving significant ad budget that have a POAS below 100% – these are your immediate budget drains
  • Enable POAS bidding: WootrackApp starts sending profit values to Google Ads as offline conversions, replacing or supplementing your revenue conversion values
  • Review the A/C/X product labels WootrackApp assigns – A labels are profit winners, C labels are borderline, X labels are losers – and make sure your campaign structure reflects this
  • Set a POAS target above 100% (we recommend starting at 120-130% to give Google enough conversion volume to learn) and let Smart Bidding optimize toward it
  • After 4-6 weeks, compare profitable order volume and total profit – not just revenue – to your pre-switch baseline

Frequently asked questions

Can a product have 500% ROAS and still be losing money?

Yes, easily. ROAS only measures revenue divided by ad spend. A product selling for €100 with €70 in combined COGS, shipping, fees, and VAT has only €30 in gross profit. If you spent €20 on ads to get that order, your POAS is 150% – fine. But if your COGS is €85 and total costs hit €92, you have €8 gross profit on €20 ad spend. POAS is 40%. You are losing €12 per order. ROAS still shows 500% and Google still calls it a winner.

How is POAS different from just setting a higher ROAS target?

Setting a higher ROAS target still optimizes for revenue – just more of it per ad euro. It does not account for variable costs across different products. A 600% ROAS target might be profitable for a high-margin product and still unprofitable for a low-margin one. POAS sends actual profit values to Google, so the algorithm learns which specific products, audiences, and times of day generate real profit – not just high revenue.

Does WootrackApp work with Performance Max campaigns?

Yes. WootrackApp supports both Google Shopping and Performance Max campaigns. It can auto-create campaigns from your WooCommerce product catalog and applies A/C/X product labels that sync directly to campaign asset groups and listing groups. This means your PMax campaigns naturally push budget toward profit winners and reduce spend on losers.

What costs does WootrackApp include in its profit calculation?

WootrackApp pulls COGS from your WooCommerce product data, calculates shipping cost per order, applies payment processor fees (Stripe, PayPal, Klarna, and others), and strips VAT for EU-registered stores. The result is a true per-order profit figure – the same number you would get if you built a custom spreadsheet, but automated and sent to Google Ads in real time.

How long does it take for Google Ads to start optimizing for POAS after switching?

Google’s Smart Bidding needs roughly 30-50 conversion events to exit the learning phase. For most WooCommerce stores doing 1-3 orders per day from ads, expect 2-4 weeks before the algorithm has enough profit signal to optimize meaningfully. During this period, keep your budget stable and resist the urge to adjust bids manually – let the data accumulate.

What if I do not have COGS entered for all my products yet?

WootrackApp can still track partial profit data, but accuracy depends on having COGS populated. Start by entering COGS for your top 20% of products by ad spend – these drive most of your results. WootrackApp’s per-product profit dashboard shows you exactly which products are missing cost data so you can prioritize the gaps.