TagIntact
Module 2 · Lesson 4 of 4 · 9 min

Preview mode and the network tab

The two views that together answer "did it fire, with what, and did it arrive" — and the habit of checking all three before you publish.

Verified against Google Tag Manager Preview (Tag Assistant) + Chrome DevTools, September 2026 on 2026-09-27

You've built a few tags. Before any of them go live, this lesson is the checklist you run — every time, on every change, for as long as you do this work.

Preview mode: GTM's side of the story

Click Preview in the container. Enter the URL, connect. Two windows: your site with a "Tag Assistant connected" badge, and the debug window.

The debug window's left column is the event timeline — every event GTM saw on this page, in order: Consent Initialization, Initialization, Container Loaded, DOM Ready, Window Loaded, then your clicks and dataLayer pushes. Click any event and the right side shows:

  • Tags — which tags fired on this event and which didn't. Click a tag to see the resolved values of every parameter. This is where undefined in a value field jumps out.
  • Variables — every variable's value at that moment. If a Data Layer Variable is empty here, the push didn't have the key (or the key path is wrong: ecommerce.value not ecommerce_value).
  • Data Layer — the array state after this event. The source of truth for "what did the site actually send."
  • Errors — JavaScript errors from Custom HTML tags. Read this tab; they're silent everywhere else.

What Preview cannot tell you: whether the request left the browser, and whether it was accepted. It shows intent.

The network tab: what actually left

DevTools → Network → filter collect (GA4) — or gtm.js, tr/? (Meta), bat.bing (Microsoft), whatever vendor you're checking. Keep it open while you click around.

For each request:

  • Status — 204 or 200 is accepted. 0/(blocked) means an extension or a content-security policy stopped it. A 4xx means the vendor rejected it.
  • Payload / Query — the parameters. en, tid, ep.*, epn.* for GA4. Confirm the value is a number with no currency symbol, the event name is exact, the tid is the right property.
  • Count — one action, one request. This is the check that catches duplicate installs, and it's the one people skip.

Preview says the tag fired but there's no request? Look for a JS error earlier on the page (Errors tab, then the Console). Look at consent state — a denied analytics_storage suppresses GA4 hits entirely in basic Consent Mode. Look for an ad blocker in this browser.

DebugView: the receiving end

GA4 → Admin → DebugView. While Preview is connected, your browser is in debug mode and your events stream here within seconds, with every parameter expandable. If a request shows 200 in the network tab but nothing appears in DebugView: wrong tid, or an internal-traffic / developer-traffic filter is excluding you (check Admin → Data filters).

The three-view habit

Before you publish anything:

  1. Preview — the tag fired on the right event, and every parameter resolved to a real value.
  2. Network — one request per action, right endpoint, right tid, 2xx status.
  3. DebugView — the event arrived with the parameters you expect.

Then Submit → Publish, with a version name that says what changed (v14 – add cta_click event). Versions are your undo button; a good name is what makes the undo findable when something breaks two weeks later.

Do it on the sandbox

Point Preview at the sandbox, add a product to the cart, and walk the three views for add_to_cart. Then go to checkout, place the order, and do it again for purchase on the thank-you page — including the refresh test: reload the thank-you page and confirm no second purchase request appears. The sandbox guards against it; your real site needs to as well.

Now reload the sandbox home page with the scanner: tagintact.com/tools/tracking-health-scanner. It's the network-tab check, run from outside, on any page, in ten seconds. Module 2's quiz is next.

Try it in the sandbox

The sandbox store fires real ecommerce dataLayer events and loads your GTM container, so you can build the tag from this lesson against live events.

Open the sandbox
Preview mode and the network tab — Tracking Foundations · TagIntact