Why Your B2B SaaS Google Ads Look Profitable But Don’t Create Pipeline
Two people look at the same Google Ads account in the same week. Marketing sees a $90 cost per lead and a healthy trend. Sales says they have not had a decent conversation from paid in a month. Finance cannot find the revenue.
Everyone is reading real data. The numbers disagree because Google Ads and your CRM count different things, on different dates, over different windows. Until you reconcile those three differences, you cannot tell whether you have a performance problem or a reporting problem, and the two need completely different responses.
This page is about telling them apart.
Quick answer
Three mechanical differences explain most of the gap:
| Google Ads says | Your CRM says | |
|---|---|---|
| Which date | Conversions are reported on the date of the click, not the date the conversion happened | Everything is dated when it happened |
| How long it looks | A conversion window of 30 days by default, 90 days at most | However long your sales cycle actually is |
| Which cohort | Everything that came from clicks in this period | Everything created in this period, whatever drove it |
So a January click that becomes a March deal appears in January in Google Ads, in March in your CRM, and in neither if your sales cycle runs past the 90 day window.
None of that means paid is failing. It means your two reports are not answering the same question. Reconcile them first, then judge the channel.
Key takeaways
- Google’s own documentation states that Google Ads “reports conversions from the date and time of the click that led to the successful action.” Google Analytics, by contrast, records it on the day it happened.
- This is why a past month’s conversion count keeps rising for weeks after the month ends, and why any report you ran early understated performance.
- The click-through conversion window defaults to 30 days and tops out at 90 days depending on the conversion source. Google recommends at least 7 days.
- If your sales cycle is longer than 90 days, Google Ads structurally cannot see your closed deals. That is a measurement limit, not a performance result.
- Comparing “spend this quarter” to “pipeline created this quarter” compares two different cohorts. For a 90 day cycle, this quarter’s pipeline came from last quarter’s spend.
- The fix is cohort reporting: follow one month’s clicks forward, rather than comparing two columns from the same calendar month.
Difference 1: Google Ads dates conversions to the click
This is the single most misunderstood thing in paid reporting, and it is documented plainly. Google Ads reports a conversion against the date and time of the click that produced it. Google Analytics records it on the day it occurred.
Two consequences follow, and both matter.
Your recent numbers are always understated. A campaign’s last 30 days will keep improving for weeks, because conversions from those clicks have not happened yet. Judge a month in its first week and you will conclude it failed. In B2B SaaS, where the lag between click and qualified conversation is routinely weeks, this is severe enough to cause teams to pause working campaigns.
Your historical numbers keep moving. The report you showed the board in April is not the report that URL produces in July. If someone questions why the figures changed, this is why, and it is worth explaining before they ask.
If your client wants to see conversions dated to when they actually happened, use the conversions-by-conversion-time view instead. It answers “what happened in March” rather than “what did March’s clicks eventually produce.” Both are valid. Pick one per report and label it.
Difference 2: the conversion window may be shorter than your sales cycle
The click-through conversion window defaults to 30 days. Depending on the conversion source you can set it between 1 and 90 days, and Google recommends at least 7 because longer windows give a richer set of conversion data. Changes apply going forward only, so lengthening a window does not retroactively recover conversions you missed.
Now line that up against reality:
| Your sales cycle | Visible to Google Ads? |
|---|---|
| 30 days | Yes, within the default |
| 60 days | Yes, if you extended the window |
| 90 days | Yes, at the maximum setting |
| 120 days | No |
| 180 days | No |
For a large share of B2B SaaS, closed-won is simply outside the window. Your ad platform is not reporting the thing you are judging it on, and never could.
That is not a reason to give up on measurement. It is a reason to optimise and report on the deepest stage that lands inside the window, usually a qualified lead or an opportunity, and to track revenue separately in the CRM.
Two practical steps:
- Set your click-through window to the longest your conversion source allows, usually 90 days, unless you have a specific reason not to.
- Work out your actual median lag from click to SQL. If it exceeds the window, you have found the real reason the dashboards disagree.
Difference 3: you are comparing different cohorts
This one causes more bad decisions than the other two combined, because it survives even after you fix the tracking.
Take a campaign at steady state: $30,000 a month in spend, 300 leads, 20 percent become SQLs, 25 percent of those close, with a 90 day cycle.
| Metric | Value |
|---|---|
| Cost per lead | $100 |
| Cost per SQL | $500 |
| Media cost per closed deal | $2,000 |
Now look at month one of that campaign, reported two ways:
| Report | What it shows | What people conclude |
|---|---|---|
| Google Ads, click-dated | 300 leads at $100 each | ”This is working” |
| CRM, close-dated | 0 closed deals | ”This is a disaster” |
Both are accurate. Month one’s clicks close in month four. Any comparison of this month’s spend against this month’s closed revenue will be wrong for as long as your sales cycle lasts, and it will be wrong in whichever direction your spend has been trending.
The fix is cohort reporting. Pick a month of spend, then follow that cohort forward: how many leads it produced, how many became SQLs, how many closed, and over what period. Compare month-on-month cohorts to each other, not to the calendar.
That is the only view that answers “is paid creating pipeline,” and it needs nothing more exotic than a source field on the CRM record and a bit of patience.
The five numbers that settle it
Once you are comparing cohorts rather than calendar columns, five numbers tell you whether paid is working. Nothing else is needed for the decision.
| Number | How to get it | What it tells you |
|---|---|---|
| Cost per SQL | Cohort spend divided by SQLs from that cohort | The real efficiency number. Replaces cost per lead entirely |
| Lead to SQL rate, paid only | SQLs divided by leads, for paid traffic alone | Whether the traffic is the right people. Compare to your other channels |
| Median days click to SQL | From CRM timestamps | Tells you your reporting lag, and whether your conversion window is long enough |
| Media cost per closed deal | Cohort spend divided by closed deals from that cohort | Compare against what your ACV and gross margin can support |
| Pipeline sourced per pound of spend | Opportunity value from the cohort divided by its spend | The number finance will actually accept |
If cost per SQL is stable or falling and media cost per closed deal sits well inside what your ACV supports, paid is working and the dashboards were the problem. If cost per lead is falling while cost per SQL rises, the traffic quality is degrading and you have a real problem.
That second pattern, cheap leads and expensive SQLs at the same time, is the clearest signal in paid media that something is genuinely wrong rather than merely mis-reported.
How to report this to finance and the board
The reason these conversations go badly is usually that marketing reports platform metrics and finance thinks in cohorts and cash. Translate before you present.
| Do not lead with | Lead with instead |
|---|---|
| Conversions | SQLs from the cohort |
| Cost per lead | Cost per SQL and media cost per closed deal |
| ROAS from the ad platform | Pipeline sourced per pound of spend, from the CRM |
| Impressions, CTR, quality score | Nothing. These are diagnostics, not results |
Three things worth saying out loud in the meeting, because they pre-empt the awkward questions:
- “These figures will rise for several more weeks.” Explain click-dating once and you will never have to defend a changed number again.
- “This quarter’s pipeline came from last quarter’s spend.” State the lag explicitly so nobody compares the wrong columns.
- “Closed revenue is tracked in the CRM, not in Google Ads, because our sales cycle exceeds the platform’s 90 day window.” This turns a reporting gap into a stated methodology rather than a missing number.
If the gap turns out to be real
Suppose you reconcile everything and cost per SQL is genuinely bad. Then it is a performance problem, and the likely causes are narrow.
In our audit of 104 B2B SaaS accounts and $78.0M of spend, average waste was 34.0 percent, with the best managed quartile at 13.2 percent and the worst at 49.8 percent. Broad match took 47 percent of spend and produced 23 percent of SQLs. The two largest drivers were both measurement failures: broad match without negative keyword discipline, and Performance Max running without offline conversions imported from the CRM.
So the order of work is:
- Import offline conversions so the platform can see which leads qualified. Without this, bidding optimises toward cheap form fills no matter what else you fix.
- Audit match types by comparing each one’s share of spend to its share of SQLs.
- Then change bidding, once there is a quality signal to bid on.
Doing this in the other order is the most common way teams spend three months and land back where they started.
Frequently Asked Questions
Q1. Why do my Google Ads conversions not match my CRM?
Mostly because of dating. Google Ads reports a conversion against the date of the click that produced it, while your CRM dates everything when it happened. Add a conversion window that may be shorter than your sales cycle, and the two reports end up describing different things.
Q2. Does Google Ads report conversions on the click date or the conversion date?
The click date. Google’s documentation states that Google Ads reports conversions from the date and time of the click that led to the action, whereas Google Analytics records it on the day it occurred. This is why a past period’s conversion count keeps rising after the period ends.
Q3. How long is the Google Ads conversion window?
The click-through window defaults to 30 days and can be set between 1 and 90 days depending on the conversion source. Google recommends at least 7 days. Changes apply only to future conversions, so extending the window does not recover past ones.
Q4. What if my sales cycle is longer than 90 days?
Then closed-won is outside what Google Ads can observe, and you should stop expecting to see it there. Optimise and report on the deepest stage inside the window, usually SQL or opportunity created, and track revenue in the CRM as a separate cohort view.
Q5. Which Google Ads metrics matter most for a SaaS pipeline?
Cost per SQL, the paid-only lead to SQL rate, median days from click to SQL, media cost per closed deal, and pipeline sourced per pound of spend. Cost per lead, CTR and impression share are diagnostics, useful for finding problems but not for judging whether paid works.
Q6. How do I measure pipeline actually sourced from ads?
Use cohort reporting. Take one month of spend, tag the leads it produced, and follow that group forward through SQL, opportunity and closed won. Compare cohorts to each other rather than comparing this month’s spend to this month’s revenue, which are different groups of people.
Q7. How do I report on paid ads to my CFO?
In cohorts and in cash. Lead with cost per SQL and pipeline sourced per pound of spend, state the lag between spend and revenue explicitly, and warn that recent figures will keep rising because of click-dating. Platform metrics such as conversions and ROAS tend to create arguments rather than settle them.
Q8. My cost per lead is falling but sales says quality is worse. Who is right?
Both, and this is the one pattern that indicates a genuine problem rather than a reporting artefact. Falling cost per lead with a rising cost per SQL means the algorithm is finding cheaper, less qualified people. Check it by comparing each match type’s share of spend against its share of SQLs.
Q9. How can SaaS marketers avoid vanity metrics and focus on pipeline?
Change what gets reported, not just what gets measured. If cost per lead is the headline number in your monthly deck, that is the number your team will optimise toward, whatever anyone says about pipeline. Put cost per SQL at the top instead and the behaviour follows.
Q10. Why did last month’s Google Ads numbers change after I reported them?
Because conversions are credited back to the click date, so late conversions keep landing in earlier periods. This is expected behaviour, not a tracking fault. Say so before you present, and the change becomes a footnote instead of a credibility problem.
Q11. Should I use conversions or conversions by conversion time?
Use the click-dated conversions column when you want to know what a period’s clicks eventually produced, which is the right view for judging campaign efficiency. Use conversions by conversion time when you want to know what actually happened in a given period, which suits month-end reporting. Pick one per report and label which you used.
Q12. How long before I can tell whether a new campaign works?
At least one full sales cycle plus the lag, so for a 90 day cycle expect roughly four months before cost per closed deal means anything. You can read cost per SQL much sooner, typically within six to eight weeks, which is why SQL is the right judging metric for most B2B SaaS.
Want the reconciliation done for you?
We rebuild paid reporting for B2B SaaS so that the ad platform, the CRM and the board deck finally agree, then run the campaigns against cost per SQL and pipeline rather than clicks. If marketing and sales are currently describing the same quarter in opposite terms, that is the gap we close.
Related reading
- What happens when you optimise Google Ads for revenue, not form fills
- Send HubSpot offline conversions to every ad platform
- The real reason B2B SaaS paid ads attract junk, and the fix on each platform
- The B2B SaaS Google Ads audit checklist
- Are B2B ads getting too expensive in 2026?
- The B2B Google Ads Waste Report 2026
Sources
- Google Ads Help, how conversions are reported over time (“Google Ads reports conversions from the date and time of the click that led to the successful action”; Google Analytics records it on the day it happened): https://support.google.com/google-ads/answer/2375435
- Google Ads Help, conversion windows (30 day click-through default, 1 to 90 days depending on conversion source, minimum 7 days recommended, changes apply going forward only): https://support.google.com/google-ads/answer/3123169
- GrowthSpree, The 2026 B2B SaaS Google Ads Waste Report. 104 enterprise B2B SaaS accounts, $78.0M spend, calendar year 2025. Average waste 34.0 percent, best quartile 13.2 percent, worst quartile 49.8 percent; broad match 47 percent of spend and 23 percent of SQLs: https://www.growthspreeofficial.com/reports/b2b-google-ads-waste-report-2026
- The cohort figures in this article are calculated from the stated assumptions of $30,000 monthly spend, 300 leads, a 20 percent lead to SQL rate and a 25 percent SQL to won rate. Substitute your own.
About the author
Ishan Manchanda is Co-Founder at GrowthSpree, a B2B SaaS marketing agency and Google Partner and HubSpot Solutions Partner rated 4.9 on G2. GrowthSpree manages $60M+ in B2B SaaS ad spend across 300+ accounts, optimising paid media on cost per SQL and pipeline rather than clicks.