Paid Media

Why Your Google Ads ROAS Is Lying to You

Platform-reported ROAS and actual revenue regularly diverge by 20–40%. Here is exactly how Google inflates the number, how to measure the real gap, and what to do about it.

7 min read
By SearchTuners

You open Google Ads. ROAS is 4.2×. You open your Stripe dashboard. Revenue is up 11% but ad spend is up 38%. The numbers do not add up — and they rarely do. Platform-reported ROAS is one of the most consistently misleading metrics in performance marketing, not because Google is lying exactly, but because it is counting correctly by its own rules, which are very different from yours.

The Three Ways Google Inflates ROAS

1. View-Through Conversions

By default, Google counts a conversion if someone saw your display or YouTube ad — never clicked it — and then converted within 30 days through any channel. That organic search conversion, that direct visit from a returning customer who vaguely remembers seeing your ad three weeks ago? Google attributes it. The setting is called "view-through conversion window" and it is almost always enabled by default. For display-heavy accounts, this can inflate reported conversions by 15–25% before you touch anything else.

2. Cross-Device Attribution Without Cross-Device Truth

A user clicks your search ad on mobile at 8am. They do not buy. Later that day, they open a laptop and complete the purchase directly. Google — if they are logged into a Google account on both devices — connects the dots and attributes the conversion to the original click. This is actually good attribution when it works. The problem is when it does not: same person, different devices, not logged in, and both Google and Meta each claim the conversion independently. You get one sale counted twice across platforms. Two dashboards showing 4× ROAS. One actual transaction.

3. Conversion Window Mismatch

If your average sales cycle is 45 days but your conversion window is 30 days, you are systematically under-attributing. Conversely, if your average customer buys within 48 hours but your window is 90 days, you are crediting campaigns for conversions that happened weeks after any plausible connection to the ad. Most accounts run the default 30-day click window regardless of their actual business. The mismatch compounds over time: campaigns that look like they are underperforming get defunded, campaigns that look strong get scaled, and the actual driver of revenue sits somewhere in the middle getting average budget.

In accounts we audit, the gap between Google-reported ROAS and CRM-verified revenue ROAS averages 28%. The range is wide: some accounts are off by 12%, others by more than 50%. The size of the gap usually correlates with how much display spend is running and how long the sales cycle is.

How to Measure Your Actual Gap

This is a three-number test. Pull each of the following for the same 90-day period:

  1. 1Google Ads: total reported conversions and reported conversion value
  2. 2GA4: transactions attributed to paid search (exclude other channels)
  3. 3Your CRM or payment processor: actual revenue from customers whose first touchpoint was a paid search ad

The ratio between number 1 and number 3 is your inflation factor. If Google says $420,000 in conversion value and your CRM shows $290,000 in actual revenue attributable to paid search, your inflation factor is 1.45 — Google is overstating by 45%. That 4.2× ROAS is actually 2.9×.

Most accounts do not run this test because pulling number three — CRM-verified, channel-attributed revenue — requires actual work. It requires that your CRM tracks acquisition source. It requires that you trust your GA4 implementation enough to use it as a check. Neither of these is guaranteed, which is exactly why the inflated number is the one that gets used in board decks.

28%
Average ROAS inflation
Google-reported vs. CRM-verified, across audited accounts
45 days
Average sales cycle
B2B; most accounts run 30-day conversion windows regardless
Platform overlap rate
Purchases counted by both Google and Meta in multi-channel accounts

What to Do About It

Switch to Server-Side Conversion Tracking

Client-side tracking via the Google tag fires from the browser. It is blocked by ad blockers, disrupted by iOS restrictions, and unreliable on slow connections. Server-side tracking fires from your server after a confirmed transaction, sending the GCLID (Google Click Identifier) with the actual transaction value from your payment processor. You get cleaner signals and Google's Smart Bidding gets better data to optimize on. The setup requires technical work — typically a few days of engineering — but the accuracy improvement is permanent.

Set Conversion Windows to Match Your Sales Cycle

If you are B2C e-commerce with an impulse purchase model, a 7-day click window is probably right. If you are B2B SaaS where demos take three weeks to convert, 60–90 days is more accurate. Pull your CRM data: what is the median time from first ad touch to closed revenue? Set your conversion window to that number, not whatever Google defaulted to. This alone can significantly change which campaigns look profitable.

Disable View-Through Conversions (or Create Separate Segments)

If you are not running significant display or video, disable view-through conversions entirely. If you are running display and YouTube, create a separate conversion action for view-throughs and exclude it from your primary "conversions" column. Use it as a supplementary signal, not as a bidding target. Your bid strategy should optimize on actions that have a direct causal connection to ad spend.

Use GA4 as a Parallel Source of Truth

GA4 has its own attribution model (data-driven by default) that often differs from Google Ads' attribution. Neither is perfect, but comparing them weekly gives you a useful range. If GA4 consistently shows significantly fewer conversions than Google Ads for the same campaigns, something is off — and you now have a reason to investigate rather than just accept the dashboard number.

The uncomfortable truth: most performance reviews are built on platform-reported ROAS because it is the easiest number to pull. If you want to actually optimize to revenue — not to Google's model of what produced revenue — the comparison test above is where you start. Do it once, and you will never look at a ROAS dashboard the same way again.