TL;DR: GA4's Enhanced Measurement covers basic interactions automatically, but custom events capture what actually matters for your business — button clicks, form submissions, scroll milestones, and video plays. Set them up in Google Tag Manager using GA4 Event tags and specific triggers. No code changes to your website required.

GA4's out-of-the-box tracking collects page views, a 90% scroll event, outbound clicks, and site search — useful baseline data, but insufficient for understanding how users interact with your specific content and CTAs. Custom event tracking bridges that gap. Once your custom events are live, Meaning's GA4 AI chatbot lets you ask questions about user behaviour in plain English — getting instant insights from your event data without building custom Exploration reports. This guide covers how to configure GA4 custom events in Google Tag Manager for the four most valuable interaction types: button clicks, scroll depth milestones, form submissions, and video plays — all without touching a single line of your website's source code.

What are GA4 custom events?

GA4 custom events are user-defined events that you send to Google Analytics 4 to track specific interactions not captured by GA4's automatic or Enhanced Measurement tracking. Unlike GA4's built-in events, custom events use names and parameters you define — giving you complete control over what data is collected and how it's labelled.

GA4 custom events are user-defined events that you send to Google Analytics 4 to track specific interactions not captured by GA4's automatic or Enhanced Measurement tracking. Unlike Universal Analytics, which used a rigid Category/Action/Label taxonomy, GA4 custom events use a flexible name-plus-parameters structure that you define based on your measurement requirements. According to Google's official GA4 documentation, events in GA4 fall into four categories: automatically collected events (fired by the GA4 tag by default), enhanced measurement events (optional, enabled in Data Stream settings), recommended events (predefined names Google specifies for common use cases), and custom events (any event you define yourself). Custom events that do not follow Google's recommended naming conventions will not appear in standard reports and must be accessed via Explorations. Research by Simo Ahava (2023) found that over 60% of meaningful user interactions on a typical website are not captured by Enhanced Measurement alone. GA4 event tracking setup for custom interactions is therefore not an optional extra — it is a requirement for any implementation that aims to measure business outcomes, not just traffic volume.

GA4 event types compared

Event TypeSetup RequiredExamplesAppears in Standard Reports?
Automatically CollectedNonesession_start, first_visit, page_viewYes
Enhanced MeasurementEnable in Data Stream settingsscroll (90%), click, file_download, video_startYes
Recommended EventsGTM or code implementationpurchase, sign_up, generate_leadYes (with correct naming)
Custom EventsGTM or code implementationcta_click, quote_requested, tool_interactionExplorations only

How to track button clicks as GA4 custom events

Button click tracking in GA4 via GTM uses the Click – All Elements trigger, which fires when any element on the page is clicked. You filter it to fire only for specific buttons using click variables such as Click Classes, Click ID, or Click Text.

Enable click variables in GTM

  1. In GTM, go to Variables > Configure (the gear icon in the Variables panel).
  2. Under the Clicks section, enable: Click Element, Click Classes, Click ID, Click Target, Click Text, and Click URL.
  3. These variables are now available as conditions in all trigger configurations.

Create the button click trigger

  1. Go to Triggers > New.
  2. Select Click – All Elements as the trigger type.
  3. Select Some Clicks (not All Clicks).
  4. Set a condition to target your specific button: Click Text equals [your button label], or Click Classes contains [your button's CSS class], or Click ID equals [your button's HTML id].
  5. Name the trigger (e.g., 'Click – Primary CTA') and save.

Create the GA4 event tag for button clicks

  1. Go to Tags > New and select Google Analytics: GA4 Event as the tag type.
  2. Set the Configuration Tag to your existing GA4 Configuration tag.
  3. Enter an Event Name (e.g., 'cta_click'). Use lowercase with underscores — this is GA4's required naming convention.
  4. Add Event Parameters: click_text with value {{Click Text}}, and click_url with value {{Click URL}}.
  5. Under Triggering, assign the button click trigger you just created.
  6. Save and test in GTM's Preview mode before publishing.

How to track scroll depth milestones

GA4's Enhanced Measurement fires a single scroll event when a user reaches 90% of page height. For content marketing and long-form editorial pages, tracking multiple scroll milestones (25%, 50%, 75%, 90%) provides a complete picture of content engagement and identifies exactly where readers disengage.

  1. In GTM, go to Triggers > New and select Scroll Depth as the trigger type.
  2. Under Vertical Scroll Depths, select Percentages and enter: 25, 50, 75, 90.
  3. Set the trigger to fire on All Pages, or restrict it to specific URLs using Page URL conditions.
  4. Save the trigger.
  5. Create a new GA4 Event tag with the event name 'scroll_milestone'.
  6. Add an Event Parameter: scroll_depth_threshold with the value {{Scroll Depth Threshold}}.
  7. Assign your Scroll Depth trigger to the tag, save, and test by scrolling through a page in Preview mode. This replaces the single 90% Enhanced Measurement scroll event with four distinct events, giving you a full scroll engagement funnel. A page where 70% of users reach the 25% mark but only 10% reach 75% has a fundamentally different content problem than a page showing steady scroll engagement throughout.

How to track form submissions

Key Takeaway: Form submission events are among the most important custom events on any lead generation site. Use GTM's "Check Validation" option so you only count genuine, successfully submitted forms — not validation errors.

Form submission tracking captures one of the highest-value conversions on most websites. GTM's Form Submission trigger detects standard HTML form submissions automatically — no changes to your form HTML or backend are required.

  1. In GTM, go to Triggers > New and select Form Submission as the trigger type.
  2. Enable 'Check Validation' to fire the event only on successfully validated form submissions, not incomplete or invalid attempts.
  3. Select Some Forms and add a condition targeting your specific form: Page URL contains /contact, or Form ID equals 'contact-form'.
  4. Save the trigger.
  5. Create a new GA4 Event tag with the event name 'form_submit'.
  6. Add Event Parameters: form_id (value: {{Form ID}}) and form_destination (value: {{Form Target}}).
  7. Assign the trigger, save, then test by submitting your form in GTM Preview mode and verifying the event fires. Note: GTM's Form Submission trigger works reliably with standard HTML forms. AJAX forms (forms that submit without a page reload) and forms on single-page applications built with React, Vue, or Angular require additional configuration using custom JavaScript or the dataLayer.push() method.

How to track video plays

GTM's YouTube Video trigger automatically detects YouTube embeds on your page and fires events at configurable video milestones. This works without any changes to your YouTube embed code and requires only that the video player is loaded on the page.

  1. In GTM, go to Triggers > New and select YouTube Video as the trigger type.
  2. Enable the events you want to capture: Start, Complete, and Pause are the most useful for GA4 event tracking setup.
  3. For milestone tracking, enable Progress and set percentage thresholds (25, 50, 75).
  4. Set the trigger to fire on All Pages, or restrict it to pages that contain video content.
  5. Create a GA4 Event tag with the event name 'video_engagement'.
  6. Add Event Parameters: video_title (value: {{Video Title}}), video_percent (value: {{Video Percent}}), and video_status (value: {{Video Status}}).
  7. Save, then test by playing a YouTube video on your site while in GTM Preview mode.

Frequently asked questions

GA4 recommended events are predefined event names that Google specifies for common use cases — such as 'purchase', 'sign_up', or 'generate_lead'. When you use these exact names, GA4 automatically populates them in standard reports and pre-built funnels. Custom events use names you define yourself and only appear in GA4 Explorations. Where a recommended event name matches your use case, use it for better native reporting integration.

Do GA4 custom events require a developer?

No. GA4 custom events can be configured entirely through Google Tag Manager without modifying your website's source code. GTM provides native triggers for clicks, form submissions, scroll depth, YouTube videos, and element visibility. The only cases requiring developer involvement are AJAX form tracking, custom data layer pushes, and events on single-page applications built with React or similar frameworks.

How many custom events can GA4 track?

According to Google's official GA4 documentation, GA4 supports up to 500 distinct event names per property. Each event can have up to 25 custom parameters, and each parameter value can be up to 100 characters long. For most websites, the 500-event limit is not a practical constraint — but it is a reason to keep your event naming taxonomy structured and avoid creating redundant duplicates.

Why aren't my GA4 custom events appearing in standard reports?

GA4 custom events (events that do not use Google's predefined recommended event names) do not appear in standard reports by default. To view them, go to GA4 Explorations > Blank Exploration and add 'Event name' as a dimension and 'Event count' as a metric. To surface a custom event in standard reports, register it as a custom dimension in GA4 under Admin > Custom Definitions > Custom Dimensions.

How do I test GA4 custom events before publishing?

Use GTM's Preview mode alongside GA4's DebugView. Enable Preview mode in GTM, navigate to your site, perform the interaction you've tagged (click a button, submit a form, scroll down), and verify the tag fires in the Tag Assistant panel. Then open GA4 > Admin > DebugView and confirm the custom event appears in the event stream. Only publish the GTM container once both tools confirm the event fires correctly with the correct parameter values.


Conclusion

GA4 custom event tracking via Google Tag Manager covers the four most valuable interaction types — button clicks, scroll milestones, form submissions, and video engagement — without requiring code changes to your site. The setup pattern is consistent across all four: create a trigger that detects the interaction, create a GA4 Event tag that names the event and attaches relevant parameters, test in Preview mode alongside DebugView, and publish. Once these four event types are in place, you have the data foundation to analyse user behaviour, measure content performance, and track lead generation with precision. Once your GA4 custom events are tracking correctly, tools like Meaning (https://usemeaning.io) let you ask questions about your event data in plain English — no Explorations or custom reports required.