Launch Offer2 free audits with all 229 checks. No credit card required.Start free audit

GA4 Enhanced Measurement: What to Enable, What to Disable, and Why (2026)

Intermediate

What is GA4 enhanced measurement?

Enhanced measurement is GA4's built-in automatic event collection for common web interactions — enabled with a toggle, no code required. There are 8 enhanced measurement event types: page views, scrolls, outbound clicks, site search, video engagement, file downloads, form interactions, and history changes. The default: all are enabled when you create a new GA4 data stream. This sounds convenient, but several of these defaults cause data quality problems: they inflate event counts, create duplicate events when you also have custom event implementations, or collect low-signal data that clutters your Events report.

Understanding each one before your first GTM implementation prevents months of data quality debt.

The 8 enhanced measurement events

1. Page views ✅ Always keep ON

Event name: page_view

What it does: Fires on every page load and (for SPAs) on URL changes detected by the History Change API.

Keep on: Yes. Page views are foundational. The SPA behaviour (firing on history state changes) may require configuration if your SPA changes URL without using the standard History API — but for most sites, this works correctly.

2. Scrolls ⚠️ Evaluate

Event name: scroll

What it does: Fires when a user scrolls to 90% of the page depth. Once per page, per session.

Potential problem: A single threshold (90%) doesn't distinguish engaged reading from accidental scrolling. A user who opens a blog post, scrolls quickly to the bottom without reading, and leaves immediately triggers a scroll event just like a user who spent 8 minutes reading the full article.

For content sites: Consider disabling and replacing with a custom article_completed event that fires at 90% scroll ONLY on article templates and only after 60+ seconds on page — a much better engagement signal.

For e-commerce and SaaS: The 90% scroll event on product pages or pricing pages is a reasonable intent signal. Keep enabled.

3. Outbound clicks ⚠️ Evaluate

Event name: click

What it does: Fires when a user clicks a link that goes to a different domain.

Potential problem: This generates extremely high event volumes. Every ad click, every footer link to a third-party, every social share icon triggers it. For high-traffic sites, click can become your highest-volume event, swamping the Events report with noise.

When to disable: If you're not actively analysing outbound click destinations, or if you have a custom outbound_click event with better parameter data (target domain, link text).

When to keep: If you want to understand which external sites your users navigate to. Add the link_url dimension in a Free Form Exploration to see the data.

4. Site search ✅ Usually keep ON

Event name: view_search_results

What it does: Fires when a URL contains a query parameter matching your search parameter name (default: q, s, search, query, keyword).

Configure: In the enhanced measurement settings, specify the exact query parameter your search uses. If your site uses ?search_term= rather than ?q=, update the parameter configuration.

Value: Site search data reveals what users can't find in navigation — a direct roadmap for content gaps and navigation improvements.

Potential problem: If your URL structure uses q= for non-search purposes (e.g., a filter parameter), this fires incorrectly. Check: Reports → Engagement → Events → view_search_results → see what search terms appear. If they look like filter values rather than search queries, update the parameter setting.

Want to see whether purchase, revenue, or item-level tracking is drifting in your property?

5. Video engagement ✅ Keep ON (if using YouTube embeds)

Events: video_start, video_progress (at 10%, 25%, 50%, 75%), video_complete

What it does: Tracks engagement with embedded YouTube videos on your site.

Works only with: YouTube iframe embeds. Does NOT work with Vimeo, Wistia, HTML5 <video> elements, or custom video players.

Potential problem: None for most sites. If you're using a custom video player with your own tracking, you'll get duplicate video events. Disable enhanced measurement video events in that case and keep only your custom implementation.

6. File downloads ✅ Keep ON for most sites

Event name: file_download

What it does: Fires when a user clicks a link to a downloadable file (PDF, docx, xlsx, zip, etc.).

Value: Direct intent signal — users downloading your product brochure, spec sheets, or case studies are in active consideration.

Potential problem: None usually. If you have a custom download tracking implementation, disable to avoid duplicates.

7. Form interactions ⚠️ Often disable

Events: form_view, form_start, form_submit

What it does: Automatically attempts to track form views, first interactions, and submissions.

The problem: Enhanced measurement form tracking is unreliable. It:

  • Doesn't always correctly identify form types (can fire on search bars, newsletter forms, and contact forms identically)
  • Doesn't capture form_id consistently across form libraries
  • Conflicts with custom form tracking implementations (producing duplicate events)
  • On SPAs (React, Vue) — often fires incorrectly or not at all

Recommendation: Disable enhanced measurement form interactions and implement custom generate_lead events for the specific forms you care about. Custom implementation gives you accurate form_id, lead_type, and page context that enhanced measurement can't provide.

8. History changes / Virtual page views ✅ Keep ON for SPAs

Event name: page_view (additional fires triggered by URL history changes)

What it does: For single-page applications, fires page_view when the browser URL changes via the History API (pushState/replaceState).

Value: Essential for SPAs. Without this, GA4 only records the initial page load. Navigation between SPA routes is invisible.

Potential problem: If your SPA uses a router that fires history changes for non-page transitions (e.g., modal opens that update the URL hash), you may get spurious page_view events for modals. Address with a custom SPA pageview implementation that filters these out.

The duplicate event problem

The most common enhanced measurement mistake: enabling both enhanced measurement and a custom GTM implementation for the same event type.

Example: You enable enhanced measurement form interactions AND you have a GTM tag firing form_submit on your contact form. Result: every form submission triggers TWO form_submit events — one from enhanced measurement, one from GTM.

Fix: Disable the enhanced measurement toggle for any event type where you have a custom implementation. Chose one source of truth per event.

Check for duplicates: GA4 → Reports → Engagement → Events → select form_submit → check if count seems 2x higher than expected → confirm in GA4 DebugView by submitting the form once and counting how many events fire.

FAQ: GA4 Enhanced Measurement: What to Enable, What to Disable, and Why

What is the first thing to verify when ga4 enhanced measurement: what to enable, what to disable, and why affects revenue?

Check whether the event fired with the correct transaction ID, revenue value, currency, and item array. Those four fields explain most ecommerce reporting failures.

Should I compare GA4 only to the ecommerce platform total?

No. Use order data, checkout flow behavior, and event payload evidence together. Platform totals alone do not tell you whether the issue is loss, duplication, or attribution drift.

How do I keep this from breaking after the next release?

Build a checkout QA routine that runs after changes to cart, consent, payment, shipping, discounts, or order confirmation logic.

Audit GA4 Enhanced Measurement: What to Enable, What to Disable, and Why before revenue reporting drifts further

Run a free GA4 audit to catch purchase, refund, item-array, and attribution issues before they distort ecommerce decision-making.

These findings come from auditing thousands of GA4 properties. See how your property compares

GA4 Audits Team

GA4 Audits Team

Analytics Engineering

Specialising in GA4 architecture, consent mode implementation, and multi-layer audit frameworks.

Share