What the check looks at
- The install. The
gtag.jsloader, an inlinegtag('config')call, or GA4 delivered through Google Tag Manager, with the Measurement ID (G-…). - The hits. Every
/g/collectrequest, including batched ones, read event by event: page_view, view_item, add_to_cart, purchase and the rest. Hits sent to your own domain count too, and the report notes that a server-side GTM container or a first-party proxy is receiving them. - Duplicates. The same page_view sent twice to one Measurement ID for one page. Google Signals' copy of each hit is deliberately not counted, so it cannot fake a duplicate.
- Payloads. GA4 requires transaction_id, value, currency and items on a purchase, and a missing one is flagged. A currency that is not a three-letter code, or a value like
"$1,234", is flagged on any event that carries it. - Consent Mode. Whether hits before the banner were cookieless pings (
gcs=G100), and whether the v2 signals are set.
The usual reasons GA4 is not tracking
The tag is installed but sent nothing (a trigger, an earlier JavaScript error, or a deleted property), the container that carries it fails to load, the site's security policy blocks the request, or the tag is waiting for a cookie choice. Each one is a different line in the report, with the requests as proof.
The opposite fault is just as common: GA4 configured twice, so every page view counts double and engagement looks better than it is.
What a scan cannot see
A scan opens one page, once, as an anonymous visitor. It moves the mouse and scrolls, but never clicks a buy button or submits a form, so purchase, add-to-cart and lead events are listed as not tested rather than guessed. It sees requests leave the browser, not whether the platform accepted them, and it cannot see server-to-server events.
Data filters, property settings and reporting delays inside GA4 are also out of sight from a browser.
What the report says
This is the finding TagZ writes when it sees this fault, word for word.
Google Analytics 4 sent page_view 2 times for one page view
This event is being counted 2 times per visit. Page views, sessions and audience sizes built on it are inflated.
Suggested fix
Two things are configuring the same Measurement ID — typically a hard-coded gtag('config') snippet AND a GA4 tag inside Tag Manager. Keep one. If both must stay, set send_page_view:false on one of them.
A scan is one look. Tags break later.
A theme update, a plugin, a new cookie banner, someone tidying up an old account: tracking rarely breaks loudly. TagZ monitoring runs this same check every six hours in a real browser and emails you when a tag that was working stops sending, after a second scan has confirmed it.
$7.99 a month for one website, billed yearly ($95.88 a year), or $2.63 a site per month on the Agency plan for 25 sites, billed yearly. See all plans.