June 29, 2026Analytics

Google Tag Manager Checker: Tools and a Debug Checklist

Why You Need a Google Tag Manager Checker Workflow

Two weeks ago I audited a B2B SaaS company running about EUR 18,000 a month across Google and LinkedIn Ads. Their head of marketing told me GA4 showed 74 demo requests in May. HubSpot showed 131. A 43 percent gap.

The tags were in the container. The pixels existed. But nobody had verified whether they fired correctly since the original implementation eight months earlier. In that time, a site redesign broke two trigger conditions, a developer accidentally published a second GTM container on three pages, and a Consent Mode update silenced a conversion tag for every visitor who declined cookies. None of this produced an error. GTM does not email you when things go wrong.

The fix is not one magic tool. It is a repeatable process: specific tools used in a specific order. Below is the google tag manager checker workflow I run during every container audit, broken into tools and a step-by-step checklist.

The Core Tools: What to Use and When

GTM Preview Mode

This is your primary debugging instrument. Click the Preview button in your GTM workspace and it opens Tag Assistant in a connected session with your site. You see every event that fires (Container Loaded, DOM Ready, Window Loaded, custom events), which tags fired or did not fire on each event, and the full state of every variable at each moment.

GTM preview mode answers the two questions that matter most: did the tag fire, and did it fire with the right data? If I could only use one tool for the rest of my career, this would be it.

Practical tips:

  • Always test in an incognito window. Extensions, cached consent states, and logged-in sessions will skew your results.
  • Click through the event timeline on the left panel. Do not just check that a tag fired -- click the tag and inspect the outgoing parameters. A Google Ads conversion tag that fires with value: undefined is worse than one that does not fire at all, because it creates a phantom conversion that corrupts Smart Bidding.
  • Test every conversion path, not just the happy path. Check what happens when a form validation fails and the user resubmits, when a user navigates back and forward, when the page loads via an SPA route change.

For a deeper look at what each trigger type does inside Preview mode, see Google Tag Manager Triggers: 5 Silent Misconfigurations.

Chrome Extensions for Google Tag Manager

GTM Preview mode shows you what happens inside your container. Chrome extensions for google tag manager show you what happens outside it -- what data actually reaches Google Analytics, Google Ads, Meta, and other endpoints.

The extensions I install on every audit machine:

ExtensionWhat it doesWhen I use it
Google Tag Assistant CompanionRequired for GTM Preview mode to connect to your siteEvery debug session
dataLayer Inspector+Shows every dataLayer.push() in real time with syntax highlightingVerifying push timing and payload structure
GA DebuggerEnables debug mode for GA4, logging every event to the browser consoleVerifying GA4 event parameters match the dataLayer values

A dataLayer inspector extension is particularly useful when the problem is not in GTM itself but in what your site sends to it. If the dataLayer.push() never fires, or fires with the wrong values, no amount of GTM configuration will fix your tracking. I wrote about this exact failure pattern in What Is a Data Layer and Why Tracking Breaks Without One.

Browser Console

The simplest google tag manager checker is one you already have. Open the browser console (F12 or Cmd+Option+J) and type dataLayer. You get the full array of everything pushed since the page loaded -- in five seconds you know whether the data layer exists and whether the values look reasonable.

Two other useful console checks:

  • google_tag_manager -- returns the container objects on the page. Two container IDs when you expected one means a duplicate installation.
  • document.querySelectorAll('script[src*="googletagmanager"]') -- counts GTM scripts. More than one per container ID is a problem, common on WordPress sites where a plugin and a manual snippet both load the container. I covered the correct approach in Google Tag Manager in WordPress: Install It Right.

GA4 DebugView

For GA4 events specifically, DebugView in the GA4 admin shows a real-time stream of events from debug-mode devices. Enable it by adding debug_mode: true to your GA4 config tag in GTM, or by using the GA Debugger extension.

GTM Preview tells you what was sent. DebugView tells you what GA4 actually received. When they disagree, the problem is between the two -- typically a network-level ad blocker, a broken consent configuration, or a server-side tracking layer that is not forwarding the event.

The GTM Debug Checklist: 12 Checks in Order

Here is the checklist I follow during every GTM container audit. Each check builds on the previous one -- run them in order.

Phase 1: Container hygiene

1. Verify container installation. Load your site in incognito, open the console, and confirm exactly one GTM container snippet per container ID. Check both the <head> snippet and the <noscript> iframe in the <body>. On WordPress and Shopify sites, duplicate installation is the single most common issue I find.

2. Check container version. In GTM, go to Versions and confirm the latest published version matches what you expect. I have seen live sites running a version from six months ago because someone was working in a draft workspace and never published. Your preview session tests the current workspace -- not what is live.

3. Count tags, triggers, and variables. A healthy container has a tag-to-trigger ratio close to 1:1. If you have 40 tags and 12 triggers, some tags share triggers, and shared triggers are the leading cause of double-firing. Export the container JSON from Admin and search for orphaned tags (tags with no trigger) and orphaned variables (variables referenced by nothing).

Phase 2: Tag-level verification

4. Test every conversion tag. Open GTM preview mode, walk through each conversion flow, and verify each conversion tag fires exactly once with the correct parameters. Check transaction_id, value, currency, and any enhanced conversion parameters. A single missing parameter can break value-based bidding in Google Ads or deduplication in Meta CAPI.

5. Verify Google Ads conversion labels. Each Google Ads conversion action has a unique label. In Preview mode, click the Google Ads conversion tag when it fires and confirm the conversion_label matches what is in your Google Ads account. Mismatched labels mean the conversion fires in GTM but never appears in Google Ads. I have a detailed walkthrough for this in Google Ads Conversion Label: Find It, Fix It.

6. Check event parameters in GA4 DebugView. After running your conversion flow with debug mode enabled, switch to DebugView in GA4. Confirm each event arrives with all expected parameters, correct data types (numbers as numbers, not strings), and no unexpected duplicates. Pay special attention to custom event naming and parameter limits.

Phase 3: Trigger and timing verification

7. Check trigger conditions. For every trigger with a condition (Page Path equals, Click Class contains, Custom Event matches), verify the condition actually evaluates to true at the right moment. In Preview mode, click the event, open the Variables tab, and confirm the variable has the expected value. A typo in a CSS class or a changed URL path is enough to silently kill a trigger.

8. Test page load sequence. Verify that data layer pushes happen before the triggers that depend on them. In Preview mode, the event timeline shows the order: Container Loaded, then your custom pushes, then DOM Ready, then Window Loaded. If a tag expects a data layer variable that is only pushed after DOM Ready, but the trigger is set to Container Loaded, the variable will be undefined when the tag fires.

9. Test SPA navigation. If your site uses client-side routing (React, Next.js, Vue, Angular), navigate between pages in Preview mode and confirm pageview tags re-fire on each route change. Standard Page View triggers do not fire on SPA navigations -- you need a custom event pushed by your router. If you see a pages-per-session metric near 1.0 in GA4, this is almost certainly why.

Phase 4: Consent and data flow

10. Test consent scenarios. Deny all cookies, then check whether tags fire appropriately. Tags running in Consent Mode Advanced should still fire but send cookieless pings. Tags not configured for consent mode should not fire at all after denial. Cross-reference with the Network tab -- confirm the consent state parameter (gcs) matches the user's choice.

11. Verify server-side forwarding. If you run a server-side GTM container, open the server container's Preview mode simultaneously and compare event payloads side by side. Missing parameters at the server level usually mean the web container's transport tag is not mapping all variables correctly.

12. Cross-check with your source of truth. Submit a real test conversion. Verify it appears in GA4 (via DebugView or Realtime), in Google Ads (conversion action report, allow up to 3 hours for delay), and in your CRM or backend. If the numbers match across all three, your container is clean. If they do not, use the timestamp of your test event to trace where the signal dropped.

GTM Container Audit: When to Do a Full Review

The checklist above is a debugging workflow. A full GTM container audit is broader -- it includes governance, documentation, and drift analysis. Run a full audit in these situations:

  • After a site redesign or platform migration
  • When conversion numbers diverge from your backend by more than 10 percent
  • When you add a new ad platform or tracking endpoint
  • Quarterly, as preventive maintenance (the same cadence I recommend for a GA4 audit)

A container that was clean six months ago is probably not clean today. Developers ship changes. Consent banners get updated. New team members add tags without removing old ones. Tracking rots. The google tag manager checker process described above catches the rot before it compounds into budget-level damage.

If you do not have the time or the GTM depth to run this yourself, that is exactly what I deliver in a tracking audit -- a prioritized list of everything that is broken, misconfigured, or missing, with specific instructions to fix each item.

FAQ

What is the best google tag manager checker tool?

GTM Preview mode combined with Tag Assistant is the most reliable tool because it shows tag firing status, variable values, and trigger evaluations in a single interface. Chrome extensions like dataLayer Inspector add visibility into what your site pushes to the data layer before GTM processes it. Used together they cover both sides of the debugging process.

How do I enable GTM debug mode?

Click the Preview button in your GTM workspace. This opens Tag Assistant and connects a debug session to your site in a new browser tab. You can also enable debug mode for GA4 specifically by adding the debug_mode parameter set to true in your GA4 configuration tag, which activates DebugView in the GA4 admin interface.

How often should I audit my GTM container?

At minimum, run through the debug checklist after every site redesign, platform migration, or new tag deployment. A full container audit should happen quarterly. In my experience containers start drifting within three to six months of the last review, especially on sites with active development teams pushing frequent updates.

Can Chrome extensions replace GTM Preview mode for debugging?

No. Chrome extensions for Google Tag Manager show you data layer contents and network requests, but they cannot show you trigger evaluation logic, variable states at each event, or which tags were blocked by trigger conditions. Preview mode is the only tool that gives you the full picture of what happens inside the container. Extensions are best used alongside it, not instead of it.

What are the most common issues found in a GTM container audit?

The five issues I find most often are duplicate container installations, conversion tags firing with missing or incorrect parameters, triggers referencing variables that return undefined, tags not re-firing on single-page app navigation, and consent mode not connected to the cookie banner. Any one of these can cause a double-digit percentage gap between your analytics and your actual business data.

Not sure your GTM container is actually tracking what you think it is? Book a tracking audit -- I will tell you exactly what is broken and hand you a prioritized fix list.

Ready to fix your marketing measurement?

Take assessment →