Guide
What a GA4 audit actually checks — and why each part matters
Most Google Analytics 4 properties are not broken in a dramatic, obvious way. They are broken quietly: a data retention setting still on the two-month default, a purchase event that fires without a transaction_id, an internal traffic filter that was created but never switched from testing to active. Nothing in the GA4 interface flags any of these. The reports simply render slightly wrong numbers, forever, and everyone downstream makes decisions on them.
An automated GA4 audit exists to catch that class of problem — the configuration mistake that produces plausible-looking data. Tagfire groups its checks into twelve modules, and it is worth understanding what each one is looking for, because the same handful of issues account for most of the damage.
The twelve check categories
- Data collection
- Are the data streams configured correctly? Is enhanced measurement on, and are its individual toggles (scroll, outbound click, site search, video, file download) doing what you assume? A surprising number of properties have enhanced measurement enabled but site search misconfigured for their URL structure.
- Event data
- Event naming consistency, the 500-distinct-event ceiling, reserved-name collisions, and events that fire with no parameters at all. GA4 silently drops events beyond its limits — you only find out when a report goes empty.
- Key events
- Formerly conversions. Are any marked at all, are the right ones marked, and does each one actually receive volume? A key event with zero occurrences in 28 days is either broken or should not be a key event.
- Ecommerce
- The full funnel —
view_item,add_to_cart,begin_checkout,purchase— plus the parameters each one requires. Missingtransaction_idcauses duplicate revenue; missingcurrencycauses GA4 to discard the value entirely. - User tracking
- User-ID coverage, Google signals, and whether client IDs look stable. Unstable client IDs inflate the user count and destroy returning-visitor analysis.
- Attribution
- Attribution model, lookback windows, and auto-tagging on linked Google Ads accounts. Auto-tagging off with manual UTMs on Google Ads is one of the most common and most expensive misconfigurations.
- Data quality
- Data retention length, internal and developer traffic filters, unwanted referrals, and cross-domain configuration. This module catches the settings that quietly limit what you can analyse later.
- Traffic sources
- Channel grouping health,
(not set)and(direct)share, and self-referrals. A direct-traffic share above roughly 20 percent usually means attribution is leaking, not that your brand is strong. - Privacy
- Consent Mode signals, data-redaction settings, and whether personally identifiable information is showing up in page paths or event parameters. Email addresses in URLs are both a compliance risk and a GA4 terms violation.
- Integrations
- Google Ads, Search Console, BigQuery, and Merchant Center links. A missing BigQuery export is a silent data-loss problem: GA4 keeps only the retention window, and you cannot backfill.
- Audience & device
- Audience definitions, their sizes, and whether device and platform coverage matches what you expect from the site.
- Property config
- Timezone, currency, industry category, and reporting identity. A wrong timezone shifts every daily report and is invisible until someone reconciles against another system.
The five findings that come up in almost every audit
Across properties, the same problems recur. If you only fix five things after running your first audit, make it these.
Data retention left at 2 months
GA4 defaults user-level data retention to two months. Change it to 14 months. This single setting decides how far back your explorations can reach, it cannot be applied retroactively, and every day you leave it is a day of analysis you permanently cannot do.
Purchase events without transaction_id
GA4 uses
transaction_idto deduplicate purchases. Without it, a customer who refreshes the confirmation page books the revenue twice. Reported revenue drifts above the truth, and the gap widens the more traffic you get.No internal traffic filter
Your own team, your agency, and your QA environment all generate sessions. Without a filter defined and set to Active (not Testing), that traffic is in every report — and because internal users behave nothing like customers, it skews engagement and conversion rate most on your lowest-traffic segments.
Key events that never fire
Someone marked six events as key events during setup. Three of them were renamed later. The GA4 interface still lists all six, and the conversion reports quietly under-count. An audit surfaces the zero-volume ones in seconds.
Unregistered event parameters
Your GTM tags send
ep.plan_typeon every event, but nobody registered it as a custom dimension in GA4, so it exists in the payload and nowhere in the reports. This is the single most common gap between what a site sends and what a marketer can actually see — the GA4 custom dimension checker exists specifically to diff the two.
How often should you audit a GA4 property?
Configuration drifts for ordinary reasons: a developer ships a redesign, a contractor adds a tag, someone renames an event to match a new taxonomy. A reasonable cadence for most teams is quarterly for stable properties and monthly for properties under active development or attached to significant ad spend. Always audit immediately after a site migration, a replatform, or a change of agency — those are the three events that break tracking most reliably.
Audits are point-in-time, though. They tell you the configuration is right today. To know that tracking is still firing tomorrow, you need continuous monitoring — that is what the GA4 anomaly detector and the tag debugger monitors are for. The pattern most teams settle on is: audit quarterly, monitor continuously.
Where an automated audit helps, and where it does not
An automated audit is right for
- Inheriting a property and needing to know its state fast
- Pre-sales discovery across a prospect portfolio
- Quarterly health checks on properties you maintain
- Verifying a migration or replatform did not break tracking
- Producing a client-ready findings document
You still need a human for
- Deciding whether your event taxonomy fits the business
- Judging if the right things are being measured at all
- Interpreting whether a metric change is real
- Designing the measurement plan behind the tracking
- Anything requiring context about company strategy
The tool answers "is this configured correctly?" It does not answer "is this the right thing to measure?" That second question is what a measurement plan is for, and it is where an analyst earns their fee.
GA4 audit and GTM audit are different jobs
A GA4 audit inspects the destination: the property, its settings, and the data that has landed in it. A GTM audit inspects the sender: the container, its tags, triggers, variables, and consent wiring. Most real tracking failures live in the seam between the two — a tag fires correctly but sends a parameter GA4 was never told to keep.