A £28,000 contract closes in June after the buyer first clicked an advert in February. The June dashboard divides that revenue by June’s spend and reports a strong return. February appears to have generated nothing.
Both conclusions are wrong.
B2B ROAS measurement fails when revenue is grouped by closing month while advertising cost is grouped by click month. The longer the sales cycle, the larger the distortion. Fixing it requires an architecture that preserves the connection between the original acquisition event, the resulting opportunity and the eventual revenue.
Why monthly reports break B2B ROAS measurement
Consumer ecommerce often compresses the click, purchase and payment into one session. B2B companies might have 60, 120 or 270 days between those events.
During that period:
- A prospect can return through direct traffic, organic search and email.
- Several people from the same company can submit forms.
- Sales can merge contacts or create a separate opportunity.
- Contract value can change during negotiation.
- The deal can move between CRM owners, regions or product lines.
- Browser identifiers can disappear long before revenue is recorded.
A platform dashboard cannot reconstruct that commercial history by itself. It sees advertising interactions and the conversion signals returned to it. It does not automatically know that three contacts belong to one £45,000 opportunity.
This is one reason headline Google Ads ROAS can misstate the real commercial return. The calculation may be arithmetically correct while its timing, revenue source or attribution basis is commercially useless.
The answer is not a more elaborate dashboard. It is a durable join between advertising data and the CRM.
The end-to-end B2B ROAS measurement architecture
A reliable system has five connected layers. Losing the identifier between any two layers creates unattributed revenue later.
1. Capture the acquisition event
When a prospect arrives, capture the available advertising identifiers, landing page, campaign parameters and timestamp. Store them in first-party fields rather than leaving them only in a browser cookie.
The form submission should create a persistent lead identifier. That identifier becomes the bridge between the web session and the CRM record.
Do not overwrite the original acquisition fields whenever the prospect returns. Store later interactions separately. Otherwise, an email visit in May can erase the paid-search origin recorded in February.
The practical implementation varies by consent setup, CRM and form stack. Our guide to B2B Google Ads conversion tracking architecture covers the tagging and offline-conversion mechanics in more detail.
2. Preserve identity inside the CRM
B2B identity exists at three levels:
- Person: the individual who submitted a form.
- Account: the company employing that person.
- Opportunity: the specific commercial deal.
Revenue belongs to the opportunity, not the form submission. A single opportunity might involve four contacts and seven tracked conversions, but it must produce only one closed-revenue record.
Create an explicit relationship between the opportunity and its originating acquisition record. Do not rely on company name matching in a spreadsheet. Names change, domains have variants and agencies sometimes submit enquiries on a client’s behalf.
Useful immutable fields include:
- Lead or acquisition ID
- CRM contact ID
- Account ID
- Opportunity ID
- Original acquisition timestamp
- Source platform and campaign ID
- Advertising click identifier, where available
- Currency
- Measurement-rule version
The rule version matters. If the company changes from total contract value to first-year contract value, historical records must show which definition produced each result.
3. Record commercial events consistently
CRM stages are operational labels. They are only useful for measurement when every salesperson applies them according to the same entry and exit rules.
For ROAS itself, the critical event is closed revenue. Store it as a structured number alongside the close date, contract term and currency. Free-text notes such as “£30k plus setup” are not measurement data.
A defensible default for recurring B2B contracts is net first-year contract revenue, excluding VAT, refunds and speculative renewals. If cancellations before onboarding are common, use collected revenue or apply a documented reversal when a contract fails.
Do not mix annual contract value for one deal, lifetime value for another and cash collected for a third. A precise formula applied consistently is more useful than an ambitious formula fed with incompatible numbers.
4. Send outcomes back to the advertising platform
The CRM should return eligible offline outcomes using the stored acquisition identifiers. This gives the platform evidence about which advertising interactions eventually produced commercial results.
Keep optimisation signals and financial reporting separate. The advertising system may need timely lifecycle events to learn, but the authoritative ROAS numerator should still come from the company’s agreed closed-revenue field.
This separation prevents a common failure: a CRM stage is assigned an invented monetary amount, then the platform’s “conversion value” is presented as actual revenue. That is a model, not booked business.
5. Build acquisition cohorts
Assign each eligible opportunity to the date of its original acquisition event. Then combine its eventual closed revenue with the advertising cost incurred by that cohort.
The core formula is simple:
Mature cohort ROAS = closed revenue attributed to the acquisition cohort ÷ advertising spend for that cohort
The reporting layer should retain both the acquisition date and close date. Acquisition date determines which spend created the return. Close date shows cash-flow timing and sales-cycle length.
Do not sum platform-reported return figures and call the result company ROAS. Each platform can apply its own attribution rules. The architecture should create one governed commercial record before broader channel comparisons are attempted.
Define the measurement contract before touching tags
Most measurement disputes are definition disputes disguised as tracking problems.
Write a one-page measurement contract covering:
- 1. Cost: Media spend only if the metric is called ROAS. Agency fees, production and sales costs belong in a separate fully loaded efficiency metric.
- 2. Revenue: Choose net first-year contract revenue, collected revenue or another auditable field. State what happens to setup fees, discounts, VAT, cancellations and renewals.
- 3. Eligibility: Define which opportunities can be attributed to paid acquisition.
- 4. Attribution anchor: Specify the acquisition event used to connect an opportunity to spend.
- 5. Maturity window: Set the point at which a cohort is considered sufficiently developed.
- 6. Currency: Define the exchange-rate source and conversion date.
- 7. Corrections: Document how reopened deals, refunds and CRM amendments revise previous results.
Use the observed sales-cycle distribution to set the maturity window. The average is a weak choice because a few fast deals can conceal a long tail. The 80th or 90th percentile from acquisition to close is usually more informative.
If 80% of paid-acquired wins close within 150 days, report cohorts at fixed checkpoints such as 30, 90, 150 and 210 days. Label immature cohorts clearly rather than pretending their early ROAS is final.
External comparisons should use the same discipline. Published ROAS benchmarks by industry are only meaningful after checking whether their cost basis, revenue definition and measurement horizon resemble yours.
A worked B2B ROAS measurement example
Consider a compliance software company with a typical sales cycle of 110 days.
Its January search campaign spends £20,000. The associated opportunities eventually produce four contracts:
| Close date | Net first-year revenue |
|---|---|
| 18 March | £15,000 |
| 24 April | £28,000 |
| 30 May | £22,000 |
| 12 July | £35,000 |
| Total | £100,000 |
The same cohort appears radically different as it matures:
- At roughly 60 days: £15,000 ÷ £20,000 = 0.75x ROAS
- At roughly 120 days: £65,000 ÷ £20,000 = 3.25x ROAS
- At roughly 180 days: £100,000 ÷ £20,000 = 5.00x ROAS
Nothing about January’s spend changed. The available revenue evidence changed.
A close-month report creates a different error. It might divide July’s £35,000 contract by £26,000 of July spend and report 1.35x. Yet the July campaign did not acquire that opportunity. January did.
The correct dashboard keeps January as the acquisition cohort, updates its cumulative revenue as deals close and shows its maturity age. July retains its own spend and will accumulate revenue from the opportunities it actually originated.
This timing discipline also changes how performance evidence should be read. Strong B2B campaign case studies with commercial outcomes should state the evaluation period and revenue basis, not merely the largest return visible in one month.
Operating the system without corrupting the answer
The architecture needs routine controls because CRM and tracking changes accumulate quietly.
Monitor four areas:
- Capture health: Has the proportion of eligible leads carrying acquisition identifiers dropped?
- Join health: How many attributed contacts fail to connect to an account or opportunity?
- Revenue integrity: Are closed-won records missing value, currency or contract term?
- Import health: Are outcome uploads accepted, rejected or duplicated?
Review cohort maturity monthly. Reconcile advertising cost against platform billing data and closed revenue against the CRM or finance system quarterly. Record material corrections rather than silently rewriting past reports.
A useful exception report is often more valuable than another chart. It should surface duplicate opportunity revenue, closed deals without acquisition keys, impossible timestamps, inconsistent currencies and reopened contracts.
Responsibility must also be explicit. Marketing can own acquisition capture, sales operations can own CRM discipline, and finance can approve the revenue definition. One named owner should remain accountable for the joined dataset.
Well-run Google Ads management for B2B companies depends on this shared commercial record. Bid changes cannot compensate for a system that loses the link between enquiry and contract.
If the immediate concern is whether an existing supplier’s numbers can be trusted, use a structured agency ROAS reporting audit rather than rebuilding the architecture during the review.
FAQ
How long should a B2B company wait before trusting ROAS?
Use the observed acquisition-to-close distribution. A practical maturity point is when 80% to 90% of historical paid-acquired wins have closed, with an additional allowance for cancellations if relevant. Continue showing younger cohorts, but label them as immature and compare them only at equal ages.
Should open pipeline count as ROAS?
No. ROAS should use the revenue definition in the measurement contract, normally closed or collected revenue. Open pipeline can help diagnose future demand and sales progression, but treating it as earned revenue makes the headline return dependent on subjective CRM stages.
Can GA4 measure B2B ROAS without a CRM connection?
Not reliably for long sales cycles. Analytics can record sessions and web conversions, but it does not own opportunity values, contract amendments or closed status. The CRM connection supplies the commercial outcome and the persistent identity needed after the browser session ends.
Should ROAS use total contract value or first-year revenue?
Use the figure that is consistent, auditable and appropriate to the buying decision. Net first-year revenue is often the cleanest default for recurring contracts because it avoids counting uncertain renewals. Longer contract value can be used when it is legally committed and applied consistently.
Summary
- Join advertising events to contacts, accounts, opportunities and closed revenue.
- Preserve original acquisition fields instead of overwriting them with later visits.
- Define cost, revenue, attribution and maturity rules in a measurement contract.
- Assign revenue to acquisition cohorts, not the month in which deals close.
- Keep modelled lifecycle signals separate from authoritative revenue.
- Monitor missing identifiers, duplicate opportunities and immature cohorts.
Actualyse builds measurement and attribution setups that tie B2B ad spend to real revenue. Book a call to talk through where yours stands.

