Google Tag Manager help: a structured troubleshooting path
"It's not working" covers a lot of ground. A structured path narrows it to one of a small number of actual causes, fast - instead of guessing at the container configuration.
Most Google Tag Manager problems fall into one of four places: a trigger condition that never actually matches, data layer timing (a tag reading a value before it exists), consent gating blocking a tag that otherwise looks correctly configured, or a third-party script conflict. Preview mode is the starting point for all four, because it shows what actually fires - config-reading comes second, once runtime evidence points at a specific cause.
Start with Preview mode, not the container
Reading tags, triggers, and variables tells you what a container is supposed to do. It doesn't tell you what fires on a real page, under real consent and load conditions. That's the same reasoning behind our runtime-first audit method - troubleshooting one tag follows the identical logic at a smaller scale: open Preview, reproduce the situation, and watch what actually happens before assuming you know why.
The four places things usually break
| Category | Symptom | Where to look |
|---|---|---|
| Trigger conditions | Tag never fires, or fires on the wrong pages | Preview mode's Tags tab, checking which triggers evaluated true or false |
| Data layer timing | Variable resolves as undefined intermittently | Preview's Data Layer tab, checking push order against tag firing order |
| Consent gating | Tag shows as fired in Preview but the platform never receives data | Consent state at time of fire, and the tag's consent settings |
| Third-party conflicts | Errors only on specific pages or after a specific plugin update | Browser console errors, Content-Security-Policy violations |
A troubleshooting path by symptom
- Tag fires in Preview but destination never gets data → check consent state and the actual outbound network request, see this QA page.
- Variable reads undefined sometimes → likely a data layer race condition, see this QA page.
- Click trigger doesn't fire on some elements → usually dynamically-inserted elements, see this QA page.
- Page appears to break or block scripts after adding a tag → check for a Content Security Policy conflict, see this QA page.
When to escalate to an audit
A single misbehaving tag is a troubleshooting problem. A container where nobody can explain half the tags, or where fixing one issue keeps surfacing another, is a governance problem - that's what a full Google Tag Manager audit is built to find.
Common questions
Where should I actually start when a GTM tag isn't working?
Preview mode, before reading the container configuration. It shows you what actually fires, in what order, with what variable values - which tells you immediately whether the problem is the trigger never matching, the tag firing but sending wrong data, or the tag not existing at all.My tag fires in Preview but the destination platform never receives the data - what's wrong?
This usually means the tag is firing with incorrect parameters, a consent gate is blocking the outbound request after GTM's own preview shows the tag as fired, or the destination platform (GA4, an ad pixel) has its own separate configuration issue unrelated to GTM. Check the browser's Network tab for the actual outbound request next.When should I stop self-troubleshooting and get an audit instead?
When the same category of problem keeps recurring across multiple tags, when nobody can explain why a tag was configured a certain way, or when the fixes you've tried address symptoms but the underlying numbers still don't reconcile - that pattern usually means a structural governance issue, which a full audit is built to find.
Stuck Past the First Few Checks?
Send us what Preview mode is showing and we'll tell you which of the four categories it actually is.
Get GTM Troubleshooting Help