# GA4 Setup for a SaaS Website

> A practical GA4 setup guide for SaaS websites, covering key events, conversions, UTM tracking, cross-domain setup, consent and reports.

Source: https://comppound.com/blog/ga4-setup-for-a-saas-website (published 2026-07-08)

Google Analytics 4 is flexible, and that flexibility makes it easy to set up poorly. Many SaaS websites install the tag, see page views arriving and assume they are tracking what matters. Months later, someone asks which channels drive trial signups, and nobody can answer. A sound GA4 setup for SaaS takes a few hours of planning and configuration up front, and it saves a great deal of guesswork later.

This guide covers a practical setup for a typical SaaS marketing site that sends visitors to a separate app for signup. It assumes a small team without a dedicated analytics engineer, and it focuses on getting the important things right rather than tracking everything possible.

## Plan before you install

The most useful step happens before you touch any code. Write down the questions you want GA4 to answer, because those questions determine which events you need, and events added later cannot be applied retroactively to past data.

For most SaaS marketing sites the questions are similar. Which channels and campaigns bring visitors who go on to sign up or request a demo? Which pages lead to those conversions? Where do visitors drop off between landing and signing up? How does blog traffic contribute to signups, directly or as part of a longer journey? You may have others, such as whether a new pricing page changes behavior or how webinar registrations perform.

Next to each question, note the events and dimensions needed to answer it. This short document becomes your tracking plan. It does not need to be elaborate; a shared doc with event names, definitions and where each fires is enough. The point is that anyone on the team can later understand what the data means.

## Step 1: Install GA4

You can install GA4 directly in your site's code or through Google Tag Manager. For most marketing teams, Tag Manager is the better choice because it lets you add and adjust events later without asking engineering to change and deploy the site. The trade-off is one more tool to learn and maintain, and the risk of tags piling up without anyone tracking what they do. Keep the container tidy, name tags clearly and note changes in the tracking plan.

Whichever method you choose, confirm the tag loads on every page of the marketing site, including the blog, landing pages built in other tools and any subdomains such as a help center or docs site. Pages without the tag create gaps that show up as odd referral sources or missing conversions.

## Step 2: Configure data settings

A few settings are worth changing on day one. The default event data retention period is short, and it limits how far back you can analyze data in explorations. Increase it to the maximum your account allows.

Define internal traffic by adding your team's IP addresses, then activate the filter so your own visits do not inflate traffic and skew conversion rates. For remote teams with changing IP addresses this is imperfect, but it still removes a lot of noise, particularly from people who load the homepage many times a day.

Set up referral exclusions for services that sit in the middle of your visitor's journey, such as payment processors and authentication providers. Without them, a visitor who signs in through a third-party login and returns to your site can appear as a new session referred by that provider, and the original source gets lost.

## Step 3: Define key events

Events should map to steps in your funnel. A typical SaaS site needs a small set. The `sign_up_start` event fires when a visitor clicks a signup button or begins the form. The `sign_up` event fires when account creation actually completes. The `demo_request` event fires when a demo form is submitted, and `contact_form_submit` covers general contact forms. A `pricing_view` event, or simply tracking the pricing page, is useful as an intent signal. A `newsletter_signup` event covers subscriptions.

Use consistent lowercase names with underscores, and avoid creating near-duplicates such as `signup` and `sign_up` that split your data. Write a one-line definition for each event in your tracking plan, including exactly when it fires. The difference between "clicked the button" and "account was created" is the difference between a useful conversion metric and a misleading one.

## Step 4: Mark the important ones as key events

GA4 lets you mark specific events as key events, which is what it now calls conversions. Mark only the events that represent meaningful business outcomes, usually `sign_up` and `demo_request`, and perhaps `contact_form_submit`. Keeping this list short keeps reports focused. If every scroll and click is a key event, conversion rates become meaningless and the important signals get buried.

## Step 5: Track signups that happen in your app

This is where many SaaS setups break. The marketing site lives on one domain, the signup flow lives on an app domain or subdomain, and GA4 loses track of the visitor between them. There are three main ways to handle it.

### Cross-domain tracking

If the signup flow is on a different domain, configure cross-domain measurement in GA4 so the visitor's session continues across both. This passes an identifier in the URL when the visitor moves between domains. It works well when both domains carry the GA4 tag, and it is the simplest option if your app's signup pages can load it.

### Server-side events

The more reliable method is to send the `sign_up` event from your backend when an account is actually created, using the Measurement Protocol. To connect that event to the visitor's marketing site session, capture the GA4 client ID on the marketing site, pass it through the signup flow and include it in the server-side event. This takes some engineering effort, but it produces a conversion that reflects a real account rather than a form interaction, and it is less affected by browser quirks.

### Thank-you page tracking

If the signup flow ends on a confirmation page that carries the GA4 tag, you can treat that page view as the conversion. It is easy to set up but fragile: users who skip the page, refresh it or arrive there by other routes can distort the numbers.

Whichever approach you use, avoid relying on button clicks alone as your signup conversion. Clicks overcount, because many people click and abandon, and they tell you nothing about whether an account was created.

## Step 6: Use UTM parameters consistently

GA4 can only attribute traffic correctly if campaign links carry consistent UTM parameters. Use `utm_source` for where the traffic comes from, such as linkedin or newsletter. Use `utm_medium` for the channel type, such as social, email or cpc. Use `utm_campaign` for the specific campaign name.

The hard part is consistency. If one person tags LinkedIn posts as "LinkedIn" and another as "linkedin.com," GA4 treats them as different sources and splits your data. Write a short naming convention, keep everything lowercase and share a simple link builder or spreadsheet with anyone who creates campaign links. Never add UTM parameters to internal links on your own site, because doing so overwrites the visitor's original source and corrupts attribution.

## Step 7: Respect consent

If you have visitors in regions with consent requirements, use a consent management platform and configure GA4's consent mode so tags behave according to each visitor's choice. This is a legal and trust issue first and an analytics issue second. Expect that some visitors will decline, which means GA4 will undercount. Plan your reporting around that reality instead of trying to work around visitors' choices.

## Step 8: Link your other tools

Linking Google Search Console lets you see organic search queries and landing page performance alongside GA4 behavior data. If you run Google Ads, linking the accounts lets you import GA4 key events as conversions for bidding and reporting. Enabling the BigQuery export, even if you do not plan to use it soon, starts building a raw event history you can analyze later without the limits of the standard interface. The export is easy to switch on early and impossible to backfill later.

## Step 9: Build a few useful reports

The default reports are a reasonable starting point, but a handful of custom explorations will answer your planning questions more directly. A conversions-by-channel view shows sessions and key events by default channel group, which answers where signups come from. A landing page view shows which entry pages lead to signups, which helps you decide where to invest in content and design. A blog contribution view compares conversions among visitors who viewed blog posts with those who did not, giving you a sense of how content supports the funnel even when the last click was elsewhere. A funnel exploration from pricing view to signup start to completed signup shows where visitors drop off.

Keep the set small and revisit it monthly. A few reports people actually look at are worth more than a large dashboard nobody opens.

## Step 10: Verify everything

Before trusting the data, test it. Use DebugView and the real-time reports to confirm each event fires once, at the right moment, with the expected parameters. Submit every form yourself. Complete a full signup, including any cross-domain step, and check that the session and source carry through. Click a UTM-tagged link and confirm the campaign appears correctly. Repeat key tests on different browsers and on mobile. Write down what you tested and when, so the next person who changes the site knows what to recheck.

## Common mistakes

The most common mistake is tracking button clicks as conversions instead of completed actions, which inflates numbers and hides real drop-off. Duplicate events, usually from the tag being installed twice or from both hard-coded and Tag Manager versions running, double-count everything. Inconsistent UTM naming splits campaigns into fragments. Self-referrals from your own app domain, which appear when cross-domain tracking is missing, steal credit from the real sources. And missing documentation means that within a year nobody remembers what each event means or why it was added.

## Complement GA4 with other data

GA4 does not see everything. Ad blockers, consent choices and browser privacy features all reduce what it captures, and the gap varies by audience. Technical B2B audiences in particular often block analytics scripts. Treat GA4 as a source of trends and directional insight rather than an exact count.

For revenue truth, rely on your own systems. Store the signup source in your product database at account creation, using the UTM parameters and referrer you captured. Add a "How did you hear about us?" field to signup, which often reveals word of mouth, podcasts and AI assistants that analytics tools cannot see. Use your CRM for sales pipeline and closed revenue.

## The takeaway

A good GA4 setup starts with a short list of questions and a tracking plan, then covers the essentials: clean data settings, a few well-defined key events, reliable signup tracking across domains, consistent UTMs, consent and verification. Keep it documented, check it regularly, and pair it with your product and CRM data so you can connect marketing activity to real revenue.

## Keep reading

- [Interactive Demos on a SaaS Website: Setup and Placement](/blog/interactive-demos-on-a-saas-website-setup-and-placement)

## Frequently asked questions

### What events should a SaaS website track in GA4?

Signup start and completion, demo requests, contact form submissions, pricing page views and newsletter signups are common starting points.

### How do I track SaaS signups in GA4?

Use thank-you page tracking, cross-domain measurement or server-side events sent when accounts are created.

### Is GA4 data complete?

No. Consent choices and ad blockers reduce data, so combine GA4 with product, CRM and self-reported attribution data.

## About Comppound

Comppound runs SEO and AI search for B2B SaaS companies: a person sets the plan and reviews samples and every high-risk page, and AI speeds up production.

- [Check a page free](https://comppound.com/tools/seo-checker): Check one of your pages before you change anything else
- [Book a call](https://comppound.com/contact): Most of this works better when buyers can find you first
