Most WordPress site owners who enable GA4 enhanced measurement believe their tracking is complete — it almost certainly isn’t.
Enhanced measurement is GA4’s built-in auto-tracking layer. It automatically tracks scroll depth, outbound clicks, video plays, file downloads, site search, and form interactions — with no code required.
That’s pretty thorough. But, the problem is that each of those events has a specific situation where it silently stops working, and most of those situations are extremely common on WordPress sites.
This guide breaks down exactly what enhanced measurement tracks, where it silently breaks, and what you can do to fill those gaps — without replacing GA4 or setting up custom tracking code.
In This Article:
- What GA4 Enhanced Measurement Actually Tracks
- Where GA4 Enhanced Measurement Silently Breaks
- Enhanced Measurement vs. MonsterInsights: Side-by-Side Comparison
- Why Enhanced Measurement Breaks More on WordPress
- How to Tell if Your Enhanced Measurement Is Actually Working
- How MonsterInsights' Automatic Events Tracking Fills the Gaps
- How to Configure Enhanced Measurement and MonsterInsights Together
- Common Enhanced Measurement Problems on WordPress (And How to Fix Them)
- Video Tutorial: GA4 Enhanced Measurement for WordPress
- Frequently Asked Questions: GA4 Enhanced Measurement
- Complete Your GA4 Tracking Setup
See Every Click, Scroll, and Form Submission GA4 Is Missing
MonsterInsights solves each of these gaps — affiliate links, Vimeo video, AJAX forms, and file downloads — automatically, at the WordPress level. No custom code or GTM required.
Try MonsterInsights for FreeWhat GA4 Enhanced Measurement Actually Tracks
Enhanced measurement lives in your GA4 property settings.
To find it, go to Admin → Data Streams → your web stream → Enhanced Measurement. When you click the settings gear, you’ll see a toggle for each event type.
Here’s exactly what each event tracks — and what it requires:
Page Views (page_view event)
Fires on every page load — automatically, with no setup required. This is GA4’s core baseline event and runs regardless of whether enhanced measurement is enabled. It records the URL, page title, and referrer for every visit. Unlike the other events in this list, you cannot disable page view tracking.
Scrolls (scroll event)
Records once per visit when a user scrolls past the 90% mark of a page. That’s the only threshold measured — there’s no 25%, 50%, or 75% breakpoint. To see the data, you have to build a custom exploration report in GA4.
Outbound Clicks (click event)
Fires when a visitor clicks a link pointing to a different domain. This one works reasonably well, though it can miss the link anchor text in reports. You’ll still need to create an exploration report to surface the data in GA4.
Site Search (view_search_results event)
Fires when GA4 detects a search results URL pattern. This is one of the better-performing enhanced measurement features — it reads the search term from your search results URL and logs what users searched for. Our site search tracking guide covers the full setup.
Video Engagement (video_start, video_progress, video_complete events)
Fires on video play, 10%/25%/50%/75% progress, and completion. Keep in mind that this is for YouTube embeds only. Vimeo, Wistia, self-hosted HTML5 videos, and any other video platform are not tracked at all by enhanced measurement.
File Downloads (file_download event)
Fires when a visitor clicks a link to a file with a common extension: .pdf, .zip, .docx, .xlsx, .pptx, .mp4, and a handful of others. Files served from a CDN, behind authentication, or via a custom download manager script often aren’t tracked.
Form Interactions (form_start, form_submit events)
Fires when GA4 detects a user interacting with a form element. This is the most unreliable of all enhanced measurement events. Many WordPress form plugins process submissions in a way that enhanced measurement’s basic detection doesn’t recognize — so it either fires when it shouldn’t, fires multiple times, or misses the submission entirely.
The enhanced measurement overview looks complete on paper. In practice, each of these events has a scenario where it silently does nothing.
Where GA4 Enhanced Measurement Silently Breaks
The dangerous thing about enhanced measurement gaps is that GA4 doesn’t warn you. There are no error messages, no empty-state alerts, no red flags in your reports. The event just never fires, and you never know what you’re missing.
These are the most common failure modes on WordPress sites:
Affiliate Links Don’t Register as Outbound Clicks
If you use a link cloaking plugin like ThirstyAffiliates or Pretty Links, your affiliate URLs are rewritten to internal-looking paths (like /go/product-name/). GA4 enhanced measurement sees those as internal links — not outbound — and doesn’t fire a click event. If affiliate revenue is important to your business, this is a significant blind spot. Our guide to affiliate link tracking in WordPress walks through a proper fix.
Vimeo and Self-Hosted Videos Are Completely Invisible
Enhanced measurement’s video tracking is hard-coded to YouTube’s JavaScript API. If you embed a Vimeo video, an HTML5 video hosted in your media library, or a video from any other platform, enhanced measurement does nothing. For sites in the B2B, education, or media space where Vimeo is common, this is a consistent gap. You can set up Vimeo tracking in Google Analytics without relying on enhanced measurement.
Scroll Tracking Breaks in Certain Theme Structures
Enhanced measurement’s scroll event fires based on the percentage of the document body height. On themes that use fixed sidebars, sticky footers, or non-standard document structures — including some Elementor and Divi full-width templates — the document height calculation is off. The 90% threshold never fires even when users scroll the full visible page.
Custom Download Setups Miss File Downloads
Enhanced measurement detects file downloads by checking whether a clicked URL ends in a recognized file extension. If your downloads are served through a redirect (like a download manager, a membership plugin, or a CDN URL that doesn’t expose the extension), the event never fires. The same is true for files behind login walls or files served by PHP scripts rather than direct links.
Caching Plugins Can Interfere With the dataLayer
GA4’s enhanced measurement relies on the dataLayer JavaScript object being initialized before the gtag.js script runs. Aggressive caching plugins — especially those that minify JavaScript, combine scripts, or delay script execution — can break this initialization order. When that happens, enhanced measurement events either fire inconsistently or stop firing entirely, with no visible error.
Single-Page Applications Miss Page Views and All Events That Depend on Them
If your WordPress site loads content dynamically — common in Elementor Pro, certain WooCommerce AJAX setups, or headless WordPress configurations — GA4’s default page view tracking doesn’t fire on virtual page transitions. Enhanced measurement sits on top of GA4’s core tracking. If the core page view is missing, so is everything that depends on it.
Form Tracking Misfires and Misses in Both Directions
GA4’s form_submit event fires on any DOM form submission — including hidden forms, newsletter widgets, and search bars. This produces false positives that inflate your form data. At the same time, forms submitted via AJAX (standard in WPForms, Gravity Forms, and Contact Form 7 with AJAX enabled) don’t trigger a real form submission event, so they’re missed entirely.
If you’re seeing form tracking numbers that don’t match your actual lead count, this is almost certainly why. For a reliable alternative, our guide to tracking form submissions in Google Analytics covers the options.
Enhanced Measurement vs. MonsterInsights: Side-by-Side Comparison
Here’s where each enhanced measurement event falls short — and what MonsterInsights tracks instead:
| Enhanced Measurement Event | What It Fires On | What It Misses | What MonsterInsights Tracks Instead |
|---|---|---|---|
| scroll | 90% page depth only, once per session | Average scroll depth; scroll on non-standard theme structures | Average scroll depth percentage across all pages, shown in the Publishers Report |
| click (outbound) | Clicks on links to external domains | Cloaked affiliate links (e.g., /go/product/); links that redirect before leaving domain | All outbound links including cloaked affiliate links; ThirstyAffiliates and Pretty Links tracked automatically |
| video_start / video_progress / video_complete | YouTube embeds only | Vimeo, Wistia, self-hosted HTML5 video, and all other platforms | YouTube, Vimeo, and self-hosted HTML5 video — all tracked automatically in the Media Report (Plus+) |
| file_download | Direct links ending in recognized file extensions | CDN-served files, downloads behind login, redirect-based download managers | File downloads regardless of URL structure, including custom download paths (Plus+) |
| form_start / form_submit | Native HTML form elements | AJAX-submitted forms; multi-step forms; JS-rendered forms (WPForms, Gravity Forms, CF7) | Form submissions tracked per plugin — WPForms, Gravity Forms, CF7, Formidable Forms — with conversion rate in the Form Report (Pro+) |
| view_search_results | Search results URLs with a standard query parameter | Non-standard query parameters or custom search solutions | Works alongside GA4 site search; no conflict or duplication |
The pattern is consistent: enhanced measurement fires reliably on simple, standard setups and fails silently on anything more complex. WordPress sites, by definition, tend toward the complex.
Why Enhanced Measurement Breaks More on WordPress
The table above shows what GA4 enhanced measurement was designed to track. What it doesn’t show is that those failure modes are all significantly more likely on WordPress than on a simple website.
A plain website is just files delivered to a browser. WordPress adds themes, page builders, caching plugins, form plugins, link managers, and a plugin ecosystem built by thousands of different developers — each making different assumptions about how pages are built and how scripts run.
Enhanced measurement was designed around a simpler model. Here’s how each WordPress-specific layer creates the tracking gaps you saw in the comparison table above.
How Your Theme Can Break Scroll Tracking
GA4 measures scroll depth by calculating how far down the full page a visitor has scrolled. It does this by measuring the total height of the document — the full page content, from top to bottom.
Page builders like Elementor and Divi, and themes with sticky headers or footers, can affect this height calculation. If your theme causes GA4 to underestimate the true page length, the 90% scroll threshold fires too early — or never fires at all, even when a visitor reads every word.
How Caching Plugins Interrupt GA4’s Tracking Script
Caching plugins like WP Rocket, W3 Total Cache, and LiteSpeed Cache speed up your site by delaying or combining scripts so they don’t all load at once. That’s good for page speed — but GA4’s tracking script (a file called gtag.js) needs to load early. If a caching plugin delays it, enhanced measurement doesn’t finish setting itself up before your visitors start interacting with the page.
The result: events that appear to work fine when you test your site without caching enabled quietly stop firing for real visitors who receive the cached version. This is one of the hardest tracking gaps to catch because it only shows up in production — not in your own browser.
How Link Cloaking Hides Clicks From GA4
When you use a plugin like ThirstyAffiliates or Pretty Links to manage your affiliate links, the URL a visitor sees looks like part of your own site — something like /go/hosting-company/. GA4 enhanced measurement sees that URL, recognizes it as an internal link (pointing to your own domain), and doesn’t fire a click event. It never knows the visitor was heading to an affiliate page at all.
Custom download managers work the same way: they route the file request through a URL that doesn’t look like a file download, so enhanced measurement’s file detection never triggers.
Why WordPress Form Plugins Are Invisible to GA4
Standard HTML forms — the kind built into basic web pages — submit data by reloading the page. Enhanced measurement detects that page reload as a form submit event.
WordPress form plugins like WPForms, Gravity Forms, and Contact Form 7 don’t work that way. They use JavaScript to send the form data in the background, without reloading the page. From enhanced measurement’s point of view, nothing happened — even if the form was successfully submitted and you received the lead.
None of these are edge cases. They describe the average well-configured WordPress site.
How to Tell if Your Enhanced Measurement Is Actually Working
Before you add any additional tracking layer, it’s worth confirming which enhanced measurement events are actually firing on your site. GA4’s DebugView is the fastest way to find out.
Step 1: Enable GA4 DebugView
Install the Google Analytics Debugger Chrome extension and activate it on your site. When it’s active, GA4 switches into a special testing mode that shows your activity in DebugView in real time — every event that fires appears in the stream as it happens. In GA4, go to Admin → DebugView to open it.
Step 2: Test Each Event Type Manually
With DebugView open, visit your site and perform each action you want to verify:
- Scroll: Open a long page and scroll all the way to the bottom. You should see a scroll event fire with a percent_scrolled: 90 parameter.
- Outbound click: Click an external link. Look for a click event with outbound: true and the destination URL.
- Affiliate click: Click one of your cloaked affiliate links (e.g., /go/product/). If you see no click event at all, enhanced measurement is missing it.
- Video: Play a YouTube embed and check for video_start. Then play a Vimeo embed — you should see nothing fire, which confirms the gap.
- File download: Click a direct PDF link and check for file_download. Then try a file served through your download manager — if no event fires, that’s a confirmed gap.
- Form submit: Submit a test form. Look for form_submit. Note whether it fires once or multiple times, and compare the form ID against your actual form plugin’s IDs.
Step 3: Check the Events Report
In GA4, go to Reports → Engagement → Events. Look for scroll, click, file_download, video_start, and form_submit in your event list. If any of these are absent after a few days of normal traffic, that event is either not firing or not reaching GA4.
One note: low scroll counts relative to page_view counts is normal — only users who reach 90% of page depth fire the event. But zero scroll events with substantial traffic means something is broken.
Once you have a clear picture of which events are working and which aren’t, you’re ready to close the gaps. The next section covers exactly how MonsterInsights fills each one — automatically, at the WordPress level.
How MonsterInsights’ Automatic Events Tracking Fills the Gaps
MonsterInsights’ Automatic Events Tracking isn’t a replacement for GA4 enhanced measurement. It’s a complementary layer that runs alongside it, specifically designed to catch what enhanced measurement misses on WordPress sites.
The key difference is that MonsterInsights’ tracking is built for WordPress’s actual plugin ecosystem. It knows what ThirstyAffiliates links look like, how WPForms submits data, how to read Vimeo video progress events, and how to detect file downloads regardless of URL structure. Enhanced measurement doesn’t know any of those things.
What Automatic Events Tracking Covers (Plus and Above)
On the Plus plan and above, MonsterInsights automatically tracks:
- Scroll depth — average percentage across all pages, not just a binary 90% threshold
- Outbound link clicks — including cloaked affiliate links from ThirstyAffiliates, Pretty Links, and AffiliateWP
- Affiliate link clicks — tracked separately from general outbound clicks so you can see affiliate performance distinctly
- File downloads — all standard extensions including files served through custom paths
- YouTube, Vimeo, and HTML5 video — play, progress milestones, and completion across all three platforms
All of this data appears inside your WordPress dashboard, in purpose-built reports.
That means you don’t need to build a custom exploration in GA4 to see it.
What Form and eCommerce Tracking Add (Pro and Above)
On Pro, MonsterInsights adds plugin-aware form tracking that works with WPForms, Gravity Forms, Contact Form 7, Ninja Forms, and Formidable Forms.
It tracks actual submissions — not DOM form events — and reports conversion rate per form in a dedicated Form Report.
For WooCommerce and Easy Digital Downloads stores, MonsterInsights handles the full GA4 eCommerce event schema automatically with a single click.
If you currently rely on enhanced measurement’s outbound click tracking to understand what products customers are clicking before buying, the eCommerce and WooCommerce reports give you the full picture from click to purchase.
The result is a setup where GA4 enhanced measurement handles what it handles well — site search, basic outbound clicks — and MonsterInsights fills every gap that’s specific to WordPress’s plugin architecture.
Track Affiliate Links, Forms, and Video — All Inside WordPress
MonsterInsights Plus automatically tracks scroll depth, outbound and affiliate link clicks, file downloads, and YouTube, Vimeo, and HTML5 video — no custom events or GTM setup required. Reports show up right in your WordPress dashboard.
See MonsterInsights PlansHow to Configure Enhanced Measurement and MonsterInsights Together
Running both GA4 enhanced measurement and MonsterInsights together is straightforward. The goal is to keep enhanced measurement enabled for events where it works reliably, and let MonsterInsights handle everything else.
Step 1: Check Your Current Enhanced Measurement Settings
In GA4, go to Admin → Data Streams → your web data stream → Enhanced Measurement.
Keep these enabled — they work reliably and MonsterInsights won’t duplicate them:
- Page views (always on, can’t be disabled)
- Site search (reliable when your search URL uses a standard query parameter)
- Outbound clicks (useful for non-affiliate external links)
For scroll, video, file downloads, and forms — MonsterInsights’ tracking is more reliable and gives you better data. You can leave these enabled in GA4 too; the events appear in GA4’s event stream separately from what MonsterInsights sends and they won’t conflict.
Step 2: Install MonsterInsights
If you haven’t already, install MonsterInsights from the pricing page and connect it to your GA4 property.
The setup wizard walks you through connecting your GA4 property in about 2 minutes. Full setup instructions are in our Google Analytics setup guide.
Step 3: Confirm MonsterInsights Is Running Normally
Once MonsterInsights is installed and connected on a Plus plan or above, automatic events tracking is enabled immediately — no additional setup required. Scroll depth, outbound link clicks, affiliate link tracking, and file downloads all run from the moment your site is connected. There is nothing to toggle or configure.
To confirm your connection is active, go to Insights → Settings. Under Google Authentication, your GA4 property should appear under Website Profile.
The Advanced Tracking Settings panel should read “Not Active” — that is the correct default state for most sites, meaning MonsterInsights is handling tracking normally.
If your Website Profile shows an active GA4 property and Advanced Tracking Settings reads “Not Active,” you’re all set. Automatic events are already running.
Step 4: Enable Media Tracking for Video
Media tracking (YouTube, Vimeo, HTML5) is included on Plus but requires the Media addon to be active. Go to Insights → Addons and confirm the Media addon is installed and activated.
Once active, video tracking works automatically on any embedded YouTube, Vimeo, or HTML5 video — no code needed.
Step 5: Check Your Reports
After 24–48 hours, check Insights → Reports → Publishers for scroll depth, outbound links, and affiliate click data.
Check Insights → Reports → Media for video engagement data. Both reports are inside WordPress — no GA4 exploration required.
Step 6: Confirm Both Layers Are Working in DebugView
Run the DebugView test one more time with MonsterInsights active. You’ll now see events from both sources in the stream. Each action you take — scrolling, clicking an affiliate link, playing a Vimeo video — should now show a corresponding event where it was silent before.
This is what complete tracking looks like: enhanced measurement handling the basics, MonsterInsights handling the WordPress-specific gaps, and all of it visible without leaving WordPress.
Common Enhanced Measurement Problems on WordPress (And How to Fix Them)
If the DebugView test confirmed specific events aren’t firing, here’s how to diagnose and fix the most common issues:
Problem: Scroll Events Not Firing
Most likely cause: Your caching plugin is delaying GA4’s tracking script (gtag.js), or your theme’s page structure is reporting an incorrect page height to GA4.
Fix: In your caching plugin settings, add gtag.js and analytics.js to the list of scripts that should not be delayed or combined. For theme structure issues, MonsterInsights’ scroll tracking is the more reliable fallback — it measures actual viewport scroll rather than document percentage.
Problem: Form Submit Firing on Non-Form Interactions
Most likely cause: Enhanced measurement detects any form element on the page — including search bars, newsletter signup widgets, and header forms — and counts all of them as form interactions. This can inflate your form data with events that aren’t actual lead submissions.
Fix: Disable enhanced measurement’s form interaction toggle and use MonsterInsights’ Form Conversion tracking (Pro+) instead, which tracks per plugin rather than per page element. Our Elementor form tracking guide covers the full setup.
Problem: Affiliate Links Not Tracked as Outbound Clicks
Most likely cause: Your links are cloaked to internal-looking paths. Enhanced measurement can’t see through the redirect.
Fix: MonsterInsights’ affiliate link tracking is built specifically for this. It recognizes cloaking patterns used by ThirstyAffiliates and Pretty Links and fires correctly regardless of URL structure. Our guide to finding your top affiliate links in WordPress covers the full setup.
Problem: File Downloads Not Tracked
Most likely cause: Your files are served through a download manager, behind a membership gate, or from a CDN URL that doesn’t end in a recognized extension.
Fix: Check whether the URL a user clicks ends in a recognized file extension. If not, MonsterInsights’ file download tracking has a broader detection pattern that handles non-standard URLs reliably.
Problem: Enhanced Measurement Inconsistent Across Devices
Most likely cause: Your caching plugin serves a slightly different page on mobile vs. desktop, causing gtag.js initialization to fail on one but not the other.
Fix: Test DebugView from a real mobile device or use Chrome DevTools mobile emulation. If events fire on desktop but not mobile, exclude your GA4 snippets from mobile-specific cache optimization rules. For a broader troubleshooting guide, our Google Analytics troubleshooting walkthrough covers the most common issues.
The Bottom Line
Enhanced measurement is a useful starting point — but it was built for generic websites, not WordPress. The gaps it leaves are specific and predictable: affiliate links, Vimeo video, AJAX forms, cached-script timing, and non-standard download setups. MonsterInsights fills those gaps at the WordPress layer, where the problem actually lives.
Video Tutorial: GA4 Enhanced Measurement for WordPress
Frequently Asked Questions: GA4 Enhanced Measurement
Does GA4 enhanced measurement work automatically, or do I need to configure anything?
Enhanced measurement is enabled by default when you create a new GA4 property and add a web data stream. Each event type has its own toggle in Admin → Data Streams → your stream → Enhanced Measurement. No code is required to turn them on, but some — like site search — need your URL structure to match what GA4 expects.
Will MonsterInsights and GA4 enhanced measurement create duplicate events?
Not in a way that causes problems. MonsterInsights sends its own event names to GA4 (they differ from enhanced measurement event names), so both sources appear in your GA4 event reports without canceling each other out. MonsterInsights’ reports inside WordPress pull from its own tracking layer, so you won’t see duplication in the MonsterInsights dashboard either.
Why is GA4 enhanced measurement not working on my WordPress site?
The most common causes are: a caching plugin deferring or minifying gtag.js (which breaks dataLayer initialization); a theme structure that reports incorrect document height (preventing the scroll event from hitting 90%); AJAX-based forms that don’t submit the way plain HTML forms do; and affiliate links cloaked to internal-looking paths that enhanced measurement doesn’t recognize as outbound. Test each event type in DebugView to isolate the failures. Our Google Analytics troubleshooting guide covers the most common causes in detail.
Does GA4 enhanced measurement track Vimeo videos?
No. Enhanced measurement’s video tracking is hard-coded to YouTube’s JavaScript API. Vimeo, Wistia, self-hosted HTML5 videos, and any other video platform are completely invisible to it. MonsterInsights tracks YouTube, Vimeo, and self-hosted HTML5 video automatically on Plus and above via the Media addon — no code needed.
Does GA4 enhanced measurement track affiliate link clicks?
Only if the affiliate link points directly to an external domain without any redirect. If you use a cloaking plugin like ThirstyAffiliates or Pretty Links, your links are rewritten to internal paths (like /go/product/), and GA4 treats those as internal navigation — no event fires. MonsterInsights’ affiliate link tracking is specifically built to handle cloaked links and fires correctly regardless of URL structure.
Should I disable GA4 enhanced measurement if I’m using MonsterInsights?
No. Keep enhanced measurement enabled — it’s a useful additional data source in GA4 and handles site search detection well. The goal isn’t to replace one with the other; it’s to use both together so you have no gaps. The one exception: many site owners choose to disable enhanced measurement’s form interaction tracking specifically, since it tends to produce noisy data that conflicts with MonsterInsights’ more precise form reports.
How do I check which GA4 enhanced measurement events are actually firing?
Use GA4’s DebugView. Install the Google Analytics Debugger Chrome extension, activate it on your site, then open Admin → DebugView in GA4. Perform each action you want to test — scrolling, clicking links, playing videos, downloading files, submitting forms — and watch the event stream in real time. Any event that should fire but doesn’t is a confirmed tracking gap on your site.
Complete Your GA4 Tracking Setup
Enhanced measurement is a solid starting point — it gives you basic behavioral data with zero setup. But on a typical WordPress site, it leaves specific and predictable gaps: affiliate clicks, non-YouTube video, AJAX form submissions, and anything your caching plugin interferes with.
The answer isn’t to abandon enhanced measurement or switch to a different analytics tool. It’s to add MonsterInsights as the complementary layer that handles what enhanced measurement can’t — specifically on WordPress, specifically for the plugins you’re already running.
You might also want to read:
- Google Analytics (GA4) Events: A Quick-Start Guide for Beginners
- How to Set Up Affiliate Link Tracking in WordPress
- How to Track Video Plays in Google Analytics (No GTM!)
- How to Track Form Submissions in Google Analytics & WordPress
- Google Analytics Not Working: 13 Common Errors & How to Fix Them
- How to Track Button Clicks in Google Analytics 4 (No GTM!)
Not using MonsterInsights yet? See pricing.
Follow us on Twitter, Facebook, and YouTube for more Google Analytics tips.