When a number in a report looks wrong, the cause usually has an ordinary explanation. Data takes a fixed path (the visitor's browser, the tag, the network, the collection, the processing and finally the report), and it can be lost or changed at each step. Debug in that order and stop at the first step that fails.
1. Does the tag fire?
Start in the browser. Open the developer tools, switch to the Network tab, and trigger the event. You should see a request to Google's collection endpoint carrying the event name and parameters.
- No request at all. The tag did not fire. In your tag manager's preview mode check whether the trigger matched and whether anything blocked the tag (a consent setting, an exception, a typo in the event name).
- A request that failed or was blocked. An ad blocker, privacy extension or content security policy stopped it. Test in a private window with extensions off.
- A request to the wrong place. Compare the measurement ID with the one in your property's data stream.
2. Does the event arrive?
DebugView and the Realtime report show events within moments and are the right place to confirm that Google received something. DebugView needs the browser to be in debug mode (the tag manager's preview mode turns it on, or you can set the debug parameter yourself).
- Check the event name: names are case-sensitive, so
Add_To_Cartandadd_to_cartare different events. Event names also have length limits and may not contain spaces. - Open the event and check each parameter: name, value and type.
If it shows in DebugView, the tag and the network are fine. The problem is later.
3. Is it filtered, delayed or limited?
- Processing delay. Standard reports are not instant. An event missing an hour after it was sent is not missing yet.
- Data filters. Filters can exclude internal or developer traffic. A filter in testing state marks data without removing it; an active one removes it for good.
- Consent. When a visitor has not granted consent, tags may send limited signals or nothing at all, depending on your consent configuration. Compare your consent acceptance rate with the shortfall.
- Thresholds and sampling. Reports that include demographic or similar data can hide small numbers to protect privacy, and explorations can sample large datasets. Check the report for a warning icon.
- High-cardinality dimensions. A dimension with a huge number of distinct values (a full URL with identifiers) is grouped into an "(other)" row.
4. Is the report able to show it?
A custom parameter you send is not automatically available in reports. To use it as a dimension or metric you register it as a custom dimension or metric, with the right scope, and it only applies to data collected after you register it. A quick test is to try the same question in an exploration that lets you add the registered parameter.
5. Are you counting what you think you are?
- Duplicates. Two triggers on one tag, two containers on a page, or a single-page application that pushes an event every time a component re-renders.
- Missing identifiers. A purchase event without a unique transaction id can be counted again on a page reload.
- Time zones. The property's reporting time zone defines where one day ends and the next begins. Compare like with like when reconciling.
- Different definitions. "Users", "sessions" and "events" are not interchangeable, and the shop's order count is not GA4's purchase count.
A short routine
- Reproduce the action in a clean browser, with the tag manager in preview mode.
- Confirm the request in the network tab.
- Confirm the event and its parameters in DebugView.
- Check filters, consent and the property settings.
- Wait for processing, then check the standard report.
- Write down what you found and add a test for it, so the next release does not break it again.
Menu names in the Analytics interface change from time to time. If a label here does not match what you see, search the current help pages for the feature name.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| The event never appears in DebugView or Realtime | The tag did not fire, fired on the wrong measurement ID, or the browser blocked the request (ad blocker, tracking protection, a content security policy). | Open the browser's network tab and look for a request to the Google Analytics collection endpoint when the event happens. If it is absent, test the trigger in your tag manager's preview mode. If it is present but blocked, test in a clean browser profile. |
| The event appears in DebugView but not in standard reports | Standard reports are processed with a delay, and the event may be a custom one that the report does not include. | Wait for processing (it can take up to a day or more). To see custom parameters, register them as custom dimensions or metrics. |
| Only some visitors are counted, or the numbers are lower than expected | Consent is denied for some visitors so tags are limited or blocked, or visitors use browsers that block measurement scripts. | Compare the share of visitors who accept consent with the drop. Check your consent setup is firing the tags once consent is granted. |
| Your own visits distort the numbers, or your tests do not appear | An internal traffic filter is active (hiding you) or not defined (counting you). | Check the data filters in the admin settings. Use debug mode or a test property for experiments. |
| An event's parameters are blank in reports | The parameter was never sent, was sent under a different name, or was not registered as a custom dimension. | Look at the event in DebugView and compare parameter names exactly. Register the parameter under the right scope. |
| An event is counted twice | The tag fires from two triggers, a single-page app pushes the event on every re-render, or two containers are installed. | Check the preview mode for the tag firing twice, and search the page source for a second container or a hard-coded tag. |
| Conversions or revenue do not match the shop's own numbers | Duplicates, missing transaction ids, refunds not sent, blocked visitors and time-zone differences. | Send a unique transaction id with every purchase, compare totals for a short past period, and expect small differences rather than an exact match. |
Frequently asked questions
How long until data appears in reports?
Realtime and DebugView show events within seconds to minutes. Standard reports and explorations are processed with a delay, and Google's documentation says how long to expect, so do not judge them in the first hour.
Why does GA4 show a different number from my server logs?
They measure different things. Logs see every request, including bots and visitors who block scripts. GA4 sees only the visits where its tag ran and consent allowed it.
References
From Grokem: https://www.grokem.com/data/data-analytics/tracking-audits-and-qa/ga4-tracking-audit/ga4-events-missing-checklist



