Wootrack Growth Blog

ROAS vs POAS Google Ads: Why High ROAS Loses Money

TL;DR

ROAS measures revenue generated per ad dollar, but it completely ignores COGS, shipping costs, discounts, and payment fees — meaning a campaign can hit a 400% ROAS while still losing money on every order. POAS (Profit on Ad Spend) replaces revenue with actual gross profit in the numerator, giving Google’s Smart Bidding algorithm a signal that reflects real margin. Switching from ROAS to POAS is the single most impactful change an ecommerce brand can make to stop optimizing for vanity and start optimizing for survival.

400%ROAS that looks healthy but can still produce negative profit when COGS, shipping, and fees are factored in
38%Average share of ecommerce revenue consumed by COGS, shipping, discounts, and payment fees combined
3.2×Improvement in gross profit per campaign reported by brands that shifted Smart Bidding targets from tROAS to POAS signals
2.9%Typical payment processing fee that most ROAS calculations silently ignore, eroding margin on every transaction

Why High ROAS Loses Money: The Hidden Cost Stack

Imagine you sell a product for $100. Your Google Ads campaign generates $4 in revenue for every $1 spent — a clean 400% ROAS. Your agency sends a congratulatory email. But let’s peel back the numbers and see what actually happened on that $100 order.

The product cost you $42 to source (COGS). Shipping and fulfillment ran $9. You offered a 10% welcome discount, so you only collected $90 in revenue, not $100. Stripe or PayPal took 2.9% plus $0.30, leaving you with roughly $87.30 after fees. Your ad spend attribution on that order was $22.50 (that’s your $90 revenue divided by a 400% ROAS). Add it all up: $42 + $9 + $22.50 + $2.60 in payment fees = $76.10 in total costs against $90 in collected revenue. You netted $13.90 — a 15.4% margin before any overhead, returns, or customer service costs.

Now imagine your return rate is 12%, which is modest for apparel or electronics. Suddenly that margin evaporates entirely. This is the brutal arithmetic that a 400% ROAS target conceals. The metric was never designed to reflect profit; it was designed to measure media efficiency. Using it as a proxy for business health is like navigating by your speedometer instead of your fuel gauge.

The Four Cost Layers ROAS Ignores

Cost of Goods Sold (COGS) is the most obvious omission. For physical products, COGS typically runs between 25% and 55% of selling price depending on category. When Google’s Smart Bidding algorithm optimizes toward revenue conversion value, it has no idea whether it’s selling a $100 item with a $20 cost or a $100 item with an $80 cost. It treats both identically.

Shipping and fulfillment costs are the second silent killer. Brands offering free shipping absorb these costs entirely, yet they rarely subtract them from the conversion value fed to Google. A $15 shipping cost on a $60 order represents 25% of revenue — a massive distortion in the signal Google receives.

Discount and promotion mechanics create a third layer of distortion. If a customer uses a 20% off coupon, the actual revenue collected is 20% lower than the listed price. Most Google Ads setups fire the conversion tag at the listed price or the pre-discount cart value, inflating ROAS artificially.

Payment processing fees — typically 2.9% plus a fixed fee for card transactions — compound across thousands of orders. At scale, this represents tens of thousands of dollars annually that never appear in any ROAS calculation but absolutely appear on your P&L.

POAS Optimization: Redefining the KPI Around Actual Margin

Profit on Ad Spend (POAS) replaces the revenue numerator in the ROAS formula with gross profit. Instead of Revenue ÷ Ad Spend, you calculate Gross Profit ÷ Ad Spend. This single substitution transforms the metric from a media efficiency score into a true profitability indicator.

For Google Ads specifically, POAS optimization means passing profit-adjusted conversion values to Google’s Smart Bidding instead of raw revenue. When you tell Google that a $100 sale is worth $28 in gross profit (after COGS, shipping, and fees), the algorithm learns to chase profitable orders rather than high-revenue orders. Over time, this reshapes your campaign’s entire bidding behavior — pulling budget away from low-margin product categories and toward high-margin ones, even if both carry similar price tags.

This is the core insight that separates profit-first ad optimization from traditional performance marketing: Google’s algorithm is only as smart as the signal you give it. Feed it revenue, and it optimizes for revenue. Feed it profit, and it optimizes for profit. The technology hasn’t changed; the input has.

True Profit Google Ads Campaigns Require Dynamic Value Passing

Static profit margins passed as a fixed percentage are a starting point, but they miss the dynamic reality of ecommerce. A single SKU can have different effective margins depending on whether it was purchased at full price, with a discount code, bundled with a low-margin accessory, or shipped via express delivery. True profit Google Ads campaigns require order-level margin calculation passed in real time at the moment of conversion.

WootrackApp handles this by pulling live cost data — COGS per SKU, actual shipping costs from your fulfillment provider, discount amounts from the order object, and payment fee rates — and computing gross profit at the order level before passing the value to Google’s conversion API. The result is a conversion value stream that reflects what you actually earned, not what the customer’s cart said before deductions.

ROAS vs POAS: How the two metrics perform across key decision-making dimensions for ecommerce Google Ads

ROAS (Return on Ad Spend) POAS (Profit on Ad Spend)
Measures revenue generated per ad dollar Measures gross profit generated per ad dollar
Ignores COGS, shipping, discounts, payment fees Incorporates all variable costs at order level
Can show 400% while business loses money Accurately reflects whether campaigns are profitable
Trains Smart Bidding to maximize revenue Trains Smart Bidding to maximize actual margin
Treats a $100 sale the same regardless of cost Differentiates a $100 sale with $20 cost vs $80 cost
Easy to game with high-revenue, low-margin products Resistant to margin dilution by product mix shifts
Standard metric in most agency reporting Emerging standard for profit-first ecommerce brands

Migration Path: Moving From ROAS Reporting to POAS Optimization

  1. 1
    Audit your current conversion value setup

    Pull a sample of 50 recent orders and manually calculate gross profit for each: subtract COGS, actual shipping cost, discount amount, and payment fees from collected revenue. Compare this to the conversion value Google recorded. In most accounts, the gap is 30–50%. This audit creates the business case for migration and establishes a baseline POAS to benchmark against.

  2. 2
    Map COGS and variable costs per SKU

    Work with your operations or finance team to assign a landed cost to every SKU in your catalog. Include supplier cost, inbound freight, and any import duties. For shipping, use average fulfillment cost per order weight tier rather than a flat estimate. This data becomes the foundation of your profit calculation engine.

  3. 3
    Implement order-level profit calculation at conversion

    Connect your store’s order data to a profit calculation layer that fires at the moment of purchase. WootrackApp integrates directly with WooCommerce to pull the order object — including applied discounts, selected shipping method, and item quantities — and computes gross profit before sending the value to Google’s Conversion API via enhanced conversions.

  4. 4
    Switch Smart Bidding targets from tROAS to profit-based values

    Once profit-adjusted conversion values are flowing into Google Ads for at least two to three weeks, update your target ROAS (tROAS) strategy. Because your conversion values now represent profit rather than revenue, your tROAS target will look numerically lower — a 200% tROAS on profit values is equivalent to a very healthy margin target. Brief your team and any agency partners on this recalibration to avoid alarm at the apparent drop in ROAS figures.

  5. 5
    Monitor POAS by campaign, product group, and audience segment

    Build a reporting layer that surfaces POAS alongside traditional metrics. Look for campaigns where ROAS is high but POAS is low — these are your margin-destroying campaigns that looked healthy under the old framework. Reallocate budget from low-POAS campaigns to high-POAS ones, and use product-level POAS data to inform your Google Shopping feed prioritization.

Don't brief your agency on POAS without this context When you switch to profit-adjusted conversion values, your reported ROAS will drop significantly — not because performance declined, but because the numerator shrank from revenue to profit. Without clear communication, agencies may panic and make bidding changes that undo your migration. Share the before/after POAS numbers alongside ROAS to maintain alignment.

Google Ads Profitability Ecommerce Readiness Checklist

  • COGS is documented at the SKU level and updated when supplier costs change
  • Shipping costs are tracked per order or per weight tier, not estimated as a flat percentage
  • Discount and coupon amounts are captured in the order object and subtracted from conversion value
  • Payment processing fees are calculated per transaction using actual rate plus fixed fee
  • Conversion values passed to Google reflect post-discount, post-fee collected revenue at minimum
  • Smart Bidding campaigns have at least 30 profit-adjusted conversions per month before switching targets
  • A reporting dashboard shows POAS broken down by campaign, product category, and customer segment
  • Finance and marketing teams share a single definition of gross profit for alignment on targets
  • Return and refund rates are monitored and factored into POAS benchmarks by product category
  • Agency or internal team has been briefed that ROAS figures will appear lower post-migration

Frequently asked questions

What is the difference between profit on ad spend vs return on ad spend?

Return on Ad Spend (ROAS) divides total revenue by ad spend, measuring how much revenue each ad dollar generates. Profit on Ad Spend (POAS) divides gross profit — revenue minus COGS, shipping, discounts, and payment fees — by ad spend. POAS tells you whether your campaigns are actually making money; ROAS only tells you whether they’re generating revenue, which is a meaningless metric if your costs consume most of that revenue.

Can a 400% ROAS campaign really be unprofitable?

Yes, and it’s more common than most marketers realize. If your product has a 50% COGS, 10% shipping cost, and you’re offering 15% discounts while absorbing 3% payment fees, your effective margin before ad spend is roughly 22%. A 400% ROAS means you spent 25 cents in ads per dollar of revenue. On a $100 order, that’s $25 in ad spend against $22 in available margin — a net loss of $3 per order before overhead, returns, or customer service costs.

How does POAS optimization change how Google's Smart Bidding works?

Google’s Smart Bidding algorithms optimize toward the conversion value you provide. When you pass revenue as the conversion value, the algorithm learns to maximize revenue. When you pass gross profit instead, it learns to maximize profit — bidding more aggressively on products and audiences that generate high-margin orders, and pulling back on those that generate high-revenue but low-margin outcomes. The algorithm itself doesn’t change; the quality of the signal you feed it does.

How long does it take to see results after switching to POAS-based bidding?

Smart Bidding typically needs two to four weeks to recalibrate after a significant change in conversion values. During this learning period, you may see fluctuations in spend efficiency. Most brands report stabilization within three to five weeks, with measurable improvements in gross profit per campaign visible within six to eight weeks of the switch. The key is ensuring sufficient conversion volume — at least 30 profit-adjusted conversions per campaign per month — to give the algorithm enough data to learn from.

Does WootrackApp work with all WooCommerce store configurations?

WootrackApp is built specifically for WooCommerce and integrates with the native order management system to pull real-time order data including line items, applied coupons, shipping method costs, and order totals. It supports variable products, bundled products, and subscription orders. COGS can be set at the product or variation level, and shipping cost mapping supports both flat-rate and carrier-calculated methods. The profit calculation fires server-side via Google’s Conversion API, making it resilient to browser-based tracking limitations.

What POAS target should I set when I start optimizing for profit instead of ROAS?

A POAS of 1.0 means you’re breaking even on ad spend relative to gross profit — every dollar of profit is consumed by ads. Most ecommerce brands target a POAS between 2.0 and 4.0, meaning they generate two to four dollars of gross profit for every dollar spent on ads. Your specific target depends on your overhead structure and growth objectives. Start by calculating your current POAS using historical order data, then set a target 20–30% above that baseline as your initial optimization goal.

Leave a Reply

Your email address will not be published. Required fields are marked *