analytics-checkanalytics-check

Know whether your tags actually fire.

Reading a page's HTML tells you nothing — anything deployed through GTM is injected at runtime and never appears in the source. This runs inside the page instead, so it sees the real network log: which containers loaded, which IDs are configured, and whether a single hit was ever sent.

Install

Drag this to your bookmarks bar, then click it on any page you want to check.

✓ Check analytics

Prefer the console? Same loader:

var d=document,s=d.createElement('script');s.src='https://analytics-check.konvert7.com/check.js?t='+Date.now();d.body.appendChild(s);

When the site has a strict CSP

Both of the above fetch check.js, and a strict script-src blocks that fetch. Running the loader from the DevTools console does not get around it: the console evaluates what you type, but the <script src> it appends is still the page loading a script, so the policy still applies. Paste the whole checker instead — it requests nothing.

(()=>{function G(t){return typeof t==="object"&&t!==…  // the whole checker, 12.5 KB, no network

What it checks

Google Tag Manager

  • Container ID, read from the gtm.js request
  • Container loaded but never initialised
  • More than one container on the page

Google Analytics 4

  • Measurement ID, from the tag and from the collect beacon
  • The same property measured twice — every session double counted
  • Tag present but no hit ever sent

Microsoft Clarity

  • Project ID, read from the tag request
  • Script loaded but window.clarity never booted
  • Recording but uploading nothing

Also detected, but only listed when they are actually on the page: Plausible, PostHog, Vercel Analytics, Meta Pixel, Hotjar. And the consent platform — OneTrust, Cookiebot, Osano, CookieYes or a bare TCF framework — so a tag that loaded but sent nothing names what is holding it instead of shrugging at you.

See it catch something

The demo page installs GA4 twice over and denies analytics consent. Run the bookmarklet there and it should report both. If it does not, the checker is broken — not your site.