Guide

How to check a website's GTM tracking

Google Tag Manager makes it easy to add tags - and just as easy to break them. Here's how to actually check whether a site's GTM tracking works, not just whether the container is installed.

Home / Guides / Check GTM tracking

Most people "check" Google Tag Manager by confirming the container is installed and calling it done. That's the least useful thing you can verify. A container can be live while the tags inside it never fire, fire twice, fire before consent, or ship a purchase with no value. Below is the exact process a tracking auditor uses to check whether a site's GTM setup actually works - by hand, and then in seconds.

The one-line version: installed ≠ firing, firing ≠ correct. You have to watch the real network requests and read what's inside them.

Step 1 - Confirm GTM is actually installed

Start with presence, but treat it as step zero, not the answer. Three quick ways:

View source

Open the page, view source (or DevTools → Elements) and search for GTM-. You should see the container ID like GTM-ABC1234 in both the <head> script and the <noscript> iframe. Only the head snippet in the body, or a missing noscript, is a red flag.

Tag Assistant

Google's tagassistant.google.com connects to the live page and lists every container and tag. It's the official tool and shows tags GTM intends to fire.

A browser extension

Extensions that list installed tags are fine for a 5-second sniff test - but remember they read the container config, not what actually happened on the wire.

Why presence lies: a tag can sit in the container with a broken trigger and never fire once. Presence tools happily report it as "installed". You have not checked anything yet.

Step 2 - Watch what actually fires

This is the real check. Every tag that works makes a network request. If the request isn't there, the tag didn't fire - no matter what GTM says.

Open DevTools (F12 or Cmd+Opt+I) → Network tab → tick Preserve log → reload the page and click through it. Filter the request list by these signatures to see each platform:

Now trigger the important actions - add to cart, submit a form, complete a test purchase - and watch whether the matching request appears each time. A tag that fires on page load but not on the actual conversion is the single most common (and most expensive) failure.

Faster inside GTM: if you have edit access, GTM Preview mode (Tag Assistant) shows a per-event timeline of which tags fired, which were blocked, and why a trigger didn't match. Use it alongside the Network tab, not instead of it - Preview shows intent, Network shows reality.

Step 3 - Read what's inside each event

A purchase event that fires but ships no value, currency or transaction ID is broken even though it "works". Click the request in the Network tab and inspect the Payload (query string or POST body). Minimum checks per platform:

If value is 0, currency is missing, or the transaction/event ID is absent, your reporting and ad-platform optimisation are running on bad data even though every dashboard shows "conversions".

Step 4 - Check consent timing

In the EU, tags that fire before the visitor accepts cookies are a GDPR problem - and a data-quality one. With DevTools Network open, load the page but don't click the consent banner. If GA4, Meta or Ads requests already appear, tags are firing pre-consent. Then accept, and confirm they fire properly afterwards. Consent Mode v2 should move gcs from G100 (denied) to G111 (granted) once consent is given.

The common GTM mistakes to look for

Or check it in seconds

Doing all of this by hand, on every page and every funnel step, is slow and easy to get wrong. duckmetric opens the page in a real browser, watches every request across GA4, Google Ads, Meta, TikTok and more, and tells you in plain language which GTM tags fire, which duplicate, which fire before consent, and which carry broken data - with a severity ranking and a rough estimate of what the gaps cost your ad budget.

Run a free GTM check

FAQ

How do I know if a GTM tag is actually firing?

Open DevTools → Network, reload the page, and look for the platform's request (e.g. /g/collect for GA4, /tr/ for Meta). If the request appears when the action happens, the tag fired. If it doesn't, the tag isn't firing regardless of what the container shows.

Can I check GTM on a website I don't own?

Yes - everything in steps 1-4 works from the outside using only your browser's DevTools, because you're watching the requests the page makes in your own browser. You just can't open GTM Preview mode without edit access to the container.

What's the difference between GTM Preview and the Network tab?

Preview shows what GTM intended to do - which tags matched their triggers. The Network tab shows what actually left the browser. A tag can fire in Preview but be blocked by consent, an ad blocker or an error before the request goes out, so you need both.

Why does my purchase show in GA4 but not match orders?

Usually a missing or non-unique transaction_id, a tag firing on more than the thank-you page, or a duplicate GA4 tag. Inspect the purchase request payload and confirm transaction_id, value and currency are present and unique per order.

Do I need to install anything to check GTM tracking?

No. The browser DevTools method needs nothing installed. duckmetric also runs the whole check from a URL with no signup for the free scan.

See also: GTM audit · how to track leads in GTM · how to monitor tracking before it breaks · detect server-side tracking

Check any site's GTM setup free

Paste a URL and see which tags actually fire - no signup.