Home/Industries/SaaS
SaaS
SaaS Tracking From First Visit to Paid Plan
We connect your marketing site, your app and your billing system, so every channel is judged on trials that activate and customers who pay.
- Site and app joined
- Billing events tracked
- CAC by channel
Trial to revenue
Live
sign_up
Method: Google, plan: Growth
GA4 + Ads
trial_started
14-day trial, user_id u_8812
GA4 + Meta
activation
First project published
GA4
subscribe
Billing webhook, value 79.00 USD
Server > GA4 + Ads + CAPI
renewal
Month 2 payment received
BigQuery
Challenges
Why SaaS Funnels Are Hard to Measure
The results that matter most in SaaS happen days after the first visit, inside the product or in the billing system, where browser tags cannot see them.
Site and app are separate
A marketing site on one domain and the app on another split sessions, so sign-ups lose their original source.
Revenue happens server-side
Trial-to-paid conversions and renewals are processed by the billing system, often with no page view to fire a tag.
Sign-ups are not customers
Optimising campaigns to sign-ups attracts users who never activate or pay.
Split analytics tools
Product analytics and marketing analytics use different user IDs, so nobody can link a campaign to retention.
Recommended setup
The Setup We Recommend for SaaS
Four layers, each doing one job. Together they give every platform the same, validated version of what happened.
01
User ID and data layer
A consistent user_id across site and app, with sign-up and activation events pushed by the application.
02
GTM and cross-domain
One container for site and app shell, cross-domain linking and route-change tracking for single-page apps.
03
Server events from billing
Billing webhooks sent through a server container or the Measurement Protocol to GA4, Google Ads and Meta.
04
Revenue reporting
GA4 exported to BigQuery and joined with billing data for CAC, trial-to-paid rate and payback by channel.
Implementation
GA4 and Google Tag Manager, Configured for SaaS
GA4 Configuration
- Cross-domain measurement between site and app
- user_id set after login
- sign_up and trial events as key events
- Activation milestones as custom events
- BigQuery export for revenue joins
Tag Manager Setup
- History change triggers for single-page apps
- App events read from the data layer
- Cross-domain linker configuration
- Plan and trial parameters on every event
- Consent states applied in the app as well
Ad platforms and conversions
Google Ads, Meta and Conversion Priorities
Google Ads
- Paid subscriptions imported as primary with value
- Sign-ups kept as secondary goals
- Enhanced Conversions on sign-up
- Offline import tied to gclid at sign-up
Meta Ads
- StartTrial and Subscribe from the server
- event_id shared with browser events
- Value and currency on subscriptions
- Hashed email where consent allows
Conversion priorities
- Primary: first paid subscription with value
- Secondary: trial started, sign-up
- Observed: activation milestones
- Excluded: pricing page views
Example
Example SaaS Event Map
Event
Fires when
Key parameters
Sent to
sign_up
Account is created
method, plan
GA4, Google Ads (secondary)
trial_started
Trial begins
plan, trial_days
GA4, Meta StartTrial
activation
First key action is completed
milestone
GA4
subscribe
First successful payment (webhook)
plan, value, transaction_id
GA4, Google Ads, Meta CAPI
renewal
Recurring payment succeeds
value, subscription_id
GA4, BigQuery
Process
How We Implement It
01
Audit
Map the journey across site, app and billing.
02
Define
Agree funnel events, user ID and milestones.
03
Implement
Build web, app and server-side events.
04
Validate
Test with test accounts and billing sandbox.
05
Report
Build CAC and trial-to-paid reporting.
Can you track conversions that happen in the billing system?
Yes. Payments and renewals are sent from billing webhooks through a server container or the GA4 Measurement Protocol, then on to Google Ads and Meta.
Our site and app are on different domains. Is that a problem?
It is common. We configure cross-domain measurement and a shared user_id so sign-ups keep their original source.
Should ads optimise for sign-ups or paid customers?
Where volume allows, for paid customers with value. Sign-ups stay as secondary goals so reporting still shows them.
Does this replace product analytics tools?
No. GA4 covers acquisition and conversion. We make sure the user ID matches your product analytics so the two can be connected.
Can you track a single-page application?
Yes. We track route changes and push app events to the data layer, so page views and actions are recorded without full page loads.
Related services
Services Used in This Setup
We set up a server-side Tag Manager container on your own subdomain.
Get a Free SaaS Tracking Audit
We review your current setup against this standard and tell you what to fix first. No obligation.
