Most GTM users know about triggers — they're the conditions that determine when a tag fires. Fewer know about Trigger Groups, one of GTM's most underused features. A Trigger Group lets you fire a tag only when multiple triggers have all fired during the same page load. This is fundamentally different from adding multiple conditions to a single trigger, and it unlocks tracking scenarios that are otherwise difficult or impossible to implement.
This guide explains how Trigger Groups work, when to use them, their limitations, and workarounds for scenarios they can't handle directly.
Trigger efficiency analysis
Our GTM Auditor identifies duplicate triggers, overly broad firing conditions, and orphaned triggers that slow your site. Optimize your triggers →
Understanding Trigger Groups
What Are Trigger Groups?
A Trigger Group is a special trigger type that fires only when all of its component triggers have fired at least once during the same page load. Think of it as an AND condition across multiple, independent events — not just multiple conditions on the same event.
Here's the key difference:
- Regular trigger with multiple conditions: The trigger fires when a single event meets ALL conditions simultaneously (e.g., a click where the element class is "cta" AND the page path contains "/pricing").
- Trigger Group: The group fires when multiple different events have all occurred (e.g., the page loaded AND a scroll event fired AND a click event fired). Each event can happen at different times during the page lifecycle.
How Trigger Groups Work Under the Hood
When a page loads, GTM starts monitoring all triggers in the group. Each time a component trigger fires, GTM marks it as "satisfied." When ALL component triggers have been satisfied at least once, the Trigger Group fires and the associated tag executes.
Key behaviors to understand:
- Order doesn't matter: The component triggers can fire in any order. The Trigger Group fires as soon as the last unsatisfied trigger fires.
- Once-per-page: By default, the Trigger Group fires at most once per page load. Once all conditions are met, the tag fires and the group is satisfied.
- No reset: Once a component trigger is marked as satisfied, it stays satisfied for the rest of the page lifecycle. If Trigger A fires, then Trigger B fires, the group fires — even if conditions for Trigger A are no longer true when Trigger B fires.
Use Cases for Trigger Groups
Qualified Lead Identification
You want to fire a conversion tag only when a user has: (a) viewed the pricing page, AND (b) started filling out the signup form on the same page. A single trigger can't express this because these are two separate interactions. A Trigger Group can fire after both conditions are met:
- Trigger 1: Page View where path contains "/pricing"
- Trigger 2: Element Visibility when the signup form becomes visible
- Trigger Group: Fires only when both triggers have fired
Engaged User Definition
Define a "highly engaged" user as someone who has: (a) scrolled past 75% of the page, AND (b) spent at least 30 seconds on the page. Set up a Scroll Depth trigger (75%) and a Timer trigger (30 seconds), then combine them in a Trigger Group to fire an engagement event only when both conditions are met.
Video and CTA Interaction
Track users who watched a product video AND clicked the "Start Free Trial" button on the same page. This helps measure the impact of video content on conversion behavior without custom JavaScript.
Content Consumption Milestones
Fire a "content_consumed" event when a user has: (a) scrolled to the bottom of an article, AND (b) spent a minimum time reading. This filters out users who quickly scroll through without reading from your engagement metrics.
Creating and Configuring Trigger Groups
How to Create a Trigger Group
- In GTM, go to Triggers → New.
- Click the trigger type selector and choose "Trigger Group" (it's at the bottom of the list under "Other").
- Click "Add Trigger" to add each component trigger. You can add as many as needed, but each trigger must already exist — you build trigger groups from existing individual triggers.
- Name the Trigger Group descriptively (e.g., "Group - Pricing View + Form Start").
- Use this Trigger Group as the firing trigger on your tag, just like any other trigger.
Important: The component triggers in a Trigger Group must be existing, saved triggers. You cannot create new triggers inline within the Trigger Group configuration — create them separately first.
Limitations and Workarounds
Single Page Load Scope
Trigger Groups reset on every new page load. If the user views pricing on one page and fills the form on a different page, the group won't fire because each page has its own trigger evaluation lifecycle. This is the most significant limitation of Trigger Groups.
SPA Considerations
For Single Page Applications (SPAs), the behavior depends on how your SPA manages page transitions. If the app uses "virtual page views" without full page reloads, the Trigger Group persists across route changes — which could be either a benefit or a problem depending on your use case.
No Sequence Enforcement
Trigger Groups don't enforce order. If you need Trigger A to fire before Trigger B (not just both to fire), Trigger Groups can't express that constraint. You'd need custom JavaScript or a data layer-based approach for sequenced triggers.
Workarounds for Cross-Page Logic
When you need trigger group-like behavior across multiple pages, use one of these approaches:
- Cookie-based state: When Trigger A fires, set a cookie (via Custom HTML tag). On subsequent pages, check the cookie value as a trigger condition for your final tag.
- Session/localStorage: Similar to cookies but uses browser storage. This is useful for multi-step processes within the same browser session.
- DataLayer variable persistence: Push a flag to the data layer when the first condition is met, then check for that flag in subsequent triggers.
- GA4 audiences: Instead of triggering a tag, create a GA4 audience with multiple conditions across sessions. This is the cleanest approach for multi-session behavior tracking.
GTM Complexity Check
NiceLookingData audits your trigger configurations and identifies opportunities to simplify complex workarounds using Trigger Groups. We also flag Trigger Groups with component triggers that may never all fire on the same page, helping you avoid invisible tracking blind spots.
Key Takeaways
- Trigger Groups fire when multiple independent triggers have all fired on the same page — unlike regular trigger conditions which filter a single event.
- Use cases include qualified lead identification, engagement scoring, and multi-interaction conversion tracking.
- The main limitation is single-page-load scope — use cookies or localStorage for cross-page trigger logic.
- Order of component trigger firing doesn't matter — the group fires when the last unsatisfied trigger fires.
- For cross-session behavior tracking, consider GA4 audiences instead of Trigger Groups.
Frequently Asked Questions
What are GTM trigger groups?
GTM Trigger Groups are a trigger type that fires only when every component trigger inside the group has fired at least once during the same page load. They let you express AND logic across independent interactions — for example, "fire this tag only after the user has both scrolled 75% of the page and spent 30 seconds on it." Unlike regular triggers with multiple conditions (which filter a single event), Trigger Groups combine the outcomes of separate events that may occur at different points in the page lifecycle.
When should I use GTM trigger groups?
Use Trigger Groups when a tag should only fire after multiple independent interactions have all happened on the same page. Common scenarios include engagement scoring (scroll depth AND time on page), qualified conversion signals (pricing page view AND form interaction), and content consumption tracking (article scroll AND minimum reading time). Trigger Groups are not the right tool when interactions span multiple pages, when order matters, or when the interactions happen across multiple sessions — in those cases, use cookies, localStorage, or GA4 audiences instead.
What is the difference between GTM trigger groups and sequence triggers?
Trigger Groups fire when all component triggers have fired in any order — order is irrelevant. Sequence triggers, which are not a native GTM feature but are sometimes implemented via custom JavaScript, enforce a specific firing order: Trigger A must fire before Trigger B before the tag executes. If you need "both events must happen" without caring about order, a Trigger Group is the right tool. If you need "Event A must happen first, then Event B" — for example, a user must see a product before clicking "add to cart" — you need a custom JavaScript approach or a data layer flag pattern.
Can GTM trigger groups replace custom JavaScript?
Trigger Groups can replace some custom JavaScript used for AND-condition tracking on a single page, but not all of it. They replace the pattern of "set a flag when Event A fires, check the flag when Event B fires" — that's now expressible without code. However, they cannot replace custom JavaScript that tracks cross-page state, enforces event ordering, handles session-level conditions, or requires data transformation. Trigger Groups are a clean, maintainable alternative to simple AND-logic in custom HTML tags, but complex behavioral tracking still requires code.
How do I create a GTM trigger group?
To create a Trigger Group: first build all the individual triggers you want to combine (they must be saved before you can add them to a group). Then go to Triggers, click New, and choose "Trigger Group" from the trigger type list — it's under the "Other" category at the bottom. Click "Add Trigger" to add each component trigger. Name the group descriptively (for example, "Group - Scroll 75 + Timer 30s"). Save, then attach the Trigger Group to a tag as its firing trigger, the same way you'd attach any other trigger.
Do GTM trigger groups affect tag performance?
Trigger Groups have a negligible performance impact. GTM evaluates trigger conditions as events fire, and marking a component trigger as "satisfied" in a group is a simple boolean state update with no measurable cost. The tags inside a Trigger Group fire at most once per page load by default, which actually reduces tag firing compared to unbounded triggers. The main performance consideration is ensuring that the component triggers themselves are well-scoped — a broadly scoped component trigger (like "All Clicks") evaluates on every click, and that evaluation cost applies regardless of whether it's inside a Trigger Group or not.
Can I use trigger groups with GA4 event tags?
Yes. Trigger Groups work with any tag type, including GA4 event tags. A common pattern is to fire a GA4 "engagement" event tag using a Trigger Group that combines a Scroll Depth trigger and a Timer trigger, so the event only fires for users who both scrolled and stayed. Another pattern is gating a GA4 conversion event behind a Trigger Group that requires both a page view trigger (scoped to the relevant page) and an interaction trigger (a click or form start), producing higher-quality conversion signals than firing on the interaction alone.
What are GTM sequence triggers?
GTM sequence triggers are not a built-in trigger type in GTM — the term refers to a pattern implemented in custom JavaScript where you track whether events have fired in a specific order before allowing a tag to execute. The typical implementation uses a data layer variable or a JavaScript closure as a state machine: when Event A fires, set a flag; when Event B fires, check if the flag is set and if so, push the final event to the data layer. This is more complex to build and maintain than a native Trigger Group, but it's necessary when ordering matters — for example, a user must add an item to cart before they can be considered to have "expressed purchase intent".
Analytics consultant turned founder. After years running the same GA4 and GTM audits across client engagements, Ludde built the audit into a product — so the pattern-matching takes a minute, not a meeting. More about Ludde →
Check your GTM container.
Upload your GTM export or connect live. Our auditor checks 44 best practices and gives you actionable fixes.