How to Set Up Scroll Depth Tracking in Google Tag Manager

Modern marketers are always looking for more ways to better understand user behavior on their site, in order to connect if their efforts, time, and resources, are making a difference.

To that end, Google Analytics and Google Tag Manage have come a long way in managing different tracking methodologies, scripts, and what have you.

In any event, if you’re deploying Google Analytics with Google Tag Manager, there is one more user event/behavior you can track, which as you may have guessed, is how users are scrolling the page(s) on your site.

What Is Scroll Depth Tracking?

Scroll depth tracking, allows you to capture how much percentage a user has scrolled your page(s), or do the same, by pixel depth. In other words, you can get insights into how much users are interacting with your content, and can combine that analysis with bounce rates (to start-off).

For instance, your bounce rate may be high, but your scroll depth may tell you that users are at least scrolling up until 75% of the page. With that context in mind, you can say that you’re hitting the target, and all you need to do now is to optimize in a way to retain users, and not let them leave after they’re done digesting your content.

Believe it or not, Google Tag Manager even lets you track horizontal scroll behavior, FYI, for those who are interested. Having said that, this post will stick to explanations on tracking vertical scrolling behavior by percentage, as that seems to be the most common demand and most typical implementation in practice.

Step by Step Instructions on Setting Up Scroll Depth Tracking in Google Tag Manager

Step 1: Enable Three More Built-In GTM Variables

Before you start to do anything, (and if you haven’t enabled already), there are three GTM Built-in Variables you’d have to turn on, under the “scrolling” section. They are:

  1. Scroll Depth Threshold: Here, you can set the percentage threshold, on when you’d want to fire the trigger. And yes, you can set multiple thresholds, separated by a comma.
  2. Scroll Depth Units: Unit is the metric you want to use. Percentage or pixels.
  3. Scroll Direction: Lastly, this variable signifies the direction. That is, vertical or horizontal scrolling.
enabling scrolling built-in variables in google tag manager
Built-in variables in GTM are created by default, and cannot be customized any further. The only thing you can do is enable or disable them. If these are already turned on for you, you can skip to step two.

Step 2: Create a “Scroll Depth” Trigger

Next, head over to the Triggers in GTM > then hit the “New” Button > click the trigger configuration > and eventually, choose “Scroll Depth” as the trigger type, underneath the “user engagement” heading.

choosing scroll depth trigger type in gtm
As shown, select “Scroll Depth.”

Subsequently, you’d have to further configure the how, when, and where this trigger fires on. (Screenshot image to follow, for a visual point of reference).

  1. How: Vertical scrolling, horizontal, or both.
  2. When: You’d have to choose between 3 events. For the most accuracy, go with “Window Load (gtm.load).”
  3. Where: All pages, or some pages.
scroll depth trigger configuration in google tag manager
Scroll Depth Trigger Configuration: As you can see, I am choosing to track my vertical scroll depth by percentage, with the thresholds at 10, 25, 50, 75, 80, 90, and 100 percent (how). Then, I am enabling this trigger in Window Load (gtm.load) (when), followed by wanting to track this behavior on all pages of my site (where).

Step 3: Create a Scroll Depth Tag (Image Attached for Reference After the Configuration Details)

A lot of this process may be somewhat familiar, but as far as the details for this task goes, set up your new tag as follows:

  1. Tag Type: Google Analytics: Universal Analytics
  2. Track Type: Event
  3. Category: Here, you’d come up with a name you’d want. This same name will be parsed into Google Analytics under the “Event Category.”
  4. Action: Choose “Page URL” variable
  5. Label: Select the “Scroll Depth Threshold” Variable. The one you had initially enabled at the beginning of this post.
  6. Non-Interaction Hit: True. If you do not count your scroll depth tracking (or in other words when users scroll on your website) as a non-interaction, your bounce rates will go down. Meaning, if the value is set to false, Google Analytics will think that the user interacted with your page, even though they technically bounced. If all of that sounds confusing, think about it this way:
    • If you want to keep your bounce rate calculations the same way as regular Google Analytics tracking, go with true for the non-interaction value.
    • If you want to count a user scrolling your page as an “interaction,” go with false.
    • There is, however, a third option also, where you can set values to true up to a scroll depth threshold percentage, and false for the rest. This article, discusses a little on how you can do that.
  7. Google Analytics Setting: Choose your variable, or if you’re doing it via Tracking-ID, go with that.
  8. Triggering: Pick the Scroll Depth Trigger you created in step 2 (the main step 2, not from this list).
scroll depth tag configuration in google tag manager
Scroll Depth Tag Configuration in Google Tag Manager.

After creating your tag, you’re done with the GTM setup. Next, comes QA-ing your implementation.

How to QA Scroll Depth Tracking Implementation in Google Tag Manager (Video Added for Context)

As you would anything in GTM, in this situation also, you’d have to leverage the Google Tag Manager Preview Mode. Once enabled, you’d be looking at two places for the “Summary” section.

  1. The “Tags” tab: Here, you should expect to see your scroll depth tracking tag being fired. Note that it may not show up right away, as you may need to scroll on your page to at least hit the minimum scroll depth threshold. In my case, it’s at 10%. Don’t worry, I’ll have the video below this section, so you can see how my tag doesn’t show up under “Tags Fired” first, but when I scroll a little, it does.
  2. The “Data Layer” tab: Here, as and when you scroll and keep hitting your thresholds, a new “scroll depth” instance will pop-up. For reference, I will be displaying two instances (one at 10%, and the other at 25%).
A 28-second video demonstrating how to verify whether the scroll depth tracking in Google Tag Manager is firing correctly.

How to View the Scroll Depth Tracking Data in Google Analytics

When you’re done setting things up and publishing in Google Tag Manager, to view the scroll depth tracking in Google Analytics, head over to Behavior > Events > Overview.

where to view events in google analytics
To view your scroll depth tracking data in GA, you can head over to Behavior > Events > Overview.

How the Events Overview Looks Like

For reference, view the 13-second video below.

A 13-second clip that gives a quick run-down of the events overview section in Google Analytics.

You May Also Want to Check Out:


With constant improvements in Google’s proprietary marketing tools, tracking scroll depth behavior of your site users is now within your reach, and is free (which in fact, has been for a while now, since 2017).

Use it to better corroborate your bounce rates, understand the user journey, what content they like, inspire optimization ideas, A/B tests, and anything else you can think of, to serve your audience better.

Interesting, that you can do so much by merely getting insights into scroll tracking.