Written by: Aaron Rovner, Founder, Saas Hero | Last updated: August 27, 2026
Key Takeaways
Most B2B SaaS agencies report vanity metrics like cost per lead instead of revenue metrics such as CAC payback, LTV:CAC, and Net New ARR.
A 90-minute audit framework connects ad-platform data to CRM records so you can prove measurable ROI before signing or renewing contracts.
The six-step process defines primary conversions, maps CRM stages, rebuilds tracking, builds board-ready dashboards, runs a 90-day validation gate, and applies a seven-question red-flag checklist.
Agencies that cannot show live pipeline dashboards or map lifecycle stages to ad events are optimizing to form fills, not revenue.
Book a discovery call with SaaSHero to run the full audit on your current agency and confirm whether your paid media delivers board-ready ROI.
These figures rarely appear in standard agency reports because calculating them requires connecting ad platform data to CRM records. B2B sales cycles often run six to nine months. The click is recorded in Google Ads, and the closed deal lands in Salesforce or HubSpot months later. Without a deliberate join between those two systems, the default report uses last-touch attribution, which understates every upper-funnel channel and produces numbers your marketing leader already knows are wrong.
SaaS Hero: The client-friendly SaaS marketing agency that proves pipeline
Six-Step Audit Framework: What You Need
The framework below relies on four inputs before you begin:
Access to your Google Ads and LinkedIn Ads accounts
Access to GA4 and Google Tag Manager
Access to your CRM (HubSpot or Salesforce)
Access to your marketing automation platform
The six steps are:
Define primary versus secondary conversions
Map CRM lifecycle stages to ad-platform events
Rebuild conversion tracking
Build board-ready dashboards
Run the 90-day validation gate
Apply the red-flag checklist
Run this process at the start of any new agency relationship and repeat it quarterly. The inputs stay the same, but the answers change as your pipeline evolves.
Step 1: Define Primary vs. Secondary Conversions
Objective: Establish which conversion events train your ad platform’s bidding algorithms and which events you track only for observation.
Inside Google Ads, navigate to Tools → Conversions and list every active conversion action. Then open GA4’s Configure → Events panel and identify which events are marked as conversions. You are building an inventory of every signal currently feeding your ad platform’s bidding algorithm. For each event on that list, ask one question: does this action have a direct line to pipeline dollars?
Common mistake: Treating every form fill as equal. A content download, a webinar registration, and a demo request send very different signals. When all three feed Smart Bidding as primary conversions, the algorithm optimizes toward the cheapest and most frequent action, usually the content download, and the account trains itself toward the wrong audience. B2B SaaS teams should designate the highest-quality, highest-confidence event as the sole primary conversion action and treat earlier-funnel events like form fills as secondary to avoid sending conflicting optimization signals.
Quality-check question: Can your agency name, without looking it up, which conversion actions are set to primary in your Google Ads account and why those actions were chosen?
Step 2: Map CRM Lifecycle Stages to Ad-Platform Events
Objective: Connect the revenue stages your CRM tracks to the conversion events your ad platforms receive.
Inside HubSpot or Salesforce, list every lifecycle stage from Lead through Closed Won. This list represents the revenue journey your CRM tracks. Next, open Google Ads and LinkedIn Campaign Manager and list every conversion event currently receiving data, which represents the signals your ad platforms use to guide bidding. Map the two lists against each other to see where they align. Identify which CRM stages have no corresponding ad-platform event, because those gaps are where attribution breaks.
The minimum first-party data architecture for B2B attribution consists of four layers, identification, stitching, storage, and activation, where the activation layer pushes closed-won revenue back to ad platforms via Enhanced Conversions for Leads and LinkedIn Conversions API so bidding focuses on revenue rather than form fills.
Anonymized example: A $30M ARR SaaS company discovered its Google Ads account received data from three conversion events, a contact form, a newsletter signup, and a demo request, but none of its CRM lifecycle stages, MQL, SQL, Opportunity Created, Closed Won, had corresponding ad-platform events. The algorithm optimized toward newsletter signups at $12 each while the sales team reported zero pipeline from paid search.
Quality-check question: Does your agency maintain documented field mappings between your CRM lifecycle stages and your ad-platform conversion events?
Step 3: Rebuild Conversion Tracking
Objective: Build a clean, CRM-connected conversion tracking architecture that sends revenue-quality signals back to ad platforms.
Inside Google Tag Manager, audit every tag firing on your site and identify which tags send data to Google Ads and which send data to GA4. Inside your CRM, identify which lifecycle stage changes can trigger webhooks or API calls to ad platforms. For B2B SaaS sales cycles of 60–90 days, Google Ads conversion windows should match or exceed the typical cycle length instead of using the default 30-day window, so downstream revenue events are attributed to the originating ad clicks.
Anonymized example: A $20M ARR vertical SaaS company inherited conversion tracking configured by a developer who had since left. GTM contained 14 tags, 6 of which fired on every page load and sent duplicate data to Google Ads. After rebuilding the architecture with a single primary conversion, demo booked and confirmed by CRM, and moving all other events to secondary, Smart Bidding’s learning phase completed in 9 days instead of the standard 14. Cost per SQL dropped 38% within 60 days.
Quality-check question: When did your agency last audit every tag in your GTM container and confirm which events feed Smart Bidding as primary conversions?
Step 4: Build Board-Ready Revenue Dashboards
Objective: Create a single reporting view that connects ad spend to pipeline, CAC, and payback period in the vocabulary your CFO and board use.
Inside Looker Studio, connect your Google Ads data source and your CRM data source so both sit in one view. Inside HubSpot, build a custom report that shows marketing-sourced pipeline by channel, cost per SQL by campaign, and CAC payback by cohort. Aim for one live view, not a platform report and a CRM report reconciled by hand the day before a board meeting.
The metrics thresholds your dashboard should surface against industry benchmarks are critical because they show whether your unit economics support sustainable scaling or signal a need to fix acquisition efficiency before you increase spend. The three core metrics, CAC payback, LTV:CAC, and Net New ARR growth, sit at the center of that decision.
TripMaster adds $504,758 in Net New ARR in One Year
Quality-check question: Can your agency open a live dashboard, not a PDF or monthly email, that shows pipeline created by channel, cost per SQL, and CAC payback calculated from closed-won CRM data?
Step 5: Run the 90-Day Validation Gate
Objective: Confirm that the agency’s measurement architecture produces reliable revenue-level signals within a single quarter.
At day 30, confirm that primary conversion events fire cleanly and CRM lifecycle stage data flows back to ad platforms. At day 60, review cost per SQL by campaign and identify which campaigns produce pipeline versus form fills. At day 90, calculate CAC payback and LTV:CAC from closed-won CRM data instead of platform-reported conversions.
Attribution gaps are inevitable in a 90-day window because most B2B sales cycles run longer. Handle them with W-shaped or full-path multi-touch attribution models, which assign credit to first touch, lead creation, opportunity creation, and closed-won revenue, providing the most complete view of touchpoints influencing deals from first contact to closed revenue. Last-touch attribution is not an acceptable fallback for a B2B SaaS company with a multi-month sales cycle. The difference between optimizing to leads versus SQLs becomes visible at the 90-day gate.
Anonymized example: A $45M ARR SaaS company ran a 90-day validation gate after switching agencies. At day 90, the new agency’s dashboard showed 14 SQLs sourced from paid search at a cost per SQL of $4,200. The previous agency had reported 140 “leads” at $420 each, the same spend with a different optimization target. The board approved a 40% budget increase based on the SQL-level data.
Quality-check question: Does your agency commit to a 90-day validation gate with defined SQL and pipeline thresholds before recommending budget expansion?
Step 6: Use the Seven-Question Red-Flag Checklist
Objective: Use seven disqualifying questions to separate agencies operating a full CRM-connected measurement layer from those optimizing to form fills.
Run this checklist in any agency evaluation call or quarterly review. A red flag in any row is a structural problem, not a fixable process gap. The table below separates agencies that have built a CRM-connected measurement layer from those still optimizing to vanity metrics. If an agency cannot provide the Required Answer for questions 1, 2, and 4, it is not measuring revenue-level ROI.
B2B Landing Pages so effective your prospects will be tripping over their keyboards to convert
Question
Red-Flag Answer
Required Answer
Why It Matters
What is your ad platform’s primary conversion action trained on?
Form fills, all weighted equally
A named CRM-stage event (e.g., demo booked, SQL created, opportunity opened)
Who owns the landing pages your campaigns point to?
The client, a web contractor, or nobody
The agency designs, builds, hosts, and tests landing pages as part of its scope
An agency that does not control the post-click experience cannot be held accountable for conversion rate, the highest-leverage variable in the funnel
How do you handle CRM lifecycle stage mapping to ad-platform events?
“We use whatever conversion tracking the client has set up”
Documented field mappings between CRM stages and ad-platform events, rebuilt during onboarding
CRM-native attribution enables teams to route closed-won revenue data back to Google Ads, LinkedIn, and Meta so platform algorithms optimize bidding for actual customers instead of MQLs
What attribution model do you use for B2B sales cycles over 90 days?
Last-touch or platform-default attribution
W-shaped or full-path multi-touch attribution connected to CRM opportunity data
Full-path attribution provides the most complete view of touchpoints influencing deals from first contact to closed revenue and requires clean CRM data
Do you request CRM and pipeline data during your sales process?
No, discovery focuses on ad spend and channel mix
Yes, CRM access and lifecycle stage definitions are required inputs before onboarding
How does your fee structure change if we add or remove a channel?
Fee rises when a channel is added and falls when one is dropped
Fee is indexed to total monthly ad spend, not channel count, so channel mix changes carry no fee consequence
A fee tied to channel count creates a structural incentive against reallocation, which is the recommendation that most often improves ROI
Advanced Setup: Sync Lifecycle Stages Back to Ad Platforms
Teams already running 6sense or Demandbase alongside HubSpot or Salesforce can extend the measurement architecture beyond conversion tracking into intent-signal optimization. Instead of waiting for a form fill to signal intent, lifecycle-stage events such as MQL created, SQL confirmed, and opportunity opened can be pushed back into Google Ads via Enhanced Conversions for Leads and into LinkedIn via the Conversions API.
The activation layer of a mature B2B attribution stack pushes closed-won revenue back to ad platforms via server-to-server postbacks so bidding focuses on outcomes that predict actual revenue rather than secondary events like form fills or page views.
When 6sense or Demandbase intent data layers on top of this architecture, the ad platform receives two signal types simultaneously, CRM-stage progression from known contacts and account-level intent scores from anonymous research activity. The result is a bidding model that learns from both identified pipeline and in-market behavior. This configuration requires a mature CRM, clean lifecycle stage definitions, and an agency that owns the integration layer end to end.
B2B SaaS companies that implement UTM-to-CRM campaign ID mapping with referrer and IP fallback can improve marketing-sourced pipeline attribution fidelity. That improvement often marks the difference between a dashboard that answers a board question and one that triggers a methodology debate.
Frequently Asked Questions
How long does it take to set up CRM-connected conversion tracking from scratch?
For a company already running HubSpot or Salesforce with defined lifecycle stages, the rebuild typically takes three to four weeks. That timeline covers auditing existing GTM tags, establishing the primary versus secondary conversion architecture in Google Ads and LinkedIn, configuring UTM persistence through hidden form fields, and setting up the CRM webhook or API connection that sends lifecycle-stage events back to ad platforms. The most common delay is not technical. It comes from aligning RevOps and the agency on lifecycle stage definitions before any tracking is built. Companies that skip that alignment step often rebuild the tracking a second time when the definitions change.
Who on our internal team needs to be involved in this audit?
Three roles need to participate. The VP of Marketing or CMO confirms which conversion events represent genuine pipeline intent versus research behavior, a judgment that requires business context. RevOps or Marketing Operations provides CRM field access, confirms lifecycle stage definitions, and approves any changes to how leads flow into the system. The agency’s campaign manager needs GTM access, ad account access, and a documented list of which CRM stages should map to which ad-platform events. The audit itself takes 90 minutes of executive time, while the implementation that follows takes three to four weeks of agency and RevOps coordination.
Does this framework apply to smaller companies spending less than $15k per month on paid media?
The framework still applies, but the 90-day validation gate produces less reliable signals at lower spend levels. Smart Bidding typically requires around 30 conversions per campaign in the last 30 days, or roughly 50 conversions, to exit the learning phase and stabilize. Below $15k per month, a company may not generate enough qualified conversions to train the algorithm toward CRM-stage events rather than form fills. In that case, the primary versus secondary conversion architecture still matters, but the validation gate should extend to 120 or 180 days to accumulate enough data. For companies spending $40k per month or more, the framework runs on the standard 90-day timeline and signal quality improves proportionally.
What should we do when our metrics stall after the 90-day gate?
Stalled metrics after 90 days usually trace back to one of three causes. First, the primary conversion event still sits too far from revenue. A demo request that converts to SQL at 8% is a weaker signal than an SQL created event that converts to opportunity at 60%. Moving the primary conversion closer to revenue almost always improves signal quality. Second, the landing page has not been tested. Conversion rate multiplies every other optimization in the account, and a page that has not changed in six months becomes a ceiling on what bidding optimization can produce. Third, the channel mix does not match the funnel stage being targeted. Demand creation on LinkedIn requires a different measurement timeline than demand capture on Google Search, and judging both on the same 90-day pipeline metric produces a false negative on the demand creation channel. Identify which cause applies before changing budget allocation.
Recap Checklist and Next Steps by Maturity Level
The six-step audit produces a clear picture of where an agency’s measurement layer ends. Use the recap below to confirm each step was completed and identify which maturity tier applies to your current setup. Treat this as a self-assessment. If you cannot confirm completion of a step with documented evidence, not a verbal assurance from your agency, that step remains incomplete.
Primary versus secondary conversion architecture is documented and confirmed in Google Ads and LinkedIn Campaign Manager
CRM lifecycle stages are mapped to ad-platform events with field-level documentation
Conversion tracking has been rebuilt, not inherited, with UTM persistence through form fields to CRM opportunity records
A live Looker Studio or CRM dashboard shows pipeline by channel, cost per SQL, and CAC payback from closed-won data
A 90-day validation gate has been run with defined SQL and pipeline thresholds, using W-shaped or full-path attribution
The seven-question red-flag checklist has been applied to every agency under evaluation
Next steps by maturity level:
Early stage (steps 1–2 incomplete): Start with the primary versus secondary conversion audit before any other change. An account training on the wrong signal compounds the wrong direction every day it runs.
Mid stage (steps 1–3 complete, steps 4–5 incomplete): Build the CRM-connected dashboard before the next board meeting. The data to answer board questions already exists in your CRM, and the missing piece is a reporting layer that connects it to ad spend.
Advanced stage (steps 1–5 complete): Apply the lifecycle-stage event sync described in the advanced setup section and evaluate whether 6sense or Demandbase intent data can be layered into the bidding architecture.
All stages: Run the seven-question red-flag checklist at every agency renewal. An agency that cannot answer questions 1, 2, and 4 without hesitation is not operating a CRM-connected measurement layer, regardless of what its proposal claims.
SaaSHero enters every engagement with the full measurement layer already built into its onboarding process, including primary versus secondary conversion architecture, CRM lifecycle stage mapping, conversion tracking rebuild, Looker Studio and HubSpot dashboards, and a 90-day validation gate with defined pipeline thresholds. The seven questions on the red-flag checklist are the same questions SaaSHero’s own discovery process asks of every prospect, because an agency that cannot answer them about its own method cannot answer them about yours.
Includes unlimited revisions as well as custom written copy (from a human, not ChatGPT). We’ll send a first draft in Figma and you can request as many edits as you’d like. We won’t ever activate any landing pages until you give us the final OK