The dashboard is up, the numbers are down, and someone has already asked, "Are we sure GA4 isn't just wrong?"
GA4 is rarely wrong. It faithfully reports whatever you've implemented, including the parts you didn't mean to implement.
This checklist, written by Marc Alexander, a Google Analytics consultant, is a plain-language GA4 audit you can run in about an hour. It covers the ten problems that most often cause inflated key events, broken attribution, missing revenue and reporting nobody trusts. Underneath, you're answering two questions:
"Are we collecting the right data, once, with the context we need?"
"Does the session hold together from first click to key event, especially when consent, cross-domain journeys and third-party tools are involved?"
Who this is for
Anyone who relies on GA4 for decisions about marketing, lead quality, ecommerce revenue or customer journeys. You don't need to be technical. Any unfamiliar term is in the GA4 glossary.
How to run it in 60 minutes
Choose two real journeys that matter commercially. For lead generation, "view a service page, then submit the main enquiry form" and "download a brochure". For ecommerce, "view an item, then purchase" and "begin checkout, then abandon".
Open GA4 in one tab and GTM Preview or Tag Assistant in another. Do each journey once, like a normal visitor. Don't refresh the thank-you page to double check: GA4 will record that too.
Note which events fired, how many times, and whether the key parameters were attached. Watch whether attribution stays sensible, and take screenshots. You'll finish with passes, failures and unknowns. Finding the unknowns is what an audit is for.
Check 1: Duplicate tracking and duplicate key events
If GA4 data looks too good to be true, it often is. Duplicate tracking corrupts almost every KPI without looking obviously broken: heroic conversion rates, event counts nobody can explain.
Good looks like: one page_view per page load and one key event per genuine completion.
How to check: run a key journey in GTM Preview or Tag Assistant and watch the event stream. You have duplication if the same event fires twice for one action, if both GTM and a plugin send to GA4, or if key events spike straight after a release.
Usual causes: hardcoded GA4 plus GTM, several GA4 config tags, overlapping triggers, plugins tracking what you already track, or create and modify event rules that repeat existing logic.
Next: pick one source of truth, remove the duplicate implementation, and confirm each event fires exactly once.
Check 2: Consent Mode v2 is present, but does it work?
Consent changes what gets collected, modelled, reported and used in linked products. Many sites have a consent banner. Fewer have a setup that behaves consistently across regions and the whole journey.
Good looks like: behaviour changes predictably before and after consent, and you can explain what happens for a user who doesn't consent, so expected gaps aren't read as broken tracking.
How to check: in an incognito window, compare behaviour before and after consent across a full journey to a key event. If journeys cross domains, test the whole flow. If results depend on where the journey starts, the wiring is inconsistent.
Usual causes: a banner that doesn't update consent states for Google tags, different configuration on different domains, or regional rules that don't match tag behaviour.
Next: document the intended consent behaviour, confirm the tags respect it end to end, and set reporting expectations to match.
Check 3: Thresholding is hiding data, and everyone thinks tracking has failed
GA4 can withhold parts of some reports to protect user privacy, which looks like missing rows or sparse segments. Teams then spend weeks fixing tracking, because the cause is a reporting constraint, not collection.
Good looks like: you recognise thresholding quickly and have an agreed way to read the affected reports.
How to check: widen the date range and compare. If more data appears when you broaden the query, or GA4 warns that data is withheld, it's a reporting condition, not a tagging fault.
Next: change the analysis: more aggregated dimensions, or the BigQuery export for detail the interface isn't designed to show.
Check 4: Cross-domain measurement is splitting sessions
When cross-domain tracking breaks, sessions split, attribution resets, and key events drift into Direct or Referral.
Good looks like: one coherent journey to the key event, even across a checkout, sign-in or booking engine, with sensible source and medium throughout.
How to check: run the real journey, then look at acquisition and conversion path reports. If your own domain appears as a referrer, or your payment or booking domain as the source of key events, sessions aren't carrying across.
Usual causes: inconsistent tagging across domains, missing cross-domain configuration, or separate GA4 properties in the same journey.
Next: configure cross-domain measurement, retest, and confirm consent doesn't break continuity mid-journey.
Check 5: Unwanted referrals are taking credit
Payment providers, identity tools and embedded platforms often turn up in acquisition reports as if they found the customer.
Good looks like: key events are credited to the marketing source that started the journey.
How to check: trace conversion paths. A third-party domain showing up again and again just before the key event is an unwanted referral.
Next: add those domains to the unwanted referrals list and retest. It's one of the simplest fixes, with a large effect on attribution.
Check 6: UTMs and channel data have drifted
Acquisition data becomes unusable through inconsistent UTMs, redirects that strip parameters, internal links carrying UTMs, or ten people with ten ideas of what "Email" means.
Good looks like: consistent source and medium values, little "Unassigned", and channel groups that reflect how your business works.
How to check: review top sources and mediums for duplicates. Email split across half a dozen variations is a governance problem, not a tracking problem.
Next: standardise UTMs with a process and a link builder, fix redirects that strip parameters, and take UTMs off internal links.
Check 7: Event design has drifted
Over time, properties collect near-duplicate events, inconsistent names, missing parameters and events nobody can define. Reporting turns into interpretation.
Good looks like: a small set of clearly defined events with consistent parameters. An event that represents a lead should always look like a lead.
How to check: confirm the commercially important events always carry the parameters you need: form identifier, lead type and outcome for leads, item and transaction details for ecommerce.
Next: write an event and parameter specification, cut the sprawl, and add validation so releases don't quietly break it.
Check 8: Ecommerce tracking is incomplete, duplicated or out of order
Ecommerce problems show up as revenue that doesn't match, missing product detail, duplicated purchases or a funnel that doesn't reflect the real buying journey.
Good looks like: every purchase has a unique transaction ID, item arrays are complete, and events fire in a logical order. Refunds match how the business recognises revenue.
How to check: place a test order and inspect the purchase event. Plausible revenue with nonsense product reports usually means a broken item array. Purchases that duplicate on refresh mean a de-duplication problem.
Next: use one consistent ecommerce schema, enforce required fields, and retest, including payment retries and return visits to the confirmation page.
Check 9: Session settings are distorting trends
Changing GA4's session and engagement settings can shift trend lines noticeably. The problem is when nobody records the change and the business reads a measurement change as a performance change.
Good looks like: settings suit your business model, and any change is logged with its expected effect.
How to check: review the Admin settings, then sanity-check session and engagement patterns against real behaviour, such as audiences who return after short breaks.
Next: treat GA4 configuration changes like release notes.
Check 10: Integrations exist but aren't delivering value
Many teams link GA4 to Google Ads, turn on the BigQuery export or connect a reporting tool and consider it done. Then the wrong conversions drive bidding, audiences are incomplete, or exports sit without a reporting plan.
Good looks like: key events are chosen deliberately for each purpose, and reporting is built around decisions rather than default templates.
How to check: review product links, confirm the right events are key events and imported into Google Ads as conversions where they should be, and check audiences behave as expected.
Next: separate the conversions used for bidding from the key events used for reporting, then test end to end.
How to prioritise when several checks fail
Fix first whatever invalidates the largest share of decisions:
- Duplicate tracking usually comes first, because it contaminates most KPIs.
- Cross-domain and unwanted referrals come next, because they corrupt attribution.
- Consent problems are both a compliance risk and commercially disruptive, so are often urgent.
- Thresholding needs a change in how you analyse, not a tagging sprint.
When to get help
Problems usually come in clusters: duplicates alongside messy event design, cross-domain breaks alongside unwanted referrals. The checklist is triage. An audit is the diagnosis and treatment plan.
Marc's GA4 mini audit covers the highest-risk areas (tracking, key events, ecommerce, consent and attribution) with a written report and the fix for each problem.
The 38-point GA4 audit covers implementation, configuration, consent, attribution, event governance and integrations, and ends with a prioritised roadmap. Marc can also implement the fixes.