How to check GA4 is tracking: page views, events and purchases
GA4 is tracking if the browser sends requests to /g/collect with tid set to your measurement ID (G-…) and en=page_view on each page. Purchases need en=purchase with a value, a currency (cu) and a transaction ID, or GA4 shows the sale without revenue or counts it twice.
Skip the DevTools: the free scan loads your page in a real browser, accepts and rejects the cookie banner, and shows what the GA4 actually sent.
At a glance
- Tag script
googletagmanager.com/gtag/js?id=G-…, or a GA4 tag in Google Tag Manager- Event request
…google-analytics.com/g/collect?v=2&tid=G-…&en=page_view; several events can share one POST body- Measurement ID
G-followed by 10 letters and digits- Key parameters
enevent name,cucurrency,epn.valuevalue,ep.transaction_id,gcsandgcdconsent state- Consent
- Google Consent Mode v2 (
analytics_storagefor GA4)
Check it yourself in two minutes
- In a private window, open DevTools on the Network tab and filter on
/g/collect. - Load a page. Open the request and check
tidis the measurement ID of the property you look at in GA4 (Admin, then Data streams). A different ID means your data goes to another property. - Count the
page_viewevents: one per page load. Two usually means the tag is installed twice. - Make a test purchase. The
purchaseevent should carrycu(for examplecu=EUR), a value andep.transaction_id. Items appear aspr1,pr2and so on. - To watch it in GA4, open Tag Assistant with your site URL, or turn on debug mode, then open Admin, then DebugView: events show up within seconds, unlike the standard reports which take up to a day.
Why the GA4 breaks, and how to fix it
Every page view counted twice
The usual cause is two installs: a hard-coded gtag.js snippet plus a GA4 tag in Google Tag Manager, or a CMS plugin plus GTM. On single-page sites, a manual page_view on route change plus Enhanced measurement's "page changes based on browser history events" does the same. Bounce rate drops to near zero and pages per session doubles. Keep one source of page views.
Purchases without revenue
GA4 only records purchase revenue when the event has a currency. A purchase with a value but no currency shows up as a transaction with zero revenue. Send the ISO code with every value:
gtag('event', 'purchase', {
transaction_id: '10045',
value: 84.50,
currency: 'EUR',
items: [{ item_id: 'SKU-123', item_name: 'Linen shirt', price: 84.50, quantity: 1 }]
});
Without transaction_id, a reloaded confirmation page creates a second purchase.
Payment providers take the credit
When shoppers leave for PayPal, Klarna, Stripe or a 3-D Secure page and come back to the thank-you page, GA4 can start a new session with the payment provider as the source, and your ads lose the sale. Add those domains under Admin, then Data streams, then Configure tag settings, then List unwanted referrals.
Consent Mode set up without a default
With Consent Mode, GA4 sends cookieless pings when analytics_storage is denied and fills gaps with modelling. That only works if the default is set before the tag fires. Look at gcs on the requests: G100 means everything was denied, G111 granted. See Consent Mode default is not set.
Data sent to an old or wrong property
Sites that moved from Universal Analytics, changed agency or copied a theme from another store sometimes send to a property nobody looks at, or to two properties. The scan lists every G- ID it saw. Compare them with the properties you use, and remove the rest.
What the free scan checks
- A GA4 property is configured and a page view actually reaches GA4
- Only one GA4 property, or a note if there are several
- A Consent Mode v2 default is set before tags fire, and accepting updates it
- GA4 requests carry the gcs and gcd consent parameters
- On an order confirmation page: the purchase carries a value, a currency and a transaction ID
- No email addresses in plain text in GA4 requests
Server-side events (Conversions APIs, server-side tagging) are invisible to a public scan, so the report never marks them as working or broken.
Related
- Consent Mode v2 checker
- Consent Mode default is not set: how to fix it
- Why Meta, Google Ads and GA4 don't match your orders
- Consent Mode v2: basic vs advanced, and how to tell which one you have
Sources
- Google Analytics: Measure ecommerce
- Google Analytics: Monitor events in DebugView
- Google Analytics: Identify unwanted referrals
- Google: Set up consent mode on websites
Updated 2026-10-27. Based on the platforms' public documentation and the requests their public tags make; menus and names change, so check the linked pages if a step looks different.