Your Google Ads dashboard says 5x ROAS. Your Meta dashboard says 4.2x ROAS. Your TikTok dashboard says 3.8x ROAS.
Add those up and you're claiming 13x return on a budget that generated maybe 3x in actual revenue.
This is the measurement problem disguised as a performance problem. And it's endemic in B2B Google Ads.
The ROAS number your campaigns report isn't fabricated — it's just measuring something that isn't what you think it's measuring. Three structural problems explain why, and they're fixable if you know where to look.
The Attribution Window Mismatch
Most Google Ads accounts default to a 30-day click attribution window. That means any conversion happening within 30 days of a click gets attributed to that click.
The problem: most B2B conversion cycles are 15–20 days from first click to qualified lead. Not 30. So when you run reports at day 31, you're counting some conversions twice — once in the window that just closed, once leaking into the next reporting period.
It gets worse. If your sales cycle runs 45 days from initial inquiry to signed contract, your Google Ads window captures the form fill but misses whether that lead ever became revenue. You're optimising Google's algorithm toward an action (form submission) that may have nothing to do with the outcome you actually care about (a signed client).
The fix is a two-part audit. First, pull your conversion lag report inside Google Ads — it's under Attribution, then Conversion Lag. This shows the actual distribution of how many days pass between a click and a conversion in your account. If the peak is at day 17 but you're running a 30-day window, you're overcounting.
Second, check whether your conversion actions are tied to actual revenue or just to events. If your primary conversion is "form submitted" and you have no CRM feedback loop, Google's Smart Bidding is training itself to find more people who fill forms — not more people who become clients.
Cross-Platform Double-Counting
Here's where the maths breaks completely.
Google uses a 30-day click / 1-day view attribution window by default. Meta uses 7-day click / 1-day view. TikTok lets you configure up to 28-day click attribution.
A B2B buyer sees a Google ad, clicks through but doesn't convert. Three days later they see a LinkedIn post. A week later they search your brand name and convert via Google branded search. Who gets the credit?
Every platform gets the credit. All three report a conversion. You look at your combined platform dashboard and see 530 conversions. Your CRM shows 300 won opportunities. The gap isn't fraud — it's self-serving scorecard accounting.
Google Search typically reports the highest ROAS numbers (4.5–6x is a common B2B benchmark). A meaningful portion of that figure is demand harvesting: capturing people who were going to find you anyway via organic search, brand awareness from other channels, or word-of-mouth referral. Search intercepts an already-decided buyer at the bottom of a funnel it didn't build. That's not 6x return — it's 6x credit-claiming.
This doesn't mean Google Ads doesn't work. It means the number you're looking at overstates the incremental contribution. An incrementality audit — running a holdout test where a portion of your audience is excluded from ads and comparing their conversion rate against the exposed group — is the only way to measure what Google Ads actually adds versus what it harvests.
The Brand Tax
Branded keyword campaigns are the stealth ROAS inflator almost nobody talks about.
When you bid on your own brand name, you're largely capturing traffic that would have found you anyway via organic search. The conversion rate is high (they searched for you by name — they already want to talk to you). The attributed ROAS is excellent. The incremental value is often close to zero.
This isn't to say you should never run branded campaigns — competitor conquest, SERP control, and sitelink real estate are legitimate reasons. But when branded campaigns account for 30–40% of your Google Ads budget and you're reporting an account-level ROAS without separating branded from non-branded performance, you're mixing two completely different things.
The structural fix: create campaign-level separation between branded, generic intent, and competitor terms. Never report blended ROAS that crosses these buckets. A B2B account running branded + generic together at 5x ROAS might be running 2.8x on generic (the traffic that actually required the ad budget to find you) and 9x on branded (traffic you'd have had for free).
Which number should you be making decisions from?
What a Real B2B Attribution Audit Looks Like
Four questions to answer before trusting any ROAS number:
1. What conversion action is this attributed to?
Form fill, demo request, phone call, or offline CRM data? Form fills from generic campaigns in B2B convert to revenue at roughly 5–20% depending on industry and offer. If you're claiming 5x ROAS on form fills, your actual revenue ROAS might be under 1x.
2. Does your attribution window match your conversion lag?
Pull the lag report. If 80% of your conversions happen within 14 days of a click, a 30-day window is overstating performance in any reporting period where the account is scaling. The longer your cycle, the more ghost conversions appear.
3. Are branded and non-branded campaigns separated?
If not, you cannot make intelligent budget allocation decisions. Separate them before you optimise anything.
4. Is any offline data feeding back into the system?
For B2B, form fill → qualified lead → proposal sent → won deal is four steps. If only the first step is tracked, Smart Bidding is optimising for the wrong signal. Server-side conversion tracking with CRM integration (HubSpot, Salesforce, or equivalent) closes the loop. Without it, you're asking Google to find more form-fillers, not more clients.
The accounts that get this right — clean signal, CRM feedback, separated campaign types, matched attribution windows — consistently outperform accounts with higher budgets but broken measurement. The algorithm is only as smart as the data you give it.
The Harder Question
If you fix all four of these and your ROAS number comes down significantly, that's not a failure. That's clarity.
A business making decisions on accurate data is in a materially better position than one with a flattering number it doesn't believe. Most of the B2B founders we work with already suspect their ROAS figures are inflated — they just haven't had a framework to locate the problem.
The good news: fixing measurement infrastructure doesn't require more budget. It requires CRM integration, server-side tracking, campaign restructuring, and the discipline to report branded and non-branded separately. None of that is expensive. All of it changes what decisions you're able to make.
Certain agencies specialise in scaling accounts and can offer the key insights and expertise required to expedite results for businesses looking to do so. Actualyse helps you build high-precision B2B Google Ads frameworks that optimize for revenue, not just clicks.
Frequently Asked Questions
What is a good ROAS for B2B Google Ads?
For non-branded, generic intent campaigns in B2B, a healthy range is 3–5x revenue ROAS — measured against actual won deals, not form fills. Branded campaign ROAS will typically be much higher (7–12x is common) because you're capturing already-decided buyers. Never blend these numbers and call it account performance.
Why does my Google Ads ROAS look higher than my actual business revenue growth?
Usually one of three causes: attribution window overcounting (30-day window catching conversions that should belong to a different period), cross-platform double attribution (Google, Meta, and LinkedIn all claiming the same conversion), or brand campaign inflation (capturing organic demand that didn't require ad spend). Run a conversion lag report and separate branded from non-branded to locate the gap quickly.
Does server-side conversion tracking actually improve Google Ads performance?
Yes — and the impact in B2B specifically is significant. Client-side tracking (via browser pixels) loses 20–30% of conversions to ad blockers and cookie restrictions. Server-side tracking captures these, gives Smart Bidding cleaner signal, and — when integrated with CRM data — lets you feed actual revenue outcomes back into the algorithm rather than just form completions.
How do I know if my Google Ads is generating incremental revenue or just claiming credit for it?
The definitive answer requires an incrementality test: exclude a statistically significant portion of your target audience from seeing ads for 4–6 weeks, then compare their conversion rate to the exposed group. The difference is your incremental lift. Simpler proxy: run a 7-day attribution window alongside your 30-day window and compare. The gap reveals how much of your reported performance is real-time conversion vs. extended-window credit accumulation.
Actualyse builds high-precision B2B Google Ads frameworks that optimize for revenue, not just clicks. Request a Measurement Audit for your business today.




