B2B Marketing Analytics
GA4 Setup for B2B SaaS: The 6 Events Every Marketing Team Needs
Installed is not the same as configured. Here is what to set up and why each event matters.
Most B2B SaaS companies have GA4 installed but not configured. The difference between installed and configured is the difference between knowing your traffic and knowing your pipeline.
Why default GA4 misses the point for B2B
Out of the box, GA4 gives you pageviews, sessions, and engagement rate. Those numbers are real. They are just not the numbers that tell you whether your website is producing pipeline.
Pageviews tell you that people arrived. They do not tell you whether those people were buyers, whether they found what they came for, or whether they moved closer to booking a demo. For a B2B SaaS company, that gap is where marketing budgets disappear without explanation.
B2B buyers do not convert linearly. A prospect finds you through a blog post, reads three pages, leaves, comes back a week later via a branded search, reads your pricing page for four minutes, and then submits a demo request. Default GA4 sees seven pageviews across two sessions. It does not see a high-intent buyer who needed a week to get internal buy-in before reaching out. The events you configure are what bridge that gap.
What you actually need to track is buyer behavior, not visitor behavior. There is a difference. A visitor reads a blog post and leaves. A buyer reads your pricing page, clicks to your how-it-works page, and then requests a demo. The path is specific and recognizable if you instrument it correctly. If you do not, every session looks the same and you have no way to separate the ones that matter from the ones that do not.
The 6 events to configure
1. Form submission (with form type and page)
GA4 fires a form_submit event by default for some forms, but it captures almost nothing useful. You need a custom event that tells you which form was submitted and from which page.
Event name: form_submission
Parameters to pass:
form_type- contact, newsletter, content download, demo request, etc.page_location- the URL of the page where the form livespage_title- human-readable label for easier reporting
Without form_type, every form submission looks identical in reporting. You cannot tell whether your traffic is producing demo requests or newsletter signups. Those are not the same thing.
2. Demo or trial request (distinct from generic form submission)
This one deserves its own event, separate from general form submissions. A demo request is a purchase-intent signal. A contact form submission is not.
Event name: demo_request or trial_request
Parameters to pass:
form_id- the specific form or page sectionpage_location- where the request came fromtraffic_source- pull from session campaign data if you can
When this event is set up separately, you can build a funnel that starts with demo requests, not all form submissions. You can also mark this event as a conversion in GA4, which flows into your channel reporting and lets you see which sources actually drive pipeline.
3. Pricing page visit (with time-on-page threshold)
Everyone who visits your pricing page is not equally interested. Someone who lands on it from a paid ad and bounces in eight seconds is not the same as someone who navigated from your features page and spent three minutes reading.
Event name: pricing_page_engaged
Parameters to pass:
time_on_page- in seconds, captured at the threshold you define (90 seconds is a reasonable starting point)referral_page- where they came from within your site
Set the event to fire only when the time threshold is crossed. A raw pricing page visit is noise. A pricing page visit with engagement is signal.
4. High-intent content engagement
Some pages on your site are demand-capture pages. Your audit page. Your how-it-works page. Your pricing page. When someone visits these pages, that is different from someone reading a top-of-funnel blog post. Track them distinctly.
Event name: high_intent_page_view
Parameters to pass:
page_location- the URLpage_category- audit, how-it-works, pricing, or whatever labels your intent tiersscroll_depth- percentage of page scrolled, captured at 50% and 90%
This lets you build an intent scoring picture inside GA4. You can see that a specific user viewed the pricing page, scrolled 90% of the how-it-works page, and then came back the next day. That is a warm buyer. Without this event, that pattern is invisible.
5. Return visit from the same user (session 2 or higher)
Return visitors from non-branded channels convert at a higher rate than first-time visitors. This is true for almost every B2B SaaS site. If you are not tracking it, you are missing a leading indicator.
Event name: return_visit
Parameters to pass:
session_number- pulled from GA4’s built-inga_session_numberparameterdays_since_first_visit- calculated from first visit timestampentry_page- where they came in on the return visit
GA4 tracks session number natively. You just need to surface it as a custom event so you can filter on it in your funnel reports. A prospect on their third visit who lands on your pricing page is a different conversation than a first-time visitor who hit your homepage.
6. CTA click (which CTA, which page, which destination)
Button clicks tell you intent. Not all button clicks. The specific ones that move someone toward a conversion. Track every primary CTA on your site as its own event.
Event name: cta_click
Parameters to pass:
cta_label- the text of the button (Get the audit, Book a demo, Start free trial)cta_destination- the URL the button points topage_location- the page where the click happenedcta_position- hero, mid-page, footer, sticky nav, etc.
This tells you which CTAs actually drive clicks and which are being ignored. It also gives you click-to-submission rates by CTA position, which is one of the most actionable conversion rate metrics you can track.
How to implement these
Each event needs to be configured in Google Tag Manager or directly in your site’s code, then verified in GA4’s DebugView before you push it to production.
The basic setup for a custom event in GTM looks like this: create a Custom Event trigger, name the event to match what your code fires, add the parameters as Data Layer Variables, and attach the GA4 Event tag. The event name and parameter names need to be consistent across your code and your GTM tags or reporting breaks.
Once events are live, register each parameter as a custom dimension in GA4 under Admin > Custom definitions. GA4 does not report on parameters you have not registered. This is a step that gets skipped constantly and produces reporting that looks fine but is missing half the data.
Mark demo_request and trial_request as conversions in GA4 under Admin > Conversions. This surfaces them in your acquisition reports and lets you see which channels are producing demo requests, not just sessions.
What to do with this data
Once these six events are running and verified, you have the ingredients for a proper B2B conversion funnel in GA4.
Build a funnel exploration under Explore > Funnel exploration. Use your events as steps: high_intent_page_view as entry, pricing_page_engaged as a middle step, demo_request as the conversion. Add a breakdown by traffic source. That report tells you which channels are producing buyers who reach the conversion step, not just which channels produce traffic.
Layer in the return_visit event as a segment condition. Compare first-visit conversion rates to return-visit conversion rates by channel. This tells you whether paid traffic is producing the kind of visitors who come back, which is a better quality signal than first-visit conversion rate alone.
Connect cta_click data to form submissions. If a CTA has a high click rate but a low submission rate, the problem is probably the landing experience after the click. If a CTA has a low click rate, the problem is the CTA itself or the context around it. These are different problems with different solutions, and you cannot tell them apart without both events.
The measurement gap argument
If you cannot measure your conversion path, you cannot improve it. That sounds obvious until you look at how most B2B SaaS marketing teams actually operate: running campaigns, publishing content, and iterating on pages without a clear picture of which actions are producing qualified pipeline.
The six events above are not advanced analytics. They are the minimum viable tracking setup for a B2B SaaS site that takes marketing seriously. Getting them configured correctly takes a few hours. Not having them configured costs you the ability to make decisions based on what is actually happening.
The Web Experience Audit reviews your tracking setup alongside your pages. If your current events are missing, misfiring, or capturing the wrong parameters, the audit will surface it and tell you exactly what to fix. Get the audit.
FAQ
Common questions
Do I need Google Tag Manager to set up these events?
gtag() calls without GTM. The tradeoff is that every change requires a code deployment. With GTM, a marketer or analyst can update event parameters without touching the codebase. For most B2B SaaS teams, GTM is the right choice.How do I know if my current GA4 setup is actually working?
Can GA4 track users across sessions without third-party cookies?
_ga) by default, which survives most browser privacy restrictions. It does not track users across domains without additional configuration. For multi-domain setups, you need to configure cross-domain measurement in GA4 and GTM. Third-party cookie deprecation affects retargeting and cross-site tracking, not GA4’s first-party session and user measurement.What is the difference between a conversion and a key event in GA4?
demo_request and trial_request as key events. Do not mark generic form_submission as a key event or your conversion data will be inflated by low-intent submissions.How many custom dimensions can I register in GA4?
Takeaway
The six events above give you visibility into the parts of the buyer journey that default GA4 misses: form intent, pricing engagement, high-intent content consumption, return visits, and CTA behavior. Configured correctly, they turn GA4 from a traffic counter into a pipeline measurement tool. That is what it is supposed to be.
Who is this guy?
27 years on the web. Numbers to show for it.
I led web strategy and conversion optimization for an enterprise software company. I worked across engineering, marketing, and product to ship changes that moved the business. Here's what that looked like.