Skip to content

Guide 09 · Debugging · GA4 + Tag Manager

Read the network tab: the collect request is the proof the browser sent it

Checked 11 November 2026 · Verification: request counts recomputed (5 events, 5 requests, 5 x 204) · Steps traced to Tag Manager Help and Analytics Help, opened 11 November 2026 · 7-minute read

Every GA4 event leaves the browser as a collect request to google-analytics.com. Filter the network tab for collect, and a missing event shows up as a missing request.

Expected signal

After the steps below, the network tab shows one collect request per event, each answered 204, and the request payload carries the Measurement ID and the event name.

Download the check: the debugging check (JSON) (MD5 914bf1e2aa5f1b6fb2e83d2eb0f7e14b, 477 bytes). It lists the checkpoints from this guide and the worked check, with the figures recomputed. The file was built for this guide and validated structurally — it was not exported from a live container or a live property.

What you need

  • Chrome developer tools, network tab. No extension is needed; the network tab is built into the browser.
  • Your site, open in Chrome. The requests you read belong to the page you are on, so open the page where the event should fire.
  • The event you expect, and when it should fire. A click, a submit, a page load — know the trigger moment, so you can tell a missing request from a request you have not waited for yet.
  • Your Measurement ID. It starts with G-. You will search the request payload for it.

The trace

The worked check: the figures below were recomputed before publication, and the note under the table shows the working.

CheckFigure
Events done in the test session5
Collect requests seen in the network tab5
Requests answered 2045
Requests carrying the right Measurement ID5
Events with no matching request0

Five events were done and 5 collect requests appeared, so 5 minus 5 is 0 missing requests. All 5 were answered 204 and all 5 carried the right Measurement ID, so 5 of 5 requests were good. A 204 answer means Google received the request; it does not by itself prove the event will appear in a report.

  1. Open developer tools on the network tab before you act. Open the page, open developer tools, and click the Network tab. Clear the log, then leave it recording. Requests made before you opened the tab are not in the log, so start recording before the action.
  2. Filter for collect. In the filter box, type collect. GA4 sends events as requests to google-analytics.com/g/collect, so the filter leaves only the Analytics requests in view. Everything else — images, scripts, styles — drops out.
  3. Do the action once and watch for the request. Do the test action a single time. One collect request should appear for it. Click the request and open its payload: the Measurement ID, the event name, and the parameters are all in there, as the browser sent them.
  4. Read the status and the payload together. A 204 answer means the request reached Google. Then read the payload: the Measurement ID must be yours, the event name must be the expected one, and the value and currency must be present for a revenue event. A request with the wrong ID is a request to the wrong property, however clean its status looks.
  5. Count requests against actions. Do the action five times and count five requests. If three actions produce three requests, the tag fires every time and the break is downstream. If three actions produce one request, the tag itself is missing fires.

Dead ends

DEAD END — THE FILTER HIDES THE REQUEST. A filter left over from an earlier inspection — a wrong word, a file-type filter — can hide the collect requests while the log keeps recording. If the tab looks empty, clear the filter and look at the full log before concluding nothing was sent.

DEAD END — A 204 IS NOT A REPORT ROW. A 204 answer confirms Google received the request. It does not confirm the event will appear in Realtime or in a standard report: consent, filters, and the 24 to 48 hour processing lag all stand between the request and the report.

DEAD END — AN AD BLOCKER EATS THE REQUEST SILENTLY. Blockers stop the collect request before it leaves the browser, so the network tab shows nothing at all — not a failed request, just no request. Test with the blocker off and compare the counts.

End state

The network tab filtered to collect, one request per action, each answered 204, each payload read for the Measurement ID and the event name. If the requests are there, the browser did its job and the break is inside GA4. If they are not there, the break is in the tag or the blocker.

Sources

Checked 11 November 2026. The click paths above are the ones in Google's help pages, opened 11 November 2026. What was run: the request counts, recomputed — 5 events, 5 collect requests, 5 answered 204, 5 with the right Measurement ID, and 5 minus 5 is 0 events with no request. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.