Scroll Depth Tracking: Setup, Metrics & Best Practices
Scroll depth tracking measures how far visitors move down a page, turning vague "engagement" debates into concrete data. It reveals whether people reach your key content, CTAs, or pricing sections — or bounce after the hero.
This guide covers how scroll depth works, how to implement it in GA4 and Google Tag Manager, which metrics matter, and how to turn scroll data into better content and UX decisions.
What Is Scroll Depth Tracking?

Scroll Depth Tracking: Setup, Metrics & Best Practices - What Is Scroll Depth Tracking?.
Scroll depth tracking records the percentage of a page a visitor scrolls through. Instead of only knowing that someone loaded a page, you learn whether they consumed it.
Most implementations track milestone thresholds — commonly 25%, 50%, 75%, and 90% or 100%. Each threshold fires an event when a user crosses it, giving you a distribution of how deep visitors go.
Think of it as digital page-turning: you're not just counting that someone opened the book, you're checking which chapters they reached.
Why It Matters Beyond Pageviews
Pageviews treat every visit as equal. But a user who loads a page, skims the hero, and leaves is very different from one who reads to the bottom. Scroll depth separates exposure from consumption.
Different teams use it differently:
- Content teams see where readers stop progressing, which may signal weak structure, an overloaded intro, or a mismatch between headline and content.
- UX teams spot layout problems — if an important CTA sits low and users never reach it, placement may be the issue, not the message.
- Marketers verify whether campaign traffic actually reaches the content that supports conversion.
- Analysts add behavioral context that raw visit counts can't provide.
A practical rule: don't optimize CTA copy first if the audience never reaches the CTA.
What Scroll Depth Does Not Tell You
Scroll depth doesn't prove comprehension, intent, or satisfaction. A user can scroll quickly without reading; another can read carefully without hitting the deepest threshold. Treat it as behavioral context, not a standalone success metric. It works best alongside events, conversions, and qualitative tools like session recordings or heatmaps.
How Scroll Depth Tracking Works

Scroll Depth Tracking: Setup, Metrics & Best Practices - How Scroll Depth Tracking Works.
At its core, scroll tracking listens to scroll events in the browser and checks whether the user has crossed a defined percentage of the page height. When they do, an analytics event fires with details about the threshold and direction.
Common implementation approaches:
| Method | Flexibility | Setup Effort | Maintenance |
|---|---|---|---|
| Native analytics features (e.g., GA4 built-in) | Low to medium | Low | Low |
| Google Tag Manager | High | Medium | Medium |
| Custom JavaScript | Very high | High | High |
| Mobile SDKs | Medium to high | Medium | Medium to high |
Native features are fastest for baseline data but limited in customization. GTM is the practical middle ground for most web teams. Custom JavaScript suits unique front-end architectures but creates ownership risk if undocumented. Mobile SDKs handle native apps where screen transitions and dynamic rendering change how scroll should be measured.
When choosing, ask:
- How much customization do we need? Non-standard thresholds or element-based logic may rule out native defaults.
- Who will maintain this? Analyst-managed GTM setups often age better than undocumented custom scripts.
- How stable is the site? Frequent redesigns raise the value of flexible, inspectable implementations.
- Do we need parity across web and app? Mixed logic models make cross-platform reporting harder unless naming conventions are tightly governed.
Setting Up Scroll Depth Tracking in GA4
Google Analytics 4 includes scroll tracking as part of Enhanced Measurement. By default, it fires a scroll event when a user reaches 90% of the page height.
Enabling the Built-In Scroll Event
- In GA4, go to Admin → Data Streams and select your web stream.
- Click the settings gear next to Enhanced Measurement.
- Ensure the Scrolls toggle is on (it's enabled by default).
- Click Save.
To view the data, go to Reports → Engagement → Events and look for the scroll event. You can also build custom explorations using the built-in Percent scrolled dimension.
Limitations of the Built-In Method
The default setup only tracks the 90% threshold. You don't get data on 25%, 50%, or 75%, which are often more useful for diagnosing where readers drop off. Changing thresholds requires Google Tag Manager or custom code.
Custom Scroll Tracking with Google Tag Manager

Scroll Depth Tracking: Setup, Metrics & Best Practices - Custom Scroll Tracking with Google Tag Manager.
GTM lets you define your own thresholds, event names, and parameters. Here's the standard workflow.
Step 1: Disable GA4's Automatic Scroll Tracking
Since you're taking over control, turn off the native scroll event in GA4 under Admin → Data Streams → Enhanced Measurement to avoid duplicate events.
Step 2: Create a Scroll Depth Trigger
- In GTM, go to Triggers → New → Scroll Depth.
- Under Vertical Scroll Depths, enter your thresholds (e.g., 25, 50, 75, 90).
- Set it to fire on All Pages or specific page types.
- Save the trigger.
Step 3: Enable Scroll Variables
Go to Variables → Configure and enable the built-in scroll variables:
- Scroll Depth Threshold
- Scroll Depth Units
- Scroll Direction
Step 4: Configure the GA4 Event Tag
You have two main naming approaches:
Option A: One event with a parameter
- Event name:
scroll - Parameter:
percent_scrolled={{Scroll Depth Threshold}}
This mirrors GA4's Enhanced Measurement convention. If you want to use percent_scrolled in reports outside the GA4 interface (e.g., Looker Studio), register it as a custom dimension.
Option B: One event name per threshold
- Event name:
scroll_{{Scroll Depth Threshold}}
This produces events like scroll_25, scroll_50, and scroll_75. It's convenient in Path Exploration reports but creates many event names if you track 10 thresholds.
A hybrid approach — unique event names plus a percent_scrolled parameter — gives you both convenience and flexibility.
Step 5: Test and Publish
Use GTM Preview mode to verify events fire at the correct thresholds. Check GA4 DebugView for real-time confirmation, then publish your container.
For teams comparing analytics platforms or weighing setup complexity, a side-by-side look at how tools differ can help — see this comparison of Data4 vs Plausible Analytics vs Google Analytics.
Key Metrics and Reporting
Once scroll events are flowing, focus on metrics that answer real questions:
- Scroll rate by threshold — what percentage of visitors reach 25%, 50%, 75%, 90%?
- Drop-off points — where does the biggest decline occur between thresholds?
- Scroll depth by page type — do blog posts, landing pages, and product pages behave differently?
- Scroll depth by traffic source — does paid traffic scroll as far as organic or email?
- Scroll depth by device — mobile users often scroll differently than desktop users.
Building Reports in GA4
Use Explorations to build free-form reports. A common setup:
- Dimension: Page path or Page title
- Metric: Event count for
scrollevents - Filter:
percent_scrolled= 50 (or your chosen threshold)
This shows which pages hold attention and which lose readers early. Pair scroll data with conversion events to see whether deeper scroll correlates with higher conversion — it often does, but not always.
Common Reporting Pitfalls
- Treating 90% as the only goal. Many pages don't need full scroll; a user who reaches the key CTA at 40% may be fully served.
- Ignoring page length. A 10,000-word guide and a 300-word landing page aren't comparable at the same threshold.
- Forgetting dynamic content. Infinite scroll, lazy-loaded sections, and accordions can distort percentage calculations.
Turning Scroll Data into Action
Scroll data is only useful if it changes decisions. Here's how to act on common patterns:
Pattern 1: Users Drop Before the Midpoint
If most visitors leave before 50%, examine the introduction. Is the lead pulling readers in? Is the strongest proof buried too far down? Consider moving key arguments or proof points higher.
Pattern 2: High Scroll, Low Conversion
If users scroll deep but don't convert, the issue may be the offer, not the content. Test CTA placement, copy, and friction points. Scroll depth confirms they saw the CTA — so if they didn't click, the message or timing is the problem.
Pattern 3: Mobile vs Desktop Divergence
If mobile users consistently scroll less, check for layout issues: sticky overlays, cramped spacing, or slow-loading sections. Mobile scroll problems are often UX problems in disguise.
Pattern 4: Campaign Traffic Scrolls Shallow
If paid or email traffic scrolls less than organic, the landing page may not match the ad promise. Align headline and opening content with the campaign message. For a deeper look at campaign measurement, see this guide to real-time marketing campaign tracking.
Scroll Depth Tracking and Privacy
Scroll events are behavioral data, and in many regions they fall under consent requirements. If you're tracking scroll depth for users in regulated jurisdictions, ensure your consent management setup covers analytics events.
A well-configured consent management platform can help you collect scroll data only from users who have opted in, keeping your analytics compliant without losing the insights you need. See this guide to choosing a consent management platform for practical selection criteria.
Tools for Scroll Depth Tracking
You don't have to build everything from scratch. Options range from native analytics features to dedicated platforms:
- GA4 + GTM — flexible and widely documented, but requires configuration and maintenance.
- Custom JavaScript — maximum control, highest maintenance burden.
- Analytics platforms with built-in engagement tracking — tools like Data4 offer real-time traffic tracking and audience segmentation, which can complement scroll data when you need a simpler setup than GA4. Data4 positions itself as a straightforward alternative to Google Analytics, with multi-language support for global teams.
When evaluating tools, consider how much setup you want to own, whether you need cross-platform parity, and how easily your team can interpret the reports. For a broader comparison, see Data4 vs Google Analytics vs Similarweb.
Related reading
- Real-Time Blog Traffic Monitoring: Tools, Metrics & Setup - Learn how real-time blog traffic monitoring works, which metrics matter, the best tools, and how to set up alerts that catch spikes and outages fast.
Sources and further reading
- Scroll tracking with Google Analytics 4 (GA4 Scroll Depth Tracking) - Learn how to implement scroll tracking with Google Analytics 4 with Google Tag Manager. This is also known as GA4 Scroll Depth Tracking.
- Scroll Depth Tracking: A Complete Guide for 2026 - Master scroll depth tracking to understand user engagement. Our guide covers setup in GTM and GA4, validation, and best practices to get accurate data.
- Google Analytics Scroll Depth Tracking (Explained 2026) - Learn Google Analytics Scroll Depth Tracking in GA4 using built-in tracking, Google Tag Manager, or the easiest method—Analytify!
Frequently Asked Questions
What is a good scroll depth percentage?
There's no universal benchmark. It depends on page length, content type, and user intent. A 300-word landing page might see 80%+ scroll rates, while a long-form guide might average 40–50%. Compare pages of similar type and length, and track changes over time rather than chasing an absolute number.
Does GA4 track scroll depth automatically?
Yes, GA4 tracks a scroll event at the 90% threshold as part of Enhanced Measurement. To track other thresholds like 25%, 50%, or 75%, you need Google Tag Manager or custom code.
What's the difference between scroll and percent_scrolled?
scroll is the event name; percent_scrolled is a parameter that carries the threshold value (e.g., 25, 50, 75). You can send one scroll event with a percent_scrolled parameter, or use separate event names like scroll_25 for each threshold.
Can scroll depth tracking hurt site performance?
When implemented efficiently — especially via GTM's built-in scroll trigger — the performance impact is minimal. Custom JavaScript implementations that run on every scroll event can add overhead if not throttled or debounced.
How do I track scroll depth on infinite scroll pages?
Infinite scroll and lazy-loaded content complicate percentage-based tracking because page height changes as content loads. Consider element-based tracking (e.g., "did the user reach the footer?") or track scroll depth relative to specific content blocks rather than total page height.
Is scroll depth tracking GDPR compliant?
Scroll events are behavioral data and typically require consent in regulated regions. Ensure your consent management setup covers analytics events, and only collect scroll data from users who have opted in.
Conclusion
Scroll depth tracking bridges the gap between pageviews and real engagement. It shows you whether visitors actually consume your content, where they lose interest, and which pages hold attention.
Start with GA4's built-in 90% event for a quick baseline. When you need finer detail, move to Google Tag Manager with custom thresholds. Then focus on acting on the data: fix drop-off points, align content with campaign promises, and test CTA placement where users actually reach it.
The goal isn't to maximize scroll depth — it's to understand whether your content meets user needs at the depth they're willing to go.
