The Gap
A B2B SaaS startup (project management tool, $49–$199/month) had Google Analytics 4 installed — but it was only tracking pageviews and free trial signups. No one knew which campaigns, keywords, or channels were driving paid conversions.
Marketing was optimizing for free trial signups. But free trials converting to paid had wildly different rates by source:
- Organic search: 34% trial-to-paid
- Google Ads (broad match): 6% trial-to-paid
- LinkedIn: 28% trial-to-paid
Optimizing for trial signups was actively destroying their LTV.
What We Built
GA4 Event Architecture
Custom event schema covering the full SaaS funnel:
page_view → signup_start → trial_signup → onboarding_complete
→ feature_activated → upgrade_intent → paid_conversion
Each event captures: user_id, plan_tier, traffic_source, campaign, company_size.
Google Ads Conversion Import
Imported paid conversion events from GA4 into Google Ads as the primary conversion action. Free trial signups demoted to "informational" — not used for Smart Bidding.
Cross-Device + CRM Attribution
Connected their HubSpot CRM to GA4 via Measurement Protocol. When a lead became a paying customer in HubSpot, a server-side hit fired back to GA4 with the original session attribution — even if weeks had passed.
Results (60 Days)
| Metric | Before | After |
|---|---|---|
| Funnel visibility | Trial signup only | Full trial → paid |
| Google Ads primary conversion | Trial signup | Paid conversion |
| Avg. CAC (Google Ads) | $320 (estimated) | $187 (actual) |
| Trial-to-paid (Google Ads) | Unknown | 11% measured |
| Wasted broad match spend | ~$3,200/mo | Cut to $800/mo |
The Insight That Paid for Everything
Once they could see trial-to-paid by keyword, one branded competitor keyword was generating 71% of paid conversions at $22 CAC — but had only 8% of budget. It got a 4x budget increase the next day.
Without full-funnel tracking, you're making budget decisions based on the cheapest part of the funnel, not the most profitable part.