Review Audit Report

This page runs the audit scan against the GTM web container and GA4 property you saved in Discover, then walks you through what the scan found. The scan classifies every tag in the container, computes a readiness summary, and surfaces the items that need a human decision — either acknowledging that no core events were detected, or acknowledging each "routable with review" tag.

The scan is read-only; nothing in your live GTM or GA4 changes. Re-running it overwrites the latest audit results with a fresh snapshot and clears acknowledgements stored on those results — the page warns you about that before you re-run.

Happy path

  1. Step 1 — click Run audit; GSS fetches and classifies the live GTM container.
  2. Step 2 — review the detected core events; if none were found, tick the acknowledgement.
  3. Step 3 — acknowledge each tag flagged for review, then click Save.
  4. Continue to Acknowledge Findings.
Glossary
Audit run
One snapshot of scan + classification + readiness for the saved GA4 / GTM pair. Re-running replaces the snapshot and clears acknowledgements stored on it.
Classification
Per-tag bucket assigned by the scan: routable as-is, routable with review, browser-only, unsupported. Drives the Audit Checks summary and the tag inventory disclosures.
Core events
The high-signal GA4 events GSS expects to find in a typical container — purchase, add_to_cart, begin_checkout, generate_lead, and similar. Step 2 reports which were detected and lets you acknowledge if none were.
Routable with review
A tag the classifier could move server-side but only after a human confirms it. Each such tag appears in Step 3 with the reason for review; ticking the box and saving records the acknowledgement.
Audit Checks summary
The "Ready / Needs review" panel inside the decision record. It surfaces the six readiness rows GSS computes from the scan; each row links to the matching section of this guide.

Not covered on this page: picking the GA4 / GTM pair (Select GA4 and GTM) or recording the approval that unlocks downstream stages (Acknowledge Findings).

Before you start

  • Complete Select GA4 and GTM: both bindings must be saved.
  • Step 4 (the primary-tag wiring check) should be Verified or acknowledged via the override. Until both Discover bindings are saved, Step 1 below stays Locked.

Audit Report (decision record)

The decision-record card at the top of the page summarises the run. Below it (once an audit run exists), the Audit Checks panel renders the six readiness rows GSS computes from the scan, with a green "Ready" pill or an amber "Needs review" pill in the header.

Row Source What "done" looks like
Audit target From Discover (saved GA4 + GTM). Shows the GTM name and GA4 display name separated by a dot.
Last audit Set by Run audit / Refresh audit. Local timestamp; "Not yet run" until you do.
Report status Derived from the readiness checks. "Ready for acknowledgement" once core events and review items are resolved.
Review items Step 3 bulk-save form. "N of M acknowledged" (or "None" when there are no review tags).

Audit Checks — the six readiness rows

Each LED row in the Audit Checks panel maps to one of the sections below. The "?" link on a row opens the matching anchor in this guide.

1.Core events

Did the scan detect any of the high-signal GA4 events (purchase, add_to_cart, begin_checkout, generate_lead, etc.) at usable confidence?

Deep dive

What it checks. Inferred event names from the GA4 Event tags in the container; the row passes if at least one core event is present.

What counts as pass. Status is "pass" and the row shows the comma-separated event names.

What counts as attention. No core events detected. The Step 2 acknowledgement ("no core events expected") flips the row to "Acknowledged" without changing the underlying scan.

How to recover a true fail. Add the expected events in GTM, then re-run the audit. Otherwise, acknowledge in Step 2.

2.Ready for server-side path

Count of tags classified routable_as_is — tags GSS can mirror server-side without further human review.

Deep dive

What it checks. The classifier counts how many items landed in routable_as_is.

What counts as pass. At least one tag in this bucket. The row shows "N of M".

What counts as attention. Zero. Often greenfield. You can still continue via the Step 3 review-tag pathway, but a healthy production setup usually has at least a handful of routable tags.

3.Tags needing review

Count of tags classified routable_with_review — routable in principle, but only after a human signs off. Step 3 is where you do that sign-off.

Deep dive

What it checks. Count of routable_with_review items; the row passes only when every one has been acknowledged.

What counts as pass. Either zero review items, or all acknowledged. The row shows an "acknowledged" badge in the latter case.

What counts as attention. Any unacknowledged review items. Step 3's bulk-save form is where you resolve them.

Removing an acknowledgement. Untick a previously-acknowledged tag and Save. The row reverts to "Needs review" and any downstream Acknowledge Findings approval is cleared.

4.Browser-only tags

Tags that fundamentally can't be moved server-side — they need browser context (DOM access, page-load timing, client-only SDKs) to do their job.

Deep dive

What it checks. Count of browser_only classifications.

What counts as informational. The row is neutral by default — browser-only tags stay in the web container and aren't a blocker. The row only flips to attention if the underlying readiness check escalated it.

5.Unsupported patterns

Tags GSS doesn't know how to route — often custom HTML, vendor SDKs without a server-side equivalent, or tag types the classifier doesn't model yet.

Deep dive

What it checks. Count of unsupported classifications.

What counts as informational. Like browser-only, this row is neutral by default. The full tag inventory disclosure inside Step 3 shows which specific tags fell here so you can sanity-check.

6.Complexity rating

A heuristic Low / Moderate / High based on the ratio of browser-only + unsupported + review items to total tags.

Deep dive

What it tells you. A High rating isn't a blocker — it's a heads-up that the migration will need more careful planning. The row passes at Low, is neutral at Moderate, and amber at High.

1 Scan the selected GA4 and GTM setup

Until the GA4 and GTM bindings are saved in Discover, Step 1 is Locked and links back to Select GA4 and GTM. Once they're saved, the step becomes actionable and shows a Run audit button (note: may take up to a minute). Click it; GSS fetches the GTM container's live published version, parses every tag / trigger / variable, classifies them, and produces the readiness report above.

Once an audit run exists, Step 1 flips to Complete with a "Last run" timestamp and the button label changes to Refresh audit. The step warns you with "Re-running will clear acknowledged review items" so you don't accidentally lose the Step 3 work below.

2 Which events will GSS carry forward?

After the audit runs, Step 2 renders one of three states:

  • Found N core events — the scan detected at least one core event. The detected event names are rendered as chips. No action needed.
  • Needs review — no core events were detected. A note lists examples (purchase, add_to_cart, begin_checkout, generate_lead) and asks you to acknowledge if that's expected.
  • Acknowledged — No core events expected — you've ticked the acknowledgement.

In the Needs-review state, tick "Acknowledge - no core events expected" to record the acknowledgement. Unticking later removes it (and clears any downstream approval).

A "View detected event inventory" disclosure lists every event the scan inferred and the confidence GSS assigned (High = literal event name; Medium = inferred; Low = event name comes from a variable). It's there for sanity-checking, not action.

3 Which tags need attention?

Step 3 lists every tag classified routable_with_review in a table with one row per tag. Each row shows the tag name (with an LED that's amber unacked, green once acknowledged), the GTM tag type, and the review classification badge. Below the row is an explanation of why the classifier flagged it and an Acknowledge checkbox.

This is a bulk-save form. Ticking and unticking boxes is local until you click Save at the bottom of the table. The Save button stays disabled until the form is dirty, and turns active as soon as any acknowledgement differs from what's persisted. If the change includes removing an existing acknowledgement, a warning appears: "Removing acknowledgements will reopen review on those tags."

When every review tag is acknowledged, the Step 3 status pill flips to Acknowledged — N of M review items and the Audit Checks summary upstairs flips Ready. If there are no review items at all, the step is Complete from the moment the audit runs.

A "View full tag inventory" disclosure at the bottom of the step lists every tag from the scan with its classification — not just the review tags. Use it to sanity-check that browser-only / unsupported buckets look right for your container.

Common errors & failure modes

Symptom Likely cause Where to fix
Running the audit
Step 1 is Locked and the button isn't available Discover wasn't completed — either the GA4 or GTM binding isn't saved yet. Select GA4 and GTM — save both selections.
Run audit returns "Could not fetch container" or similar Tag Manager API call failed: container deleted, access revoked, network error, or the live version doesn't exist. Verify the container in GTM and that your account still has at least View. Re-save Discover if the binding is stale, then retry.
Run audit returns a 401 / "Reconnect Google access" Google credentials expired. Reconnect Google from the app, then retry.
Re-running the audit
After Refresh audit, my Step 3 acknowledgements are gone Expected. Re-running replaces the audit snapshot and clears acknowledgements stored on it. The pre-action warning surfaces this. Re-acknowledge the review tags in Step 3 once you've reviewed the new findings.
Counts changed unexpectedly between runs Expected if the GTM container was edited between scans — the audit always reads the live published version. Cross-check against the GTM UI (published, not workspace draft). If the GTM hasn't changed, file feedback.
Acknowledgement state
Audit Checks panel still shows "Needs review" after I ticked Step 3 boxes Acknowledgements are local until you click Save. Step 3 is a bulk-save form. Click Save at the bottom of Step 3's table.
The Acknowledge Findings page says approval was cleared Expected. Removing an acknowledgement (review tag, no-core-events, or re-running the audit) clears the downstream Acknowledge Findings approval. Re-acknowledge here, then re-approve on Acknowledge Findings.
Audit Checks summary doesn't appear at all No audit run yet, or the run's schema isn't supported by this build. Click Run audit. If you get the schema error, the report card flags it; re-run with the current build.

Next step

Once Step 1 is Complete and Steps 2 and 3 are resolved (every review tag acknowledged; no-core-events acknowledged if applicable), the bottom-of-page link Audit: Acknowledge findings → enables. Continue to Acknowledge Findings — the gate that unlocks Build.