measuremy.site

How to check if your Google Analytics 4 tag is installed (and only counting once)

Your GA4 reports look empty, or suspiciously high, or a new site just went live and you want to be sure tracking is on before you announce it. Before digging into report settings, check the simplest thing: is the tag on the page, and is it there exactly once?

1. Look in the page source

Open the page, view the source (right-click, then "View page source"), and search for G-. A directly installed GA4 tag loads gtag/js?id=G-XXXXXXX and runs gtag('config', 'G-XXXXXXX'). If you use Google Tag Manager instead, search for GTM-; GA4 itself will then be inside the container, not in the source.

Search for UA- too. Universal Analytics stopped processing data in July 2023 (July 2024 for paid 360 properties), so a UA- tag still on the page does nothing except load extra code.

2. Watch the network tab

The source shows that a tag is there; the network tab shows it's sending data. Open the browser's developer tools, go to the Network tab, filter for collect, and reload the page. A working GA4 setup sends a request with your measurement ID to Google's collection endpoint. No request usually means a consent banner is holding the tag back (accept it and try again), an ad blocker is stopping it, or the tag is broken.

GA4's own Realtime report and DebugView show the same thing from the other side; see Google's documentation for turning on debug mode.

3. Run a tag checker

The free analytics tag checker reads a page and lists the analytics tools, tag managers and ad pixels it loads, from GA4 and Tag Manager to the Meta and LinkedIn pixels, Hotjar, Clarity, Plausible and others. More usefully, it flags setups that are wrong:

It reads the page's HTML as the server sends it, so tags added later by Tag Manager or after a cookie banner is accepted won't show there. For those, the network tab in step 2 is the reliable check.

Fixing a duplicate tag

Search your theme, plugins and Tag Manager for the measurement ID and keep exactly one copy. On WordPress the usual culprit is a tag pasted in the theme header plus an analytics plugin doing the same job. After removing one, reload with the network tab open and confirm a single page view is sent.

When the tag is fine but numbers still look wrong

If the tag loads once and sends data, look at what's around it: a consent banner that most visitors dismiss, ad blockers among a technical audience, or campaign links that land in Unassigned (see why GA4 shows campaign traffic as Unassigned). Some sites run a lightweight cookieless tool like measuremy.site alongside GA4 as a cross-check; the gap between the two is a rough measure of what GA4 is missing.

See it on your own site

measuremy.site is cookieless analytics your coding agent can read. 30-day free trial, no card. Plans from $9/month.

Start free trial See the live demo

Add measuremy.site analytics to this project: connect the measuremy.site MCP server at https://a.measuremy.site/mcp (it signs in with OAuth, no key), then tell me how to sign in. Details: measuremy.site/llms.txt

Free tools

All free tools

More from the blog