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.

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

Tag Manager Setup

Ad platforms and conversions

Google Ads, Meta and Conversion Priorities

Google Ads

Meta Ads

Conversion priorities

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.

FAQ

SaaS Tracking Questions

Something else on your mind? Ask us directly.

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.

It is common. We configure cross-domain measurement and a shared user_id so sign-ups keep their original source.

Where volume allows, for paid customers with value. Sign-ups stay as secondary goals so reporting still shows them.

No. GA4 covers acquisition and conversion. We make sure the user ID matches your product analytics so the two can be connected.

Yes. We track route changes and push app events to the data layer, so page views and actions are recorded without full page loads.

Get a Free SaaS Tracking Audit

We review your current setup against this standard and tell you what to fix first. No obligation.

Scroll to Top