Google Tag Manager Triggers: The Complete Guide
Triggers control when your GTM tags fire. Understanding all trigger types — and their edge cases — is the key to reliable tracking.
AttriModel Team
AttriModel Team
What Is a GTM Trigger?
A trigger is a condition that determines when a tag fires. Without a trigger, a tag never executes. Every GTM tag needs at least one trigger — even your GA4 base tag fires on the "All Pages" trigger (a Page View trigger that matches any page).
The 7 Trigger Types
1. Page View
Fires when the page DOM loads. Use this for: analytics base tags, pixel base codes.
Options:
- Page View: fires when GTM loads (earliest, before DOM is ready)
- DOM Ready: fires when HTML is parsed
- Window Loaded: fires after all resources (images, scripts) load
2. Click
Fires when an element is clicked.
- All Elements: fires on any click anywhere
- Just Links: fires only when an anchor tag is clicked
Use variables like Click URL, Click Classes, Click Text to filter which clicks trigger the tag.
3. Form Submission
Fires when a form is submitted. Works with native HTML forms. For AJAX forms, you need a custom event trigger instead.
4. Custom Event
Fires when a specific event name is pushed to the dataLayer. This is the most important trigger type for advanced tracking.
`javascript
// This push fires any Custom Event trigger matching "video_play"
window.dataLayer.push({'event': 'video_play', 'video_title': 'Product Demo'});
`
5. Element Visibility
Fires when a specified element enters the viewport. Use for: scroll depth tracking, lazy-loaded content, above-the-fold impression tracking.
6. Timer
Fires on a time interval. Use sparingly — fires regardless of user activity.
7. Scroll Depth
Built-in trigger for tracking how far users scroll. Configure by percentage or pixel depth.
Trigger Filters: The Power Move
Every trigger supports condition filters. Instead of creating separate triggers for 10 pages, use one Page View trigger with a condition:
- Page Path contains /blog/ → fires on all blog pages
- Page URL matches RegEx: /checkout|cart/ → fires on checkout and cart
Common Mistakes
Firing on all pages when you meant one page: Always filter your triggers. An accidental "All Pages" trigger on a conversion tag will inflate your conversion data.
Using Page View instead of DOM Ready: If your tag reads DOM elements, the element may not exist yet at Page View time. Use DOM Ready.
Missing AJAX form submissions: Native form triggers miss many modern forms. Test with GTM Preview and add custom event tracking if needed.