TagIntact
Module 1 · Lesson 1 of 4 · 7 min

What a tag is, and why it breaks silently

The one mental model that explains every tracking bug you will ever debug.

Verified against Google Tag Manager web container + GA4, September 2026 interface on 2026-09-27

A tag is a small piece of JavaScript that runs in a visitor's browser and sends a request to somebody's server. That's the whole thing. Google Analytics is a tag. The Meta pixel is a tag. A chat widget, a heatmap recorder, a Google Ads conversion — tags.

Every tag does three things:

  1. Waits for something to happen — a page loads, a button gets clicked, a form submits.
  2. Collects some values — the page URL, a product ID, an order total.
  3. Sends a request to a vendor's endpoint with those values in it.

Open the network tab in your browser's dev tools on almost any commercial site and filter for collect. Every row you see is step 3 happening: a request to https://www.google-analytics.com/g/collect?... with the event name and its parameters in the query string. That request is the only thing GA4 ever receives. Everything in every report is built from those rows.

Why it fails without telling you

Here is the part that makes this field different from normal software: none of those three steps can fail loudly.

  • If step 1 never happens — the trigger is misconfigured — the tag simply never runs. No error. GA4 doesn't know the event existed, so it can't tell you it's missing.
  • If step 2 collects the wrong thing — undefined where the order total should be — the request still goes out. GA4 receives a purchase with no value and records exactly that, without complaint.
  • If step 3 is blocked — by an ad blocker, a consent setting, a content-security policy — the browser drops the request. The tag "fired" from GTM's point of view. Nothing arrived.

A normal application throws an exception, logs a stack trace, pages someone. A tag produces a plausible-looking number that is wrong. Revenue flat while orders are up. Sessions doubled since the theme update. Conversions that stopped on a Tuesday.

You find out when someone compares two reports and asks why they disagree. That is usually weeks later.

The three places to look

Because a tag is only ever those three steps, every tracking bug lives in exactly one of three places:

Step Where to look Tool
Did it fire? GTM Preview mode — the tag shows under "Tags Fired" for the event Preview
Did it collect the right values? The variables panel in Preview, or the request parameters in the network tab Preview + network tab
Did it arrive? The network tab: was there a request, and did it get a 2xx response? Network tab, GA4 DebugView

You'll use all three in Module 2. For now, the only thing to keep is the model: fire, collect, send — and none of them tell you when they fail.

What "intact" means

This course, and the tools on this site, are organized around that model. The Tracking Health Scanner watches step 3 from outside: it loads a page in a real browser and records every request that leaves it, so you can see what actually fired — once, twice, or not at all. The Container Auditor checks step 1 and 2 from inside: tags that can never fire, variables that don't exist, IDs typed in wrong.

Tracking is intact when all three steps happen, once, with the right values, on every page that matters. The rest of this course is how to get there and how to prove it.

What a tag is, and why it breaks silently — Tracking Foundations · TagIntact