Tracking
Set up conversion tracking for real business actions—like meetings, sign-ups and visits.
You don’t need to track everything—just the right things.
Use Tag Manager to track HubSpot, sign-ups and more.
GA4 needs clean events to power smart reports.
For B2B marketers with 3+ years experience
Join the 12-week B2B Growth Programme for marketers who want a compound, repeatable path to stronger pipeline without hiring more staff.
45min
video course
Understand the full growth engine in 45 minutes and spot the levers you can pull tomorrow.
When every growth report starts with the same reliable events, debates over attribution disappear. I have watched B2B campaigns double their speed once the team could see which clicks turned into booked meetings and paid invoices without rummaging through five tools.
This chapter shows how to track four high-value conversions: key page visits, form submissions, external bookings, and payments. Each event flows through Google Tag Manager into GA4, carries useful parameters, and appears as a conversion you can trust. Follow the steps in order and you will finish with real-time proof that revenue signals reach your dashboard.
Start with the confirmation page that proves a prospect reached a critical milestone, for example /thank-you or /checkout/success. In Tag Manager create a Trigger of type Page View and set the condition Page Path equals the URL slug.
Add a GA4 Event tag named confirmation_page_view. Leave the configuration tag in place, then add one parameter called page_type with the value confirmation. This flag lets you filter genuine conversions from ordinary views.
Publish the container to staging, visit the confirmation page, and open DebugView in GA4. You should see confirmation_page_view listed with the correct parameter. Toggle the event as a conversion so future reports highlight it automatically.
This simple pattern underpins the more advanced events you will set up next, which begin with forms that collect leads.
Article continues below.
Understand the full growth engine in 45 minutes and spot the levers you can pull tomorrow.
45 min
English
English, Dutch
Join the 12-week B2B Growth Programme for marketers who want a compound, repeatable path to stronger pipeline without hiring more staff.
See 12-week outlineFor B2B marketers with 3+ years experience
Select an important lead form such as newsletter_signup or contact_request. In Tag Manager create a Trigger of type Form Submission and restrict it to the form’s CSS selector. If the form uses JavaScript rather than a native submit, hook the success callback and push a dataLayer event instead.
Add a GA4 Event tag named form_submitted. Include parameters form_name and cta_location so you can test copy and placement later without adding new events.
Publish to staging, submit the form, and confirm in DebugView that form_submitted arrives with both parameters. Then mark it as a conversion in GA4.
With forms flowing inside your own domain, you can capture bookings that happen on external services, which we cover next.
Many marketers book meetings through Calendly or HubSpot. These happen on different domains, so you need cross-domain tracking. The easiest route is a small listener script embedded in the Calendly iframe. Tag Manager listens for the message and fires a booking event.
Create a Custom HTML tag with this script and trigger it on pages where the Calendly iframe appears. For HubSpot Meetings use the built-in webhook to post a JSON payload to your server-side Tag Manager container.
After the tag fires, add a GA4 Event tag named meeting_booked with parameters calendar_name and booking_source. Test in Preview mode, then visit GA4 Realtime to confirm the booking appears. Cross-domain attribution is now intact, making payments the final piece of the puzzle.
Stripe remains the quickest way to log real revenue. In the Stripe dashboard create a webhook that points to your server-side Tag Manager endpoint and listen for checkout.session.completed. Push the following payload to the dataLayer:
{ "event": "service_payment",
"amount": {{amount_total}},
"currency": "{{currency}}",
"plan_type": "{{price_metadata_plan}}"
}
If you do not have a server container yet, redirect successful payments to /checkout/success and reuse the confirmation_page_view pattern. Create a GA4 Event tag named service_payment with the same parameters. Toggle the event as a conversion so revenue appears alongside meetings and form leads.
Verify by running a test payment in Stripe’s test mode, then check GA4 DebugView for service_payment. With payments tracked, your core funnel now reports end-to-end.
You have wired four essential events: confirmation page views, form submissions, external bookings, and Stripe payments. Each one travels through Tag Manager, lands in GA4 with clean parameters, and is marked as a conversion.
These signals form a single source of truth that shows exactly how traffic turns into revenue. In the next chapter we will build GA4 reports that surface these events by channel and campaign, giving you the insight needed to scale with confidence.
Once your events are tracked, build useful GA4 reports to understand what’s working.
Know—don’t guess. Walk away with a clean, single-source tracking stack that tells you exactly where revenue comes from and flags leaks before they burn budget—so you scale with confidence, not crossed fingers.
Growth stalls when the data layer wobbles. Build a solid analytics-to-CRM backbone and let your team scale without firefighting dashboards or guessing what worked.
See topic