GA4's enhanced measurement handles the basics — page views, scrolls, outbound clicks. But what about tracking specific button clicks, form submissions, video plays, or CTA interactions? Most guides tell you to write JavaScript. You don't need to.
Google Tag Manager's built-in click tracking, form tracking, and visibility triggers let you set up custom GA4 events without touching your site's code. Here's the complete visual guide.
Step 1: Enable Built-In Variables
Before creating any triggers, enable the click-related built-in variables in GTM:
- Go to Variables → Configure in GTM
- Under Clicks, enable: Click Element, Click Classes, Click ID, Click URL, Click Text
- Under Forms, enable: Form Element, Form Classes, Form ID, Form URL, Form Text
- Under Visibility, enable: Percent Visible, On-Screen Duration
These variables capture information about every click and form interaction — you'll use them to create targeted triggers.
Step 2: Track a Button Click
Let's say you want to track clicks on your "Start Free Trial" button.
Create the Trigger:
- Go to Triggers → New
- Choose Click — All Elements
- Set to "Some Clicks" and configure the condition:
Click TextcontainsStart Free Trial - Alternatively, use
Click IDorClick Classesfor more precision
Create the GA4 Event Tag:
- Go to Tags → New → Google Analytics: GA4 Event
- Select your GA4 Configuration tag
- Event Name:
cta_click - Add event parameters:
button_text={{Click Text}},page_location={{Page URL}} - Set the trigger to your button click trigger
Step 3: Track Form Submissions
Form tracking catches leads, contact form completions, and newsletter signups.
- Create a trigger: Form Submission
- Enable "Wait for Tags" and "Check Validation"
- Filter by
Form IDorForm Classesto target specific forms - Create a GA4 event tag with event name
form_submitand parameters forform_idandform_destination
Pro tip: "Check Validation" ensures the trigger only fires on valid submissions, not on attempts where the browser blocks submission due to required fields.
Step 4: Track Scroll Depth (Beyond 90%)
GA4's enhanced measurement tracks scroll at 90% only. For more granular data:
- Disable the built-in scroll tracking in Enhanced Measurement
- Create a Scroll Depth trigger in GTM
- Set thresholds at 25%, 50%, 75%, and 100%
- Create a GA4 event tag with event name
scrolland parameterpercent_scrolled={{Scroll Depth Threshold}}
Step 5: Track Element Visibility
Want to know if users actually see your pricing section? Use element visibility triggers:
- Create a trigger: Element Visibility
- Selection method: CSS Selector (e.g.,
#pricing-section) - Set minimum percent visible: 50%
- Fire on: "Once per page"
- Create a GA4 event:
section_viewwith parametersection_name=pricing
Event Naming Best Practices
GA4 is strict about event naming. Follow these rules:
- Use snake_case:
cta_click, notCTA ClickorctaClick - Don't use reserved prefixes:
ga_,google_,firebase_ - Max 40 characters for event names, 40 for parameter names, 100 for values
- Max 500 distinct event names per property
- Register important parameters as custom dimensions in GA4
Event Tracking Audit
NiceLookingData analyzes your GA4 event setup — checking for naming issues, unregistered parameters, and missing key events. Run a free audit to see if your events are firing correctly.
Run a free GA4 audit on your property
Connect your Google Analytics 4 property. Our auditor runs 36+ checks and gives you an instant health score with a plain-English action plan.