GTM triggers are conditions that determine when a tag fires — translating browser events like clicks, form submissions, and page loads into tag execution signals.
Quick Answer
GTM triggers are conditions that determine when a tag fires — translating browser events like clicks, form submissions, and page loads into tag execution signals.
Custom Event triggers are more reliable than CSS-selector click triggers — use data layer pushes for critical conversions
Always add filter conditions to triggers; firing tags on every interaction inflates data and slows page performance
Third-party iframe forms (HubSpot, Calendly) cannot be tracked with standard GTM Form Submission triggers
Key Takeaways
Custom Event triggers are more reliable than CSS-selector click triggers — use data layer pushes for critical conversions
Always add filter conditions to triggers; firing tags on every interaction inflates data and slows page performance
Third-party iframe forms (HubSpot, Calendly) cannot be tracked with standard GTM Form Submission triggers
How GTM Triggers Works
In Google Tag Manager, the trigger is the "when" of tag execution. GTM provides a library of built-in trigger types: Page View (fires on DOM Ready, Window Loaded, or Pageview), Click (All Elements or Just Links), Form Submission, Scroll Depth, Timer, History Change (for SPAs), YouTube Video, and Custom Event (fires when your code pushes a specific event name to the data layer). Each trigger can include filter conditions — for example, firing only when the Page URL contains "/contact" or the Click Text equals "Book a Demo".
Why GTM Triggers Matters for B2B Marketing
For B2B marketing analytics, the Custom Event trigger is the most powerful because it decouples your tag logic from the DOM structure of your site. When your developer pushes dataLayer.push({'event': 'demo_request_submitted'}) after a successful form submission, a Custom Event trigger listening for "demo_request_submitted" fires your GA4 conversion event reliably — regardless of page design changes or DOM restructuring. This architecture is far more robust than CSS selector-based click triggers.
GTM Triggers: Best Practices & Strategic Application
Best practices: always use specific trigger filters rather than firing tags on all pages or all clicks — this prevents data noise and reduces tag execution overhead. For click triggers, use the GTM Preview mode to inspect the Click ID, Click Classes, and Click Text values before writing your trigger conditions. Use Scroll Depth triggers with threshold values of 25%, 50%, 75%, and 90% to measure content engagement. Name triggers descriptively (e.g., "Click — CTA — Book Demo Button") to maintain a readable container.
Agency Perspective: GTM Triggers in Practice
A common mistake is relying on Form Submission triggers for embedded third-party forms (HubSpot, Calendly, Typeform iframes) — these forms exist in a separate frame context that GTM on the parent page cannot access. The solution is to listen for postMessage events from the iframe or use the form provider's native integration. Another mistake is stacking multiple tags on a single broad trigger (all page views) when those tags need different activation conditions — use dedicated triggers per tag for clarity and accuracy.
Frequently Asked Questions: GTM Triggers
GTM triggers are conditions that determine when a tag fires — translating browser events like clicks, form submissions, and page loads into tag execution signals.
DOM Ready fires when the HTML document has been parsed and the DOM is available, but external resources (images, scripts) may still be loading. Window Loaded fires after all resources on the page have fully loaded. For GA4 pageview events, DOM Ready is usually sufficient and fires earlier. Use Window Loaded only when your tag depends on elements that load asynchronously.
Dynamic elements added to the DOM after page load don't exist when GTM initializes. Use a Timer trigger or a Mutation Observer via custom JavaScript to detect when the element appears, then push a custom event to the data layer. Alternatively, use event delegation by attaching a click listener to a parent element that exists on page load and filtering by the child element's attributes.
Yes. A single GTM trigger can activate any number of tags simultaneously. This is efficient when multiple tracking pixels need to fire on the same condition — for example, a demo_request_submitted trigger can fire your GA4 conversion event, LinkedIn Insight Tag conversion, and Meta Pixel lead event all at once.
MV3 Marketing helps B2B companies apply these strategies to drive measurable pipeline growth. Our team executes analytics setup for technology, SaaS, and professional services companies.
ID used to identify users for 24 hours after last activity
24 hours
_gat
Used to monitor number of Google Analytics server requests when using Google Tag Manager
1 minute
_gac_
Contains information related to marketing campaigns of the user. These are shared with Google AdWords / Google Ads when the Google Ads and Google Analytics accounts are linked together.
90 days
__utma
ID used to identify users and sessions
2 years after last activity
__utmt
Used to monitor number of Google Analytics server requests
10 minutes
__utmb
Used to distinguish new sessions and visits. This cookie is set when the GA.js javascript library is loaded and there is no existing __utmb cookie. The cookie is updated every time data is sent to the Google Analytics server.
30 minutes after last activity
__utmc
Used only with old Urchin versions of Google Analytics and not with GA.js. Was used to distinguish between new sessions and visits at the end of a session.
End of session (browser)
__utmz
Contains information about the traffic source or campaign that directed user to the website. The cookie is set when the GA.js javascript is loaded and updated when data is sent to the Google Anaytics server
6 months after last activity
__utmv
Contains custom information set by the web developer via the _setCustomVar method in Google Analytics. This cookie is updated every time new data is sent to the Google Analytics server.
2 years after last activity
__utmx
Used to determine whether a user is included in an A / B or Multivariate test.
18 months
_ga
ID used to identify users
2 years
_gali
Used by Google Analytics to determine which links on a page are being clicked