Data quality is about whether the events you're collecting are describing real customer behaviour, or whether they're contaminated by internal visits, bot traffic, payment gateway redirects, or data that will age out before you need it.
Chapter 3 of 6 · GA4
Layer 2: Data Quality Audit
Verify that the events you collect describe real customer behaviour, free from internal visits, bots, and payment gateway noise. Chapter 3 of the GA4 Best Practice guide.
2 min read
The trap is the State column: a filter left on Testing only labels internal traffic, it does not remove it. It must be switched to Active.
| Check | What to look for | How to verify | Fix if failing |
|---|---|---|---|
| Internal traffic filter | Filter exists AND is set to Active (not Testing) | Admin: Data Settings: Data Filters — check state column | Create an internal traffic IP rule; set filter state to Active |
| Data retention | User and event data retention is set to 14 months, not the default 2 | Admin: Data Settings: Data Retention | Change to 14 months. Not retroactive — do it now |
| Referral exclusions | Payment gateways and third-party portals not creating phantom referral sessions | Acquisition report: look for unusual domains in Referral channel with high session count and zero conversions | Add the domain to Admin: Data Streams: Configure Tag: Unwanted Referrals |
| Bot filtering | Google's bot and spider filtering is enabled | Admin: Data Settings: Data Filters — "Internal Traffic" and check for bot filter | Enable in property settings (on by default in new properties but worth verifying) |
| PII in event data | No email addresses, names, or user IDs (if personally identifiable) in event parameters or page paths | DebugView: inspect parameter values on form_submit and page_view events | Scrub in GTM before the hit fires; never pass raw form field values as parameters |
| Cross-domain (if applicable) | Sessions don't break when a user moves between domains (e.g. main site to booking subdomain) | Check if a new session starts in GA4 when you manually navigate between the two domains | Configure cross-domain measurement in Admin: Data Streams: Configure Tag: Configure Domains |
Before — filter on Testing
14.0%
Agency and staff visits counted as sessions and conversions
After — filter Active
3.5%
Real customers only — the number your decisions should use
The drop is not performance getting worse. It is the inflated denominator and easy internal conversions leaving the data.
Data retention is the silent killer. Two months is long enough to fool you into thinking everything's fine — you can see recent data — but short enough to make year-over-year comparisons impossible and to lose data before a client asks for it. Change this on the first day you access any property.
Advertisement
i