adop.tools
Guides /

Layer 2: Data Quality Audit

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

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.

Admin › Data Settings › Data Filters · illustrative example
Filter nameTypeState
Internal trafficInternal TrafficActive
Internal traffic (common mistake)Internal TrafficTesting
Rule: ip_address matches 203.0.113.0/24

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
Depth guide: Filter Internal Traffic Out of GA4
Conversion rate, before and after the filter · illustrative example

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