GA4 for B2B Demand Gen: Setup to Revenue Attribution
Most B2B demand gen teams have GA4 installed but don't know how to use it. They can see page views. That's about it. They don't track conversions, they don't segment audiences, and they definitely don't connect revenue.
This guide shows you the exact GA4 setup that lets you answer: "Which marketing channel drove the most revenue?" Not impressions. Not clicks. Revenue. Here's how to build it in 3 hours.
Why Default GA4 Doesn't Work for B2B
GA4 comes pre-configured for e-commerce. It tracks "purchase" events by default. But in B2B, there's no "purchase" in GA4. You generate leads. Sales closes deals. The conversion happens offline.
So you need to customize GA4 for your actual funnel:
- Impression → Ad shown (paid media tracking)
- Click → Someone clicked your ad
- Lead → Form fill or demo request
- SQL → Sales qualified lead (from CRM data)
- Closed Won → Deal closed (from CRM data)
You need to track all 5 steps. Most companies track only 1–2. That's why GA4 feels useless.
Step 1: Set Up Conversion Events
A conversion event is any action that matters. For B2B demand gen, that's usually:
| Event Name | Trigger | How to Track |
|---|---|---|
| form_submit | User submits any form (contact, demo request, newsletter) | GTM tag when form submission completes |
| demo_booked | User books a demo via calendar (Calendly, Acuity) | Calendly callback event → GTM tag |
| whitepaper_download | User downloads gated content | File download tracking via GTM |
| email_signup | User subscribes to newsletter | Form submission tracking |
| video_watched | User watches 50%+ of video | YouTube embed tracking (GA4 native) |
How to implement: Use Google Tag Manager (GTM) to track these events. You'll add a GTM container to your website, create tags for each conversion, and those tags will fire GA4 events.
Pro setup: Create a single "lead" event that fires for any form submission, demo booking, or CTA click. Separately track which TYPE of lead (form_source = "contact form", "demo request", etc.) as an event parameter. This gives you flexibility.
Step 2: Connect CRM Data (SQL + Closed Won)
This is the game-changer. GA4 can only track your website. It can't see what happens in Salesforce. But you can send Salesforce data back to GA4.
Here's the flow:
- Someone fills a form on your website → GA4 records lead event (with email address)
- The lead syncs to Salesforce (via Zapier, Marketo, or native integration)
- Sales qualifies → Salesforce marks as SQL
- You run a daily sync from Salesforce → GA4 (updating the user with SQL = true)
- Deal closes → Salesforce marks stage as "Closed Won"
- Same sync updates GA4 (closed_won = true, revenue = deal size)
Now GA4 knows: "This user generated a lead on Jan 1, became an SQL on Jan 15, and closed on Feb 3 for ₹25L."
Tools for this sync: Zapier (easiest), custom Python script (most flexible), or native Salesforce-GA4 integrations if your stack supports it.
Key insight: You're not trying to replace your CRM. You're enriching GA4 with data from your CRM so you can attribute revenue back to the channel that generated the original lead.
Step 3: Create Audience Segments
Segments let you group users by behavior. You'll use these for remarketing and analysis:
- Segment 1: "Engaged Visitors" — Spent 2+ min on site OR visited product pages 3+ times
- Segment 2: "Leads" — Submitted a form OR booked a demo
- Segment 3: "SQLs" — Have SQL = true attribute from CRM sync
- Segment 4: "Closed Customers" — Have closed_won = true attribute
These segments automatically sync to Google Ads. You can remarket to "Engaged Visitors" with different messaging than "Leads." You can exclude "Closed Customers" from lead-gen ads.
Step 4: Build Your Reporting Dashboard
In GA4, create a custom dashboard with these key metrics:
| Metric | Formula | Importance |
|---|---|---|
| Leads by Source | Count of form_submit events, grouped by default_channel_grouping | See which channels drive leads |
| SQL Conversion Rate | Users with SQL=true / Users with lead=true | Quality metric (not all leads become SQLs) |
| Revenue by Channel | Sum of deal value, grouped by default_channel_grouping (using CRM sync data) | The most important metric |
| CAC by Source | Ad spend / count of closed_won events, by source | Which channel is most profitable? |
Real Example: Setting This Up
A SaaS company spent ₹50L/month on marketing but couldn't tell which channel drove revenue. Google Ads said it was driving ₹2.5Cr/month in attributed conversions. LinkedIn said ₹1.8Cr. But the CRM showed only ₹3Cr/month in actual closed deals. Where was the ₹1.3Cr discrepancy?
What we did:
- Set up GA4 with custom lead, SQL, and closed_won events
- Built a daily Salesforce-to-GA4 sync (via Zapier) that updated user attributes
- Connected GA4 to their CRM data so we could see end-to-end funnel
- Created dashboard showing revenue by channel
Result: Discovered that 40% of leads from Google Ads and LinkedIn were duplicates or low-intent. Once we filtered for "actual SQL" revenue, Google Ads was driving ₹1.5Cr and LinkedIn ₹900K—much more realistic. The company then shifted budget accordingly.
Common GA4 Mistakes
Mistake 1: Only tracking one conversion type. Track ALL the conversions that matter: form fills, demos, signups, etc. Don't just track "purchase."
Mistake 2: Not connecting CRM data. GA4 alone can't tell you which leads closed. You need that Salesforce sync to complete the picture.
Mistake 3: Not using UTM parameters correctly. Every ad should have utm_source, utm_medium, and utm_campaign. If you don't track these consistently, GA4 data is worthless.
Mistake 4: Ignoring data privacy (GDPR, CCPA). Make sure your CRM-to-GA4 sync complies with privacy laws. You should anonymize and get consent before tracking user identities.
5-Day GA4 Setup Roadmap
- Day 1: Install GA4 if not already present. Verify tracking is working.
- Day 2: Set up Google Tag Manager. Create tags for form submissions, demo bookings, CTA clicks.
- Day 3: Define and implement custom events (lead, SQL, closed_won). Test in GA4 debug mode.
- Day 4: Build Salesforce-to-GA4 sync (via Zapier or custom script). Start daily updates.
- Day 5: Create dashboard. Set up alerts. Train team on interpretation.
Need hands-on help with GA4? I can set up the full tracking system—events, CRM sync, and dashboards—as part of my MarTech implementation service. It's usually a 1–2 week project.
GA4 is powerful but only if you set it up right.
Most teams leave 80% of GA4's value on the table. A proper setup with CRM integration and revenue tracking changes how you allocate budget. Let's talk about your setup.
Book a free GA4 audit →