Open the source of almost any commercial website and you will find a handful of short codes that look like licence plates: G-XXXXXXXXXX, GTM-XXXXXXX, AW-XXXXXXXXX, sometimes UA-XXXXXXX-X. They are easy to confuse, and confusing them is behind a surprising share of "we installed tracking but nothing shows up" tickets. Here is what each one is, what it talks to, and which combinations mean something is wrong.
G- is a GA4 measurement ID
A G- ID identifies one GA4 data stream. When the Google tag loads with this ID, it sends page views and events to that stream. A site normally has exactly one. Two different G- IDs on the same page usually means two installs stacked on top of each other, one from a theme and one from a plugin, and the result is double-counted sessions.
If your page has no G- ID anywhere, either you are not using GA4 or it is being injected by a tag manager at runtime, which brings us to the next prefix.
GTM- is a Tag Manager container
A GTM- ID is not an analytics property. It identifies a Google Tag Manager container, which is a bundle of tags, triggers and variables published to your site. The container can load GA4, Google Ads, Meta Pixel, TikTok and anything else, which is why a page with a GTM- ID and no visible G- ID can still be tracking perfectly: the G- ID lives inside the container.
The practical consequence is that a page-source search is not enough to audit a GTM site. You have to read the published container, or watch what actually loads in the browser.
AW- is a Google Ads conversion account
An AW- ID identifies a Google Ads account for conversion tracking. On its own it does nothing useful; it needs a conversion label (the part after the slash, as in AW-123456789/AbCdEfGh) to record a specific conversion action such as a purchase or a lead. Sites often have the AW- tag installed but never fire a labelled conversion event, which looks like tracking in a source scan and reports nothing in Google Ads.
UA- is Universal Analytics, and it is dead
A UA- ID belongs to Universal Analytics, which stopped processing data in 2023 and 2024. If you still find one on your site it is a leftover, and every request it sends is wasted bandwidth and a small performance cost. Remove it. Finding a UA- ID in a container is also a tell that nobody has cleaned the container in years, so expect other dead tags alongside it.
The combinations that mean trouble
- Two G- IDs on one page. Double counting. Keep one unless you are deliberately running a parallel property during a migration.
- GTM- plus a hardcoded G- in the HTML. Often the same property twice: once from the theme, once from the container. Same result as above.
- AW- with no conversion label firing. Installed but inert. Your ads are optimising to nothing.
- UA- anywhere. Dead weight. Delete it.
- G- but no GTM- on a Shopify or WordPress store with several apps. Not wrong, but every app will try to inject its own pixel, and without a container you have no single place to see what fires.
How to check your own site in a minute
View the page source and search for each prefix. Then open the browser's network panel, filter for collect and googleads, and reload: that shows what actually fires, including anything a container injected. The gap between what the source shows and what the network shows is where most tracking bugs live.
FAQ
Is a GTM- ID the same as a GA4 ID?
No. A GTM- ID is a Tag Manager container, which can load GA4 among many other tags. A G- ID is a GA4 data stream. A site usually has one of each when it uses both products.
Can I have more than one G- ID on a page?
You can, but you rarely should. Two measurement IDs mean two GA4 streams receiving the same hits, and unless that is a deliberate migration the result is double-counted sessions and conversions.
Should I remove old UA- tags?
Yes. Universal Analytics no longer processes data, so a UA- tag sends requests that are discarded. Removing it frees a request on every page load and usually reveals other stale tags in the same container.
The free audit at tageasy.io/check reads both the page source and the published container, lists every ID it finds, and flags duplicates and dead tags. No signup.