Google Analytics 4 (GA4) has been collecting data on your website since Google retired Universal Analytics in July 2023. Yet a majority of GA4 properties contain configuration errors that degrade report quality. According to a MeasureCamp analysis (2024), over 60% of audited GA4 setups contain at least three significant errors. These GA4 configuration mistakes generate no alerts. They go unnoticed for months, until a marketing decision relies on data that does not reflect reality.
Internal Traffic Left Unfiltered: The Invisible Pollution
GA4 does not filter internal traffic by default. Every visit from your team members (developers, marketers, executives) inflates your sessions, distorts your bounce rate, and dilutes your conversion rates. On an SME website receiving 3,000 monthly sessions, 200 to 500 unfiltered internal sessions represent 7 to 17% of total traffic. Engagement metrics become unusable.
The fix involves two steps. First, define internal IP addresses in the data stream settings (Admin > Data Streams > Configure tag settings > Define internal traffic). Then, activate the filter in data settings (Admin > Data Settings > Data Filters). A critical detail: GA4 creates the filter in "Testing" mode by default. Until you switch it to "Active", it excludes nothing. This catches many administrators who believe they have solved the problem.
For remote teams with dynamic IP addresses, the IP-based method falls short. A complementary approach involves setting a custom parameter through GTM (an internal cookie or URL parameter) that identifies team sessions regardless of their connection.
Conversion Events Misconfigured or Missing Entirely
GA4 operates on a purely event-based model. Unlike Universal Analytics, which offered default goals (duration, pages per session), GA4 tracks no conversions until you explicitly configure them. A contact form submission, a phone call click, an add-to-cart action: if the event does not exist in your dataLayer or tags, the conversion appears nowhere.
The most frequent error involves Google's recommended events. GA4 provides a list of standardised events (generate_lead, purchase, add_to_cart, sign_up) with expected parameters. Many setups use custom event names when the recommended equivalent exists. The problem: certain native GA4 reports and Google Ads integrations only work with recommended events. A custom "form_submit" event will not appear in the monetisation report, while a properly configured "generate_lead" event will.
Verification happens in Admin > Events. Every event marked as a conversion should be tested in real conditions (not just debug mode). A quarterly audit of your conversion events catches drift before it causes damage. According to a Loves Data study (2024), 45% of GA4 properties track no custom conversion events at all, relying solely on automatic page_view and session_start measurements.
Enhanced Measurement: Features That Need Calibration
Enhanced Measurement is enabled by default in GA4. It automatically collects outbound clicks, file downloads, scroll depth, site searches, and video interactions. This automation seems convenient, but it creates problems when left uncalibrated.
Scroll tracking measures only a single threshold: 90% of the page. For a 3,000-word blog article, knowing that a visitor scrolled to 90% provides useful information. For a short landing page, virtually every visitor hits this threshold, making the metric worthless. A custom setup through GTM with multiple thresholds (25%, 50%, 75%, 100%) delivers actionable granularity.
Site search tracking poses another trap. Enhanced Measurement automatically detects the "q" parameter in the URL. If your search bar uses a different parameter (s, search, query), searches are not counted. Manual configuration in the data stream settings is required.
Outbound click tracking counts every click to an external domain as an event. On a site that integrates third-party widgets (chatbot, booking calendar, Google Maps), clicks to these services artificially inflate outbound click events. Disabling this feature for partner domains via cross-domain configuration or through exclusions in GTM restores data accuracy.
Attribution and Conversion Windows That Do Not Match Your Business
GA4 uses a data-driven attribution model by default. This model distributes conversion credit across different touchpoints using a Google machine learning algorithm. Problems arise when the attribution window does not match your sales cycle.
The default window is 30 days for acquisition events and 90 days for other conversion events. For an e-commerce store with a 30-euro average basket and a 48-hour purchase cycle, a 90-day window attributes conversions to interactions that had no real influence. For a B2B service provider with a 3-month sales cycle, the 30-day acquisition window cuts off significant touchpoints.
Configuration sits in Admin > Attribution Settings. Adapt the window to your commercial reality. Document this choice: when multiple people consult reports, they need to understand why GA4 figures differ from Google Ads, which applies its own attribution windows.
A related pitfall concerns the comparison between GA4 and Google Ads. The two platforms count conversions differently. Google Ads uses the click date; GA4 uses the conversion date. An ad click on February 28th that generates a purchase on March 3rd appears in February within Google Ads and in March within GA4. This offset is not an error, but a frequent source of confusion.
Cross-Domain Tracking and Fragmented Sessions
If your user journey crosses multiple domains (main site, shop on a subdomain, external payment platform), GA4 creates a new session at each domain change by default. A visitor moving from yoursite.com to shop.yoursite.com generates two distinct sessions. The source of the second session is recorded as "referral" from your own domain, polluting your acquisition reports.
The solution involves configuring cross-domain tracking in Admin > Data Streams > Configure tag settings > Configure your domains. List every domain involved in the user journey. GA4 will automatically add a _gl parameter to URLs to maintain session identity across domains.
The common error: forgetting a domain on the list. Payment platforms (Stripe, PayPal), booking tools (Calendly, Acuity Scheduling), or forms hosted on separate subdomains are frequently omitted. Each missing domain creates a session break and a parasitic "referral" source.
Check your acquisition reports (Acquisition > Traffic acquisition) for the presence of your own domains as traffic sources. Their appearance in the list signals a cross-domain configuration problem.
Data Retention Set Too Short
GA4 offers two retention durations for exploration data: 2 months or 14 months. The default setting is 2 months. This retention applies to Exploration reports, not standard reports which aggregate data indefinitely.
With 2-month retention, any exploratory analysis on an earlier period becomes impossible. Comparing December performance to June in a custom Exploration report will not work if retention has stayed at 2 months. Audience segments built in Explorations also lose their historical data.
The fix takes 30 seconds: Admin > Data Settings > Data Retention > switch to 14 months. This change is not retroactive. Data already deleted after 2 months will not return. Acting early preserves history for future analyses. For businesses that need longer history, the BigQuery export (available free with GA4) stores raw data without any time limit.
Debug and Validation: Tools You Should Use Systematically
A GA4 configuration is reliable only if it has been tested. Too many setups go to production without rigorous validation. GA4 provides several diagnostic tools, but their usage remains underexploited.
The DebugView report (Admin > DebugView) displays events sent from a device in debug mode in real time. Activate debug mode via the Chrome extension "Google Analytics Debugger" or via a dedicated GTM parameter. Each event appears with its parameters, allowing you to verify that names, values, and data types match your expectations.
The GA4 real-time report offers a complementary view. It confirms events are reaching the property, but with less parameter detail. The two tools complement each other: DebugView for technical precision, real-time for functional validation.
For GTM-based implementations, Preview mode remains indispensable. It displays the tag firing sequence, evaluated variables, and trigger conditions. A GA4 tag that fires on the wrong trigger or with empty variables generates inconsistent data with no visible error in the GA4 interface.
Document each test in a test acceptance table. List the scenarios (page view, CTA click, form submission, purchase), expected events, and verified parameters. This document serves as a reference during site updates or tag reconfigurations.
Conclusion
GA4 configuration mistakes share one trait: they produce no alerts. Collection works, reports populate, but the data does not reflect reality. A structured audit of your GA4 property, even a brief one, almost always reveals corrections to make. Internal traffic filtering, calibrated conversion events, adapted attribution windows, functional cross-domain tracking, and extended retention: these adjustments take a few hours and immediately improve the quality of your marketing decisions.
Get your GA4 configuration audited
Frequently Asked Questions
How do I know if my GA4 configuration contains errors?
Start by checking three points: the presence of active internal traffic filters (not in Testing mode), the list of configured conversion events, and the data retention duration. An acquisition report showing your own domain as a traffic source signals a cross-domain problem. A complete audit covers around twenty checkpoints.
GA4 and Google Ads show different conversion figures. Is this normal?
Yes, this discrepancy is structural. Google Ads attributes the conversion to the ad click date; GA4 counts it on the conversion date. Attribution windows and counting models also differ. A 10 to 20% gap between the two platforms is common and does not mean either configuration is incorrect.
Should I disable GA4's Enhanced Measurement?
Not entirely. Enhanced Measurement provides useful data (outbound clicks, site searches, downloads). However, certain features deserve a custom setup via GTM for greater granularity, such as scroll tracking with multiple thresholds or excluding certain domains from outbound click events.
How often should a GA4 audit be performed?
A quarterly audit catches drift before it compromises your data over a long period. Also plan a spot audit after each significant site change (redesign, new form added, payment platform switch) or after a major GTM update.
Does migrating to server-side GA4 fix these errors?
Server-side tracking improves collection reliability by bypassing ad blockers and browser restrictions. But it does not fix configuration errors within the GA4 property itself. A misnamed conversion event or an ill-suited attribution window produces the same problems whether collection is client-side or server-side.