The 30-minute account health check
Use this when you first access a new account, or before presenting data to a client. It won't catch everything, but it will catch the problems that do the most damage to a report's credibility.
Use this chapter as a standalone reference. The 30-minute checklist catches the problems that do most damage to report credibility. The common problems table shows the patterns that appear most often in inherited accounts.
Use this when you first access a new account, or before presenting data to a client. It won't catch everything, but it will catch the problems that do the most damage to a report's credibility.
30-minute health check
Image placeholder
Checklist in use: first-access audit
A visual showing the checklist being worked through in a real GA4 account, with some items checked (green tick) and others flagged for follow-up (amber warning icon). The GA4 Admin panel is shown alongside, with the Data Filters screen open in the background, mapping the checklist item to the actual interface location. Intended to make the checklist concrete for an analyst running it for the first time on a new account.
Animation placeholder
DebugView walkthrough: verifying events are firing correctly
A short screen-recording style animation (10-15 seconds) showing: Admin: DebugView open in one panel, user triggering a form submit on the website in another. Events appear in the DebugView stream in real time. Camera zooms into the event parameters panel to show traffic_type and event_name values. Intended to make the verification step concrete for an analyst who has never used DebugView. Suggested format: screen capture GIF or Lottie.
These are the patterns that come up most often when taking over an account someone else configured, or when auditing an account that's been running on autopilot.
| Problem | How it appears | Root cause | Fix |
|---|---|---|---|
| Conversion rate looks too high | Conversion rate of 15-25% on what should be a 2-3% site | Internal traffic not filtered; team's own visits are counted with a much higher conversion rate | Activate internal traffic filter; recalculate baselines after 2-4 weeks of clean data |
| "Direct" is the top channel | 30-50% of sessions attributed to Direct, even for a site with active paid campaigns | UTM parameters missing from email campaigns and paid social; some traffic losing attribution mid-session | Audit all campaign URLs for UTM coverage; add referral exclusions if attribution breaks mid-session |
| Conversion count doubles on checkout | More conversions than orders in the payment system | Payment gateway redirect creates a new session; purchase event fires twice (on return from gateway and again on a thank-you page reload) | Add referral exclusion for the payment gateway; deduplicate the purchase trigger in GTM using a dataLayer flag |
| Dozens of key events marked | 20+ events all marked as conversions; conversion count in reports is enormous | Previous analyst marked everything as a conversion "to track it better" | Unmark all but the 3-5 that represent real business outcomes; use standard event tracking for the rest |
| No data beyond 2 months in Explorations | Exploration reports return no data for date ranges older than 60 days | Data retention was never changed from the 2-month default | Change to 14 months now — but historical data already aged out cannot be recovered |
| camelCase and snake_case events mixed | Both formSubmit and form_submit appearing in the event list |
Multiple developers or tools (GTM, GA4 auto-events, hardcoded tags) creating events independently | Standardise on snake_case; consolidate in GTM; remove duplicate tags |
| Staging traffic mixed with production | Low-traffic pages appearing with disproportionately high engagement; staging hostnames visible | The same GA4 tag is loaded on the staging or development environment | Use a GTM environment variable to fire a different Measurement ID on staging, or block the tag on non-production hostnames |
Visualisation placeholder
Before/after: channel attribution report
A side-by-side comparison showing a GA4 Acquisition report before and after fixing UTM coverage and referral exclusions. Before: "Direct" accounts for 45% of sessions; "Unassigned" is 12%; "Referral" includes Stripe and PayPal. After: Direct drops to 18%, Unassigned to 3%, paid channels show correctly. Intended to show the analyst the tangible impact of a data quality fix. Suggested format: static side-by-side image or a simple CSS toggle showing before/after state.
Image placeholder
Account health score summary card
A visual showing a summary card format with the 8 checklist items as pass/fail indicators with colour coding: green tick for passed, amber warning for needs attention, red cross for failing. Each row shows the check name, its result, and a one-line note. Resembles a report card that an analyst could use to brief a client on the account's audit status, converting the checklist into a deliverable that non-analysts can read at a glance.
The best time to audit a GA4 account is before you use its data to make a decision. The second best time is right now.
Once the account is clean — internal traffic filtered, conversions correctly marked, channels grouping properly — the next job is reporting. GA4's own reports are granular but not presentation-ready, and exporting to a spreadsheet every month is how reporting becomes a two-hour job instead of a 20-minute one.
Clearly connects to GA4 and turns the data into a live, shareable report your client can open without a GA4 login. The same channel groupings, the same key events, the same date comparisons you've set up in GA4 — surfaced in a format a non-analyst can read. When the underlying GA4 account is set up properly, the report builds itself. The audit is the work; the report is the result.
All GA4 depth guides
Read →
EventsRead →
Key eventsRead →
Custom dimensionsRead →
Data qualityRead →
ChannelsRead →
ContentRead →
Data qualityRead →
Turn a clean GA4 account into a client-ready report.
Connect GA4 and build a live shareable report in minutes, free for one report.