Digital marketing and web development, priced up front
0
Click to skip
HomeServicesShopAboutBlogContact
Log inSee prices
See prices
Next: Want it done for you?
Paid ads

Google Ads ROAS: how to calculate it correctly

Most reported ROAS numbers are wrong. The dashboard counts brand traffic as paid acquisition, ignores returns, and never sees the margin. Here is the math that actually maps to profit.

23 May 2026·Updated 25 May 2026·4 min read·MindScrollers

In short

Reported ROAS overstates real return by 20-60% on most ecommerce accounts. The three fixes: exclude branded traffic, subtract returns and refunds, and report on contribution margin rather than gross revenue. Once corrected, most accounts need to be re-bid to maintain real profitability.

Most reported ROAS numbers are wrong. Not by a little. By 20-60%. We have audited dozens of accounts where the dashboard reported 4x and the actual contribution-margin ROAS was somewhere between 1.4x and 2.1x.

This is not a Google bug. It is a chain of small reporting choices, each one defensible in isolation, that compound into a number nobody should be making decisions on. Here is the math, and how to fix it.

What the dashboard reports

Google Ads' default "Conv. value / cost" column is gross revenue attributed to a click, divided by ad spend. Three things are wrong with that number for almost every account:

  1. Branded traffic is included as acquisition. Someone Googles your brand name, clicks the paid ad above the organic result, converts. The dashboard counts that as paid acquisition, even though the user would have converted via the organic listing right below for free.
  2. Returns and refunds are not subtracted. Conv. value is what was checkout-completed, not what was actually delivered and kept. For ecommerce, returns can be 5-30% of gross.
  3. It is gross revenue, not margin. A 5x ROAS on a 20% gross margin product makes no money. A 2x ROAS on an 80% gross margin product is excellent.

Fix the three, then re-bid the account against the corrected number.

Fix 1: exclude branded traffic

The cheap fix is to add a brand-only negative keyword list to every non-brand campaign. The careful fix is to separate brand search into its own campaign and report on it separately.

  • Create a Brand campaign that bids on exact-match variants of your brand name and any common misspellings.
  • Add every variant as a negative keyword on every other campaign, including Performance Max via brand exclusions.
  • In your reporting, subtract the Brand campaign's revenue and spend from the account-wide ROAS calculation. Report the rest as "acquisition ROAS" and the brand campaign as "brand defence" with its own math.

Brand defence is a real cost: if you do not bid on your brand, a competitor will. But it is a different problem from acquisition, and mixing them produces nonsense.

Fix 2: subtract returns and refunds

Most ecommerce stores have a returns rate they ignore because the dashboard does not surface it. The fix has two parts:

  1. Net revenue, not gross. Pull Shopify or WooCommerce data into a sheet, calculate net revenue by month (gross minus refunds minus discounts minus shipping refunds). This is what the ROAS calculation should use, not Conv. value.
  2. Offline conversion adjustments. Google Ads supports adjusting conversion values after the fact when a refund happens. Enable it, and pipe the refund data into the account so smart bidding optimises against net revenue rather than gross.

A 12% returns rate that nobody adjusts for inflates reported ROAS by exactly 12%. Compounded over a quarter of bid decisions, that is the difference between a profitable account and a slow bleed.

Fix 3: report on contribution margin

The number that matters is contribution margin per dollar of ad spend. The formula is:

Contribution Margin per Order = Net Revenue - COGS - Fulfilment Cost - Payment Processing
Contribution-Margin ROAS = (Contribution Margin × Orders) / Ad Spend

This is the only ROAS that maps to profit. Everything else is a vanity metric, useful for sanity checks but not for bid decisions.

Build it into the dashboard:

  • Pull COGS and fulfilment cost into a sheet or a BI tool that updates monthly.
  • Calculate the per-order contribution margin for each SKU.
  • Multiply by orders attributed to each campaign.
  • Divide by spend.

Now you have a number you can act on.

What changes when ROAS is correct

We have run this exercise on dozens of accounts. The pattern is always the same:

  • The corrected number is 20-60% lower than the reported one.
  • One to three campaigns flip from "winning" to "losing" once branded traffic is stripped.
  • Smart Bidding strategies set against gross revenue need to be re-tuned against net contribution margin. Target ROAS becomes Target CPA-Margin in most cases, since CPA-Margin is easier to express as a bid signal.
  • The total account spend goes down by 15-25% in the first two months, and the absolute profit goes up.

The last point is the surprising one. Most teams hear "your real ROAS is lower than you thought" and assume that means cutting budget. In practice the right response is to cut the unprofitable campaigns aggressively, then scale the profitable ones harder with the freed-up budget. Account spend usually drops first, then climbs to higher than before within a quarter.

The reporting cadence

Daily ROAS is noise on most accounts. Weekly is barely signal. Monthly is the right cadence for bid decisions, with weekly reviews for trend-spotting and creative tests.

The monthly report should include:

  • Gross ROAS (the dashboard number, for continuity)
  • Net ROAS (after returns and refunds)
  • Contribution-Margin ROAS (the number that matters)
  • The delta between Gross and Contribution-Margin ROAS as a single percentage
  • Brand search spend and revenue, isolated from acquisition

A team that reads this report every month makes different bid decisions from one that reads the dashboard.

What this looks like with us

Google Ads management at MindScrollers starts with a margin model and a corrected ROAS baseline in week one. We do not change a single bid before the math is right.

If you want the corrected number rather than the method, the $990 automation audit covers the account: a corrected ROAS calculation, the brand against acquisition split, and the bid changes that follow from it. Published price, no call.

Questions

What readers ask.

What is a 'good' ROAS in Google Ads?

There is no universal number. The right ROAS is the one where revenue minus all variable costs, including the ad spend itself, leaves a contribution margin you are happy with. For a 35% gross margin business, breakeven ROAS is 2.86. For an 80% software business, breakeven is 1.25.

Should we exclude brand search from Google Ads entirely?

Usually no. The right approach is to run brand search in its own campaign with a tight budget, exclude its conversions from the rest of the account's optimization, and measure its incrementality separately. Brand search has different math from acquisition search.

Does Performance Max count branded traffic as new acquisition?

By default yes, and it is the single biggest source of inflated PMax ROAS numbers. Use the brand exclusion settings in PMax, plus a brand-only negative keyword list, to keep PMax out of branded traffic.

More notes.

All notes
  • Content repurposing: one pillar piece, thirty assetsHow to turn a single 1500-word blog post into a month of content across blog, social, email, video, and ads, without quality dropping.
  • WooCommerce stock sync that scales past 100 orders per dayWhen does WooCommerce stock sync break? Around 80-120 orders a day for most stores. Here is the architecture that survives Black Friday.
  • Core Web Vitals: what changed in 2026 and how to fix itINP replaced FID, the LCP threshold tightened, and Google now weighs Vitals more heavily in mobile ranking. A practical 2026 fix list.

Digital marketing and web development: Meta and Google Ads, WordPress and WooCommerce builds, SEO, content and workflow automation. Every price published, nothing behind a call.

Company

MINDSCROLLERS LLCA Wyoming limited liability company30 North Gould Street, Sheridan, WY 82801, United Statesinfo@mindscrollers.com+30 693 115 1063

Work

  • Services
  • Google and Meta ads
  • Automation
  • Live builds

Studio

  • About
  • Shop
  • Blog
  • Contact

Topics

  • Digital marketing
  • WordPress
  • SEO
  • Paid ads
  • WooCommerce automation
  • Content

Legal

  • Privacy policy
  • Terms of service
  • Refund policy
  • RSS feed

© 2026 MINDSCROLLERS LLC. All rights reserved.

FacebookInstagramTikTok