GA4 Event Tracking: Complete Setup Guide

TL;DR — Key Takeaways:
• GA4 uses an event-based model — everything is an event, including page views
• Master 4 event types: automatically collected, enhanced measurement, recommended, and custom
• Use consistent naming conventions: snake_case, lowercase, max 40 characters
• Always test events in DebugView before going live
• Set up key events (conversions) to track business outcomes, not just pageviews

4 Types of GA4 Events - Automatic, Enhanced, Recommended, Custom
The four types of GA4 events at a glance

The GA4 Event Model: A Mental Shift

If you’re coming from Universal Analytics, GA4’s event-based model requires a mindset change. In UA, you had sessions, pageviews, and events as separate concepts. In GA4, everything is an event.

A page view? That’s a page_view event. A scroll? scroll event. A purchase? purchase event. This unified model is more flexible but requires understanding how events work.

Here’s what I tell clients: think of GA4 as a stream of events flowing in real-time. Your job is to decide which events matter and ensure they’re tracked correctly.

The 4 Types of GA4 Events

GA4 organizes events into four categories. Understanding these will save you hours of unnecessary custom implementation.

1. Automatically Collected Events

These fire without any setup. Just install the GA4 tag and they work.

EventWhen It Fires
first_visitUser’s first visit to the site
session_startWhen a session begins
user_engagementWhen page is in focus for 10+ seconds
page_viewEach page load (with enhanced measurement)

Pro tip: Don’t recreate these manually. I’ve seen implementations where teams built custom session_start tracking—completely unnecessary and causes data duplication.

2. Enhanced Measurement Events

Toggle these on in your GA4 property settings. No code required.

Go to: Admin → Data Streams → [Your Stream] → Enhanced Measurement

EventWhat It TracksEnable?
scroll90% page scroll depthYes
click (outbound)Clicks to external domainsYes
file_downloadPDF, DOC, ZIP downloadsYes
video_start/progress/completeYouTube embedsIf using YT
form_start/submitForm interactionsTest first
site_searchInternal search queriesConfigure URL param

Warning about form tracking: Enhanced measurement form tracking can be unreliable. It triggers on any form submit, including newsletter popups and search boxes. For critical forms (lead gen, checkout), implement custom tracking instead.

3. Recommended Events

Google provides a list of recommended events with predefined names and parameters. Use these whenever possible—they unlock special reports and integrations.

For e-commerce:

  • view_item — product page view
  • add_to_cart — item added to cart
  • begin_checkout — checkout initiated
  • purchase — transaction completed

For lead generation:

  • generate_lead — form submission
  • sign_up — account creation
  • login — user login

For content:

  • share — social sharing
  • search — search performed

4. Custom Events

When none of the above fit your needs, create custom events. But follow these rules:

  • Use snake_case (lowercase with underscores)
  • Keep names under 40 characters
  • Be specific: newsletter_signup beats signup
  • Don’t prefix with ga_ or google_ (reserved)
  • Document everything in a tracking plan

Examples of good custom events:

pricing_calculator_used
demo_video_watched
chat_started
quote_requested
pdf_guide_downloaded

Implementing Events with GTM

Google Tag Manager is the cleanest way to implement GA4 events. Here’s the standard workflow.

GA4 Event Flow - From data layer to GA4 reports
How events flow from your website through GTM to GA4

Step 1: Set Up the Data Layer

The data layer is a JavaScript array that passes information from your website to GTM. It’s the bridge between your site and your tags.

// Basic data layer push
window.dataLayer = window.dataLayer || [];
dataLayer.push({
  'event': 'form_submission',
  'form_name': 'contact_form',
  'form_location': 'footer'
});

Place data layer pushes in your site code wherever the action happens—form submissions, button clicks, video plays, etc.

Step 2: Create a Trigger in GTM

Triggers tell GTM when to fire your tag.

  1. Go to Triggers → New
  2. Choose Custom Event
  3. Enter the event name exactly as pushed (e.g., form_submission)
  4. Save the trigger

Step 3: Create the GA4 Event Tag

  1. Go to Tags → New
  2. Choose Google Analytics: GA4 Event
  3. Select your GA4 Configuration tag
  4. Enter the Event Name (this appears in GA4 reports)
  5. Add Event Parameters to pass additional data
  6. Assign your trigger
  7. Save and test

Example: Tracking a Lead Form

Here’s a complete example for tracking a contact form submission.

1. Data layer push (on your site):

// Fire this when form submits successfully
dataLayer.push({
  'event': 'generate_lead',
  'lead_source': 'contact_form',
  'form_id': 'main_contact',
  'page_location': window.location.href
});

2. GTM Variables:

Create Data Layer Variables for lead_source and form_id to use in your tag.

3. GA4 Event Tag settings:

SettingValue
Event Namegenerate_lead
Parameter: lead_source{{DLV – lead_source}}
Parameter: form_id{{DLV – form_id}}

Event Parameters: Adding Context

Events tell you what happened. Parameters tell you the details.

Every event can have up to 25 custom parameters. Use them to add context:

EventUseful Parameters
purchasevalue, currency, transaction_id, items[]
generate_leadform_name, lead_source, page_section
video_completevideo_title, video_duration, video_provider
button_clickbutton_text, button_location, destination_url

Important: To see custom parameters in GA4 reports, you must register them as custom dimensions. Go to Admin → Custom Definitions → Create Custom Dimension.

Setting Up Key Events (Conversions)

Not all events are equal. Key events (formerly called conversions) are the actions that matter most to your business.

To mark an event as a key event:

  1. Go to Admin → Events
  2. Find your event in the list
  3. Toggle Mark as key event

Or create it directly in Admin → Key events → New key event.

What should be a key event?

  • ✅ Form submissions (leads)
  • ✅ Purchases
  • ✅ Account sign-ups
  • ✅ Demo/trial requests
  • ❌ Page views
  • ❌ Scrolls
  • ❌ Button clicks (unless directly tied to value)

Testing with DebugView

Never publish tracking without testing. GA4’s DebugView shows events in real-time.

How to Enable Debug Mode

Option 1: GTM Preview Mode

Click Preview in GTM. Events fired during preview automatically appear in DebugView.

Option 2: Chrome Extension

Install the Google Analytics Debugger extension and enable it.

Option 3: URL Parameter

Add ?debug_mode=true to any URL on your site.

What to Check in DebugView

  • Event name appears correctly
  • All parameters are populated
  • No duplicate events firing
  • Events fire at the right moment (not too early, not too late)

Common GA4 Event Tracking Mistakes

1. Duplicate events

Firing the same event from both GTM and hard-coded JavaScript. Pick one method and stick with it.

2. Inconsistent naming

Using FormSubmit, form_submit, and formSubmit across different pages. Create a naming convention and enforce it.

3. Missing parameters

Tracking purchase without value and currency. Without these, revenue reports are empty.

4. Forgetting to register custom dimensions

You send the parameter, but it doesn’t show in reports because you didn’t create the custom dimension in GA4.

5. Over-tracking

Tracking every click, hover, and scroll. This creates noise and hits GA4 limits. Track what matters.

Event Naming Convention Template

Adopt this naming structure for consistency:

[object]_[action]

Examples:
form_submit
video_play
button_click
file_download
newsletter_signup
cart_add
checkout_begin

Rules:

  • Always lowercase
  • Use underscores, not hyphens or camelCase
  • Object first, then action
  • Be specific but concise
  • Document in a tracking plan spreadsheet

Quick Reference: Event Limits

LimitValue
Unique event names500 per property
Parameters per event25
Event name length40 characters
Parameter name length40 characters
Parameter value length100 characters
Key events30 per property

Start Tracking What Matters

GA4 event tracking isn’t complicated once you understand the model. Start with enhanced measurement, add recommended events for your business type, and only create custom events when necessary.

The goal isn’t to track everything—it’s to track the right things with enough context to make decisions.

Your next step: Audit your current GA4 setup. Check which enhanced measurement events are enabled, verify your key events are firing, and test everything in DebugView.

Related reading:

Leave a Comment