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.

Why Standard Agency Audits Miss Revenue

Most agency audits stop at platform metrics like cost per click, cost per lead, impression share, and conversion rate. None of those numbers answer the question a board asks. CAC payback period, the number of months it takes for margin-adjusted revenue to equal the cost of acquiring a customer, is the unit boards and investors use to evaluate acquisition efficiency. LTV:CAC measures how many dollars of gross margin contribution are generated for each dollar spent acquiring a customer. Net New ARR equals New ARR plus Expansion ARR minus Churn ARR minus Contraction ARR, which is the total change in annualized recurring revenue during a period.

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.

Revenue attribution has become non-negotiable, with marketing teams now expected to connect programs directly to predictable ARR growth instead of top-of-funnel volume. An audit that stops at form fills audits form-fill volume, not marketing ROI.

SaaS Hero: The client-friendly SaaS marketing agency that proves pipeline
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:

  1. Access to your Google Ads and LinkedIn Ads accounts
  2. Access to GA4 and Google Tag Manager
  3. Access to your CRM (HubSpot or Salesforce)
  4. Access to your marketing automation platform

The six steps are:

  1. Define primary versus secondary conversions
  2. Map CRM lifecycle stages to ad-platform events
  3. Rebuild conversion tracking
  4. Build board-ready dashboards
  5. Run the 90-day validation gate
  6. 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?

Primary conversions in Google Ads must map directly to revenue, such as completed purchases, submitted lead forms tied to qualified opportunities, or booked consultations. Actions without a direct line to pipeline belong in secondary status, where they are tracked for observation but ignored by Smart Bidding. GA4 events imported into Google Ads default to secondary, so any macro-goal event, such as a qualified lead, must be manually promoted to primary.

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.

B2B SaaS teams should capture four specific fields on every CRM opportunity, first-touch source, first-touch campaign, last-touch source, and influence touches. Teams must achieve 95% completion on these fields; below this threshold the issue is CRM discipline rather than attribution methodology.

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.

UTM parameters, Source, Medium, Campaign, must persist in hidden form fields and sync to Lead or Opportunity objects in the CRM to enable accurate attribution and ROAS calculations required for board-ready ROI reporting.

Closed-loop attribution requires that Opportunity Won status in the CRM automatically updates contact status to Customer in the marketing platform, which moves the record from acquisition nurture to onboarding tracks. The cost of not rebuilding this architecture shows up as wasted spend and misleading reports.

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.

Revenue attribution for B2B SaaS measures ARR, MRR, closed-won contract value, pipeline value, ROAS, and LTV:CAC ratios rather than MQLs or cost-per-lead so leaders see board-ready ROI reporting.

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
TripMaster adds $504,758 in Net New ARR in One Year
Metric Best-in-Class Healthy Range Concerning
CAC Payback Period Under 12 months For most SaaS companies, a healthy CAC payback period benchmark is 12 to 18 months, though the number varies significantly by stage, segment, and pricing model. greater than 24 months
LTV:CAC Ratio 4:1 to 6:1 (top quartile) For ecommerce the healthy LTV:CAC ratio range is 3:1 to 5:1, while SaaS targets 3:1 or higher. Below 3:1
Net New ARR Growth (YoY) 40%+ 30–40% Below 30%
Marketing-Sourced Pipeline Attribution Fidelity Top-quartile B2B SaaS accounts achieve 82-92% attribution accuracy with hybrid stack attribution (multi-touch + self-reported + branded search lift) 80–93% Below average without UTM-to-CRM mapping

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.

Success thresholds at the 90-day gate include LTV:CAC at or trending toward the 3:1 minimum, with top performers reaching the 4:1–6:1 range shown in the benchmark table above. You also want CAC payback trending toward the sub-12-month threshold that KeyBanc Capital Markets data associates with higher valuations due to demonstrated capital efficiency.

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
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) When micro-actions are tagged as primary conversions alongside qualified leads, Smart Bidding optimizes toward low-intent patterns that do not correlate with revenue
Can you show us a live dashboard connecting ad spend to pipeline and CAC payback? Monthly PDF of platform metrics, no CRM data Live Looker Studio or CRM dashboard with pipeline, cost per SQL, and CAC payback from closed-won data Agencies that cannot connect activities to pipeline or closed-won revenue cannot improve it or justify spend
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 Agencies that do not request CRM and pipeline data during the sales process are likely focused on activity metrics rather than closed-won revenue outcomes
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.

  1. Primary versus secondary conversion architecture is documented and confirmed in Google Ads and LinkedIn Campaign Manager
  2. CRM lifecycle stages are mapped to ad-platform events with field-level documentation
  3. Conversion tracking has been rebuilt, not inherited, with UTM persistence through form fields to CRM opportunity records
  4. A live Looker Studio or CRM dashboard shows pipeline by channel, cost per SQL, and CAC payback from closed-won data
  5. A 90-day validation gate has been run with defined SQL and pipeline thresholds, using W-shaped or full-path attribution
  6. 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.

Book a discovery call to run the full six-step audit on your current agency and find out whether your paid media is proving measurable ROI or still optimizing to form fills.

Read Next