What we check
In the HTML: the scan reads only the executable parts of the page, script sources, inline scripts and pixel URLs, and looks for the signatures of twelve measurement tools: GA4 (gtag.js with a G-ID), Google Tag Manager (container ID), Plausible, Matomo, Piwik PRO, Fathom, Pirsch, Simple Analytics, Cloudflare Web Analytics, Mixpanel, PostHog and Adobe Analytics. A match means "ok" with the list. No match is critical: no measurement active.
Two exceptions soften the verdict. If the scan detects a first-party endpoint (server-side tagging finding), the critical becomes a note, because measurement then runs server-side. And starting the scan in the "server-side / custom" context gives the same downgrade.
What the scan cannot see: scripts the CMP serves as text until consent, custom loaders without the known hostnames, and anything that loads only after a click. Code in examples and documentation does not count; until September 2026 the scan took g-recaptcha for a GA4 property, since then the IDs are case-sensitive.
Why it matters
No tag, no data: no reporting, no conversion for Google Ads, no audience for remarketing. Sounds trivial, happens after almost every relaunch. The snippet lived in the old theme, the new theme has none, and because nobody opens the dashboard in the first week, it shows up with the monthly report. Four weeks of gap, gone for good. Which tools the scan detects also says something about the stack: Plausible or Fathom means cookieless, GA4 with GTM means consent duty, both together means something to clarify.
Common causes
- The site deliberately tracks server-side or cookieless, then the finding is expected and not an error.
- The tag sits behind the CMP blocking and only appears after consent, invisible to the static scan.
- After a relaunch the tracking snippet simply did not move along.
- An ad or tracking blocker at CDN level filters the known script hosts before delivery.