GA4 Event Tracking Setup

The foundation everything else is built on. So worth getting right.

Form submissions, phone clicks, file downloads, ecommerce transactions, engagement signals - the events that turn GA4 from a passive page-view counter into something you can actually report from. Most setups handle some of it. Few handle all of it. Even fewer handle it in a way that doesn’t need rebuilding every time the site changes.

I set up GA4 event tracking that captures what actually matters, extends automatically as new content gets added, and reconciles to your CRM and order management system.

What I’ll track.

Here’s a look at the types of events I commonly track in GA4:

    • Form submissions - across every form on the site, captured by pattern rather than one tag per form

    • Phone clicks - both desktop click-to-call and mobile tap-to-call

    • Email link clicks

    • File downloads - PDFs, brochures, gated content, with the file name and source page

    • Outbound link clicks

    • Newsletter sign-ups

    • Live chat and bot interactions

    • Pattern-based capture - any button matching the right criteria, not one tag per button

    • Sticky CTAs, hero CTAs, in-content CTAs and footer CTAs all tracked consistently

    • Variant data - which version of which CTA was clicked, where it lives, what it says

    • Page context - so you can see CTA performance by page type, not just in aggregate

    • Full GA4 ecommerce funnel - view_item_list, view_item, add_to_cart, begin_checkout, add_billing_info, add_payment_info, purchase

    • Refunds and returns

    • Promotion impressions and clicks

    • Product list metrics - impressions, position, click-through, list source

    • Custom revenue dimensions where the standard ones aren’t enough (e.g. margin, subscription vs one-off)

    • Scroll depth tied to your actual content layout, not the GA4 defaults

    • Video starts, milestones and completes - YouTube, Vimeo, Wistia and native HTML5

    • Time-on-page and engagement events

    • Search box usage and search-no-result events

    • Filter and sort interactions on ecommerce and listing pages

    • Booking system integrations - iframe, subdomain, third-party widgets

    • Login, sign-up and account activity (including gated content)

    • Subscription lifecycle - start trial, upgrade, downgrade, cancel

    • Multi-step lead-gen funnels with intermediate step tracking

    • App-to-web tracking (where you’ve got a mobile app feeding into the same GA4 property)

How I do it differently.

Self-maintaining patterns

Most setups need someone to add tracking every time a new form, button or product launches. I build tracking that captures events by pattern - CSS selectors, data attributes, dataLayer signatures - so new content is tracked automatically the moment it’s added. New product, new form, new button: tracked. No tickets, no waiting.

Built for reporting, not just data

Capturing the event is half the job. The other half is making it usable:

  • Custom dimensions and metrics aligned to how your business actually reports (lead type, source, campaign, product category, customer segment)

  • Key events configured in GA4 so reporting works without custom report-building every time

  • Conversion configuration that reconciles to your ad platforms and CRM

  • Audience definitions ready to push back into Google Ads, Meta and other platforms

How it Works.

Step 1: Scope

We start with a conversation about what events actually matter to your business, what you’re going to report from, and what your current setup looks like. I come back with a clear scope and a fixed fee.

Step 2: Build

I set up the events in GTM, configure them in GA4, build the custom dimensions and key events, and wire up the conversion configuration. Pattern-based capture wherever it makes sense, so the setup extends as your site does.

Step 3: Testing & Validation

Every event tested in GA4 DebugView and on the live site. Form fills, CTA clicks, ecommerce flows all walked through end-to-end. No event leaves my hands until I’ve seen it fire correctly.

Step 4: Document & hand over

You get full documentation - every event, the trigger logic, the parameters captured, the dataLayer it depends on. So if something changes, you know what to update.

What you’ll get.

  • Every event firing reliably across every page where it matters

  • Documentation of what’s tracked, where, and what the dataLayer should look like

  • Custom dimensions and key events configured for reporting

  • A debug-friendly setup so you can verify any event from GA4 DebugView in seconds

  • Self-maintaining patterns that survive site changes and new content launches

Get the foundation right.

Whether you’re starting from scratch or fixing a setup that’s drifted, get in touch. I’ll have a look and tell you honestly what’s needed.