Enhanced Measurement is GA4's auto-tracking feature. With a single toggle, it captures scroll depth, outbound clicks, site search, video engagement, file downloads, and form interactions — all with zero code or GTM configuration required. Sounds great, right? In theory, it's a brilliant convenience feature. In practice, it's one of the most common sources of data quality issues we find in GA4 audits.
The problem isn't that Enhanced Measurement doesn't work — it's that it works too broadly, often conflicting with custom tracking setups and creating duplicate data that silently corrupts your reports. This guide explains exactly what each Enhanced Measurement feature does, when to keep it, when to disable it, and how to avoid the common pitfalls.
We check all Enhanced Measurement settings
NiceLookingData audits every Enhanced Measurement toggle and recommends which ones to keep on vs. disable for cleaner data. Run your audit →
Understanding Enhanced Measurement
What Enhanced Measurement Tracks
Enhanced Measurement includes seven automatic tracking features, each of which can be individually toggled on or off in your GA4 data stream settings:
- Page Views: Tracks
page_viewevents automatically, including on Single Page Applications (SPAs) via browser history changes. This is the foundation of GA4 reporting. - Scrolls: Fires a
scrollevent when a user scrolls past 90% of the page depth. Only fires once per page. - Outbound Clicks: Tracks
clickevents with theoutboundparameter when users click links that lead to a different domain. - Site Search: Captures
view_search_resultsevents when it detects search query parameters in the URL (looks forq,s,search,query,keyword). - Video Engagement: Tracks
video_start,video_progress, andvideo_completeevents for embedded YouTube videos. - File Downloads: Fires a
file_downloadevent when users click links to common file types (PDF, XLSX, DOCX, PPTX, ZIP, etc.). - Form Interactions: Tracks
form_startandform_submitevents for HTML form elements.
The Duplicate Data Problem
The most critical issue with Enhanced Measurement arises when you're also using Google Tag Manager (GTM) to track any of the same interactions. When both systems track the same event, you get duplicate data — and the consequences are worse than you might think:
- Inflated event counts: If both Enhanced Measurement and GTM track scroll events, every scroll fires two events. Your scroll depth metrics are doubled.
- Corrupted conversion data: If outbound click events are marked as conversions and both systems track them, your conversion count is inflated by 100%.
- Unreliable A/B test results: Duplicate events skew statistical significance calculations, potentially leading to wrong decisions.
- Confusing reports: Different event parameter structures between Enhanced Measurement events and GTM-fired events make analysis inconsistent.
The worst part: this duplication is completely silent. GA4 doesn't warn you that two systems are tracking the same interaction. You only discover it when your numbers don't add up — if you discover it at all.
Configuration Decisions
What to Disable (And Why)
If you're using GTM for custom tracking, here are the Enhanced Measurement features you should almost always disable:
- Scrolls — DISABLE: The default 90% threshold is rarely actionable. Most analytics teams need granular scroll tracking (25%, 50%, 75%, 100%) to understand content engagement. GTM's built-in Scroll Depth trigger lets you set custom thresholds and attach it to specific pages, making it far more useful. Disable the Enhanced Measurement scroll tracking and use GTM instead.
- Outbound Clicks — DISABLE if tracked via GTM: If you have click tracking tags in GTM that capture outbound link clicks, disable this feature. If you don't have custom click tracking, keep it on as a baseline.
- Site Search — DISABLE if using non-standard parameters: Enhanced Measurement only detects a predefined set of query parameters. If your site search uses parameters like
keyword,search_term, or POST-based searches, GA4 won't detect them. In these cases, disable and implement custom tracking via GTM or the dataLayer. - Form Interactions — CONDITIONAL: The built-in form tracking is rudimentary. It tracks all form starts and submissions regardless of form importance. If you have GTM tags for specific form conversions (contact forms, signup forms, demo requests), disable this to avoid duplicates. Keep it only if you have no other form tracking as a fallback.
What to Keep On
- Page Views — ALWAYS KEEP ON: This is the backbone of GA4 reporting. Disabling it breaks nearly every standard report. Even if you have a GTM-based page view tag, it's safe to keep Enhanced Measurement page views enabled — GA4 deduplicates based on the
page_viewevent name. However, verify in DebugView that you're not getting true duplicates. - File Downloads — KEEP ON (usually): Unless you have highly specific file download tracking requirements (e.g., tracking only certain file types or adding custom parameters), the Enhanced Measurement implementation works well and doesn't typically conflict with GTM setups.
- Video Engagement — KEEP ON (usually): If you have embedded YouTube videos and no custom video tracking in GTM, keep this on. It provides useful engagement data (start, 10%/25%/50%/75% progress, complete) without any configuration.
Setup and Verification
How to Configure Enhanced Measurement
- Go to Admin → Data Streams and select your web stream.
- Click the gear icon next to Enhanced Measurement.
- Toggle individual features on or off based on the guidance above.
- For page views, you can also configure whether history-based changes (for SPAs) trigger new page views.
- For site search, you can customize the query parameter list if your site uses non-standard parameters.
- Click Save. Changes take effect immediately for new data.
How to Check for Duplicates
Use GA4's DebugView to check whether events are being double-counted:
- Install the Google Analytics Debugger Chrome extension and enable it.
- Navigate to your site and perform the action you want to test (e.g., scroll, click an outbound link).
- Open GA4 → Admin → DebugView.
- Look for duplicate events of the same type appearing at the same timestamp. If you see two
scrollevents within milliseconds of each other, you have a duplicate.
The Decision Matrix
Use this quick reference to decide what to do with each Enhanced Measurement feature:
- Using GTM for the same event? → Disable Enhanced Measurement for that event type.
- No GTM tracking for this event type? → Keep Enhanced Measurement on as your baseline.
- Need more granular tracking? → Disable Enhanced Measurement and build custom tracking in GTM.
- Not sure? → Check DebugView for duplicates before making changes.
Automated Detection
NiceLookingData cross-references your Enhanced Measurement configuration with your GTM tags to automatically detect overlapping tracking. We flag specific event types where both systems are active and recommend which one to keep based on your implementation quality.
Key Takeaways
- Enhanced Measurement is great for quick-start tracking but often conflicts with GTM custom implementations.
- Scroll tracking should almost always be handled by GTM for granular thresholds (25/50/75/100% instead of just 90%).
- Always check GA4 DebugView for duplicate events when running both Enhanced Measurement and GTM tracking.
- Keep page views on but consider disabling scrolls, outbound clicks, and forms if you track them via GTM.
- Changes to Enhanced Measurement settings take effect immediately but are not retroactive.
Frequently Asked Questions
What is GA4 Enhanced Measurement?
Enhanced Measurement is a built-in GA4 feature that automatically tracks common user interactions — page views, scrolls, outbound clicks, site search, video engagement, file downloads, and form interactions — without requiring any custom code or tag manager configuration. It activates through a single toggle in your data stream settings and starts collecting data immediately. The trade-off is that its defaults are broad and generic, which can create conflicts when you also have custom tracking built in GTM.
Should I enable all Enhanced Measurement features?
Not if you're using GTM to track the same interactions. Enabling both systems for the same event type creates duplicate data that inflates your reports silently. The right approach is to audit each feature individually: keep it on if you have no other tracking for that interaction, and disable it if GTM already handles it. Page views and file downloads are generally safe to keep on. Scroll tracking and form interactions are the most likely candidates to disable when GTM is in use.
Which Enhanced Measurement features should I disable?
The three most commonly problematic features are Scrolls, Outbound Clicks, and Form Interactions — these are the ones most likely to conflict with GTM custom tracking. Scrolls should almost always be replaced with GTM's Scroll Depth trigger, which lets you set granular thresholds (25%, 50%, 75%, 100%) rather than the fixed 90% GA4 uses. Outbound clicks and form interactions should be disabled if you have equivalent GTM tags already collecting those events. Site search should be disabled if your site uses non-standard query parameters that Enhanced Measurement doesn't detect.
Does Enhanced Measurement replace GTM event tracking?
No. Enhanced Measurement covers seven specific interaction types with fixed parameters and no customization beyond what's in the settings panel. GTM gives you full control over what events fire, when they fire, what parameters they carry, and how they're structured. For most production implementations, Enhanced Measurement handles low-stakes automatic collection while GTM handles the events that feed your conversion reporting and business intelligence. Think of Enhanced Measurement as a starting point, not a replacement for deliberate tagging strategy.
How do I configure Enhanced Measurement search query parameters?
GA4 detects site search by looking for specific query parameters in the page URL after a search. The default list includes q, s, search, query, and keyword. If your site search uses a different parameter — for example term, search_term, or kw — you need to add it manually. Open your data stream settings, click the gear icon next to Enhanced Measurement, then click the arrow next to Site Search to expand additional options. There you can add custom query parameters. Note that this only works for URL query string parameters; POST-based search forms that don't update the URL require a custom GTM or dataLayer implementation.
Does Enhanced Measurement track outbound links automatically?
Yes, when the Outbound Clicks toggle is enabled, GA4 fires a click event with an outbound: true parameter whenever a user clicks a link pointing to a domain different from the current site. It uses the page's hostname to determine what counts as outbound. The limitation is that it treats every domain-crossing click identically — you get no distinction between navigation to a partner site, a social media profile, or a pricing page on a subdomain. If you need any of that nuance, disable this feature and build GTM click triggers that carry meaningful parameters.
Can I override Enhanced Measurement events in GTM?
You cannot selectively suppress individual Enhanced Measurement events from within GTM — the feature runs at the gtag.js level, before GTM processing. The only way to prevent a specific Enhanced Measurement event from firing is to disable it in the data stream settings. What you can do is fire your own GTM event with the same name and richer parameters alongside the Enhanced Measurement event — but that creates duplicates unless you first disable the Enhanced Measurement version. The practical rule: if GTM is managing an event type, turn the corresponding Enhanced Measurement feature off.
Does Enhanced Measurement work with Single Page Applications?
Partially. The page view tracking in Enhanced Measurement does include an option to fire page_view events on browser history changes — the mechanism SPAs use when navigating between views without a full page reload. You can find this option in the Enhanced Measurement settings under Page Changes. However, the reliability depends heavily on how your SPA implements routing. Sites using the History API pushState pattern generally work; hash-based routing and some framework-specific routers may not trigger the events consistently. If your SPA uses a non-standard routing approach, test this in DebugView and consider a GTM-based page view tag as a more reliable alternative.
Analytics consultant turned founder. After years running the same GA4 and GTM audits across client engagements, Ludde built the audit into a product — so the pattern-matching takes a minute, not a meeting. More about Ludde →
Run a free GA4 audit.
Connect your Google Analytics 4 property. Our auditor runs 61 checks and gives you an instant health score with a plain-English action plan.
