Master Scroll Depth Tracking in GA4 and Divi
Editorial Note We may earn a commission when you visit links from this website.

You publish a strong page, check GA4 later, and see traffic. Maybe time on page looks decent too. But that still leaves the question that matters most. Did people read the content, or did they skim the top and leave?

That gap is where many Divi site owners get stuck. Pageviews are easy to collect. Real engagement is harder. Scroll depth tracking closes that gap by showing how far visitors move through the page, where attention fades, and when interest is high enough to justify a prompt, offer, or next step.

For Divi users, that matters twice. First, it helps you judge whether your layout and content are doing their job. Second, it gives you a practical trigger you can use inside the Divi ecosystem, especially when you want to show a popup only after someone has demonstrated real interest instead of firing it the second the page loads.

Are They Really Reading Your Content

A lot of website reporting creates false confidence. You can see sessions, pageviews, and even engagement metrics in GA4, yet still have no clear idea whether users made it past your intro, saw your offer, or reached the section that explains why your service matters.

That uncertainty shows up all the time on content-heavy Divi sites. A long-form sales page looks polished. A blog post has a good headline and solid design. The traffic arrives. But if readers never get far enough down the page to see the key argument or CTA, the page isn't doing the job you think it is.

Scroll depth tracking solves a very practical problem. It tells you how far users move through a page, which sections lose them, and which pages hold attention long enough to support conversion-focused actions.

Most site owners don't have a traffic problem. They have a visibility problem inside their own pages.

For Divi users, this becomes more than reporting. Once you know where engagement happens, you can act on it. You can restructure a long page, move critical content higher, or trigger a targeted popup only when someone reaches a meaningful point in the page.

That's the difference between analytics as a dashboard and analytics as a working tool. When scroll depth data is configured properly in Google Tag Manager and GA4, it stops being vague behavior data and starts becoming a reliable signal for content decisions and on-page conversion timing.

Understanding Scroll Depth and Why It Matters

A visitor lands on a long Divi page, reads the opening, scrolls a bit, then leaves before the pricing table, testimonial block, or email opt-in ever appears. GA4 still records a visit. On paper, that page looks active. In practice, the visitor never reached the part of the page that was supposed to do the selling.

That gap is why scroll depth matters.

Scroll depth measures how far down a page a visitor gets. Usually, that is tracked as a percentage of the page length. On its own, that sounds simple. In actual use, it answers a harder question: did people reach the sections that matter?

An infographic explaining scroll depth, including definitions, importance for user engagement, and key measurement metrics.

Why this metric matters in real page analysis

Pageviews flatten user behavior. A quick bounce and a committed reader both count as a visit, which makes page-level reporting easy to misread.

Scroll tracking adds context you can use:

  • Whether the page holds attention early. If users stall near the top, the issue is often the intro, header layout, or the first content block.
  • Where page friction starts. A sharp drop can point to an oversized section, weak pacing, repetitive design, or a mobile layout problem.
  • Whether lower-page content is doing any work. Many Divi pages hide their strongest CTA halfway down the layout. Scroll data shows whether enough people ever see it.

That last point matters more than many guides admit. If the offer sits at 60% depth and a large share of visitors leave before 40%, the CTA itself may be fine. The page is asking readers to do too much before they get there.

Scroll depth is useful because it connects layout decisions to conversion timing

On Divi sites, this becomes practical very quickly. A long-form service page might place trust signals at mid-page, a booking CTA lower down, and a Divi Areas Pro popup trigger at a later point for highly engaged visitors. Scroll depth helps decide where those moments should happen.

Used well, it supports decisions like:

  • moving a CTA higher without making the page feel pushy
  • shortening a bloated section that delays the offer
  • triggering a popup only after a visitor has shown real interest
  • separating weak traffic from visitors who are progressing through the page

That is the difference between collecting behavior data and using it to improve a funnel.

Event tracking and scroll maps answer different questions

GA4 and Google Tag Manager are good at recording scroll milestones. They are less helpful when you need to see why users hesitate at a certain section. Visual behavior tools fill that gap. If you want a plain-English explanation of heatmaps and user behavior tools, Tagada's guide to Hotjar is a useful companion read.

For most Divi users, the practical setup is a mix of both. Use GA4 for clean event tracking, then use visual analysis when a page has a drop-off you need to diagnose. If you want to tighten up the reporting side before you build custom scroll events, our beginner's guide to website analytics gives the broader setup context.

The Core Metrics of Scroll Tracking

Scroll tracking gets useful when each milestone maps to a real point in the page, not just a percentage in a report. For a Divi site, that usually means asking a simple question: what sits at 25%, 50%, 75%, and the bottom of the page, and what action should follow if someone reaches it?

The common thresholds are 25%, 50%, 75%, and 100%. They are widely used because they give enough detail to separate quick skims from sustained attention without flooding GA4 with low-value events.

Threshold What it often signals Best use
25% The visitor made it past the opening section Evaluate headlines, intro copy, hero layout, and early page friction
50% The visitor stayed with the page long enough to reach the main body Check whether your page structure and message are holding attention
75% The visitor has shown meaningful engagement Trigger a CTA, email opt-in, or a Divi Areas Pro popup with tighter targeting
100% The visitor reached the end of the page Review whether the closing CTA, related content, or final proof section is getting seen

Those thresholds only mean something if they line up with the page design. On a Divi service page, 50% might land right on testimonials or a pricing explainer. On a blog post, 75% may be the right point to show a content upgrade. On a short landing page, though, 75% and 100% can fire almost immediately, which makes the data look stronger than the visit really was.

That short-page problem catches a lot of site owners. A visitor can hit a high threshold because the page does not have much to scroll. Before treating 75% as a buying signal, check the page length, content density, and where the threshold lands inside the Divi layout.

One generic scroll event will not help much. Threshold-based tracking gives the event context, which is what you need if you want to compare pages, build audiences, or trigger actions at the right moment. If you want the reporting side to stay clean, our guide to tracking custom events in Google Analytics shows how to structure those events properly.

This is also where measurement meets conversion strategy. A 75% event should not sit in GA4 as an interesting number. It should support a practical decision, such as delaying a popup until a reader has reached the section that proves intent. If your reporting setup still treats goals loosely, mastering Google Analytics goals will help you tie those milestone events to outcomes that matter.

How to Set Up Scroll Tracking with GTM and GA4

GA4 includes built-in scroll tracking, but the default setup is too limited for serious content analysis. The built-in scroll event only fires at roughly 90% page depth, which means it misses the earlier engagement signals most site owners need. If you care about 25%, 50%, 75%, and 90% thresholds, you need a custom setup.

A three-step infographic showing how to set up scroll depth tracking using GTM and GA4.

Start by fixing the default GA4 limitation

To achieve granular tracking in GA4, you must disable GA4's default Enhanced Measurement scroll toggle, then enable the Scroll Depth Threshold, Scroll Depth Units, and Scroll Direction variables in GTM before configuring a custom trigger with comma-separated thresholds such as 25, 50, 75, 90, as described in Analytify's GA4 scroll depth setup guide.

That first step matters more than most tutorials admit. If you leave the default GA4 scroll tracking on and also build a custom trigger in GTM, your reports can end up with duplicate events. Then you're debugging data quality instead of learning from the data.

The practical setup in GTM

Use this sequence inside Google Tag Manager.

  1. Disable default GA4 scroll measurement
    In your GA4 web data stream settings, open Enhanced Measurement and turn off scroll tracking. This prevents duplication.

  2. Enable the built-in scroll variables
    In GTM, go to Variables and enable:

    • Scroll Depth Threshold
    • Scroll Depth Units
    • Scroll Direction
  3. Create a Scroll Depth trigger
    Choose vertical scroll depth and enter the thresholds you want as comma-separated values. A common setup is 25, 50, 75, 90.

  4. Create a GA4 Event tag
    Name the event scroll_{{Scroll Depth Threshold}} if you want threshold-specific event names. Also include the parameter percent_scrolled with the value {{Scroll Depth Threshold}} for flexible reporting later.

  5. Attach the trigger to the tag
    Link the custom Scroll Depth trigger to the GA4 Event tag.

  6. Test before publishing
    Use GTM Preview mode and then confirm the events in GA4 DebugView.

A lot of frustration with GA4 comes from the reporting side, not the trigger itself. That's why I prefer sending both a clear event name and the threshold parameter. It keeps the setup usable later instead of technically correct but hard to analyze.

For anyone refining goals and event strategy more broadly, this guide to mastering Google Analytics goals is worth reading alongside your scroll implementation.

A focused tutorial on how to track events in Google Analytics also helps if your GTM setup still feels messy.

Here's a walkthrough if you prefer to see the setup in action.

What to send to GA4

There are two common approaches:

  • Single event name with a parameter
    You send one event such as scroll and pass percent_scrolled as the differentiator.
  • Multiple event names
    You send scroll_25, scroll_50, scroll_75, and scroll_90.

I prefer the second approach for clarity, especially on sites where non-technical stakeholders read reports. Seeing scroll_75 is easier than training someone to filter by event parameters every time. Still, including percent_scrolled keeps your reporting options open.

What actually works in day-to-day use

The setup itself isn't hard. The annoying part is that GA4 gives the impression scroll tracking is already handled, when in reality the default event only answers a narrow question. If you're optimizing long pages, that isn't enough.

If your report can only tell you that someone reached the lower end of the page, it can't tell you where you started losing them.

That's why the GTM route is the practical route. It takes more care upfront, but it produces data you can use for content edits, CTA placement, and Divi behavior triggers later.

Common Scroll Tracking Pitfalls to Avoid

The biggest mistake in scroll depth tracking isn't a broken tag. It's collecting data that looks clean but means almost nothing.

A laptop on a wooden desk displaying a sales performance chart with line graph and donut chart.

The short-page trap

A lot of basic tutorials tell you to fire a scroll trigger on all pages. That sounds convenient, but it creates junk data. On short pages, users can hit deep scroll thresholds almost instantly, sometimes because the page loads into a position that already satisfies the trigger rather than because they read anything.

Industry experts warn that using default All Pages triggers floods analytics with meaningless data from short pages where the threshold is reached by page load, not by reading. A conditional filter such as scrollHeight > 3000px is recommended for more reliable KPIs in Brian Clifton's guidance on avoiding bad scroll tracking.

Add a content-length condition

This one change improves data quality fast.

In GTM, use a condition so the scroll trigger only fires on pages with enough content height to make the metric meaningful. That usually means using a custom JavaScript variable or equivalent logic based on page height.

A simple approach is:

  • Filter by content-rich pages. Only apply tracking to blog posts, long-form landing pages, guides, and documentation.
  • Add a minimum page height condition. Use the page-height guard discussed above so short utility pages don't pollute reports.
  • Exclude obvious non-reading pages. Thank-you pages, login screens, cart utilities, and contact pages often aren't useful for scroll analysis.

Scroll depth is only a meaningful KPI when the page is long enough for scrolling to represent attention.

Two more issues that keep showing up

The next problem is event duplication. If you forget to disable GA4's default scroll measurement and then add custom GTM events, your reports can become messy fast. The data won't be trustworthy enough to drive decisions.

The other issue is reporting frustration. People set up the trigger correctly, then open GA4 and wonder why they still can't break down page-level scroll thresholds cleanly. In most cases, the problem is that the event was sent without the parameter needed for proper analysis, or the naming convention wasn't built for easy exploration.

A quick quality check before you trust the data

Use this checklist before you treat any scroll report as actionable:

Check Why it matters
Default GA4 scroll disabled Prevents duplicate events
GTM scroll variables enabled Gives the tag the values it needs
Thresholds defined clearly Makes reports readable
percent_scrolled passed Supports better analysis
Short-page filter applied Keeps junk data out

If any one of those is missing, the setup might still fire. It just won't be dependable enough to guide content or conversion decisions.

Triggering Divi Popups with Scroll Depth

Tracking is useful. Acting on the signal is where the payoff starts.

When someone reaches a meaningful point in a long page, that behavior can justify a targeted message. On a Divi site, a scroll-based popup works best when it feels earned. The visitor has shown interest, consumed enough context, and is more likely to respond to an offer that matches what they're reading.

Screenshot from https://divimode.com/

Why scroll-triggered popups work better than instant popups

An immediate popup interrupts. A scroll-triggered popup responds to behavior.

That difference matters on content pages. If a reader has reached the lower half or deeper portion of a guide, they've already invested attention. That's a much better moment to offer a lead magnet, booking prompt, related service, coupon, or newsletter signup than the first few seconds after page load.

A frequent frustration in GA4 is that the default scroll event doesn't include the percent_scrolled dimension needed for useful page-by-page analysis unless you manually configure GTM to pass the {{Scroll Depth Threshold}} variable, as covered in this YouTube explanation of GA4 scroll visualization. That reporting detail matters because it helps you decide which threshold should trigger the popup in Divi.

A practical Divi workflow

Use scroll analytics first. Then set the trigger in Divi based on what your page pattern supports.

  1. Choose one page type first
    Start with a long blog post, guide, or service page. Don't apply a popup trigger across the whole site immediately.

  2. Identify the right timing point
    If your data shows readers commonly reach the middle of the page but fewer continue deeper, a popup near a later threshold may be too late. On stronger pages, a deeper trigger can work well because it targets more committed readers.

  3. Create the popup content
    Keep the offer relevant to the page topic. On a tutorial, offer a checklist. On a service explainer, offer a consult or quote request. On a WooCommerce content page, offer a product-related incentive or next step.

  4. Set the Divi trigger
    In your popup setup, choose the scroll-based trigger and define the percentage threshold that fits the page behavior you observed.

  5. Keep the message small and specific
    Scroll-triggered popups work best when they feel like a helpful continuation, not a hard interruption.

If you want the mechanics of the trigger itself, this Divi scroll event trigger guide shows the implementation path.

What to avoid when using this tactic

This approach gets weaker when the popup appears on every page at the same threshold with the same message. That's not behavioral targeting. That's just a different kind of blanket interruption.

Use these guardrails instead:

  • Match the offer to the page intent. A newsletter prompt might fit a blog post, while a pricing page may call for a contact or demo action.
  • Respect reading momentum. If the popup blocks key content too aggressively, it can reduce the value of the very engagement you're trying to capture.
  • Review threshold performance over time. The right trigger point often changes after you refine layout, CTA placement, or page length.

A scroll-triggered popup should feel like good timing, not ambush timing.

Done properly, this is one of the cleanest ways to connect analytics and conversion behavior on a Divi site.

From Data Insight to Business Impact

Scroll depth tracking becomes valuable when it changes what you do. It shows whether people are consuming the page, where interest drops, and when a visitor has earned a stronger call to action.

That's why the technical setup matters. A proper GTM and GA4 implementation gives you threshold-level visibility instead of one vague scroll event. A clean setup also avoids the reporting noise that pushes many site owners to ignore the metric entirely.

The bigger win is operational. Once you know where engagement rises or fades, you can redesign page sections, move offers, tighten copy, or trigger behavior-based actions inside Divi. That's the same mindset teams use when they build clearer reporting systems with business intelligence dashboards for growth decisions. The point isn't more data. The point is better decisions.

For Divi users, scroll depth tracking is one of the most practical bridges between analytics and action. It turns passive pageviews into signals you can use.


If you want to turn reader behavior into better on-page experiences, Divimode gives Divi users the tools to build targeted popups, fly-ins, and other interactive elements without fighting the builder. It's a practical next step when you're ready to put scroll-based engagement to work.