How to Track Scroll Depth

Using Google Tag Manager

How to track Scroll Depth using Google Tag Manager
April 25, 2019 MadMarTech

Before we get started on How to track Scroll depth, let us first start with a Why. You have put so much effort to create your content or design the fanciest landing page. How do you know if it works? Well, now that you have reached this page I assume that you know scroll depth is the answer!

Scroll depth is one of the most important metrics that marketers or content creators often forget to measure. A/B testing may tell you which is the best landing page, but it still does not give full information on how users interact with your page.

For the content creators, scroll depth helps you to discover the optimum length of the content to maximize your user engagement. It also lets you know where you need to place your CTAs or text hyperlinks to get maximum viewability and CTR.

Considering all the awesome benefits, let us now get started with how to track scroll depth via Google Tag Manager. I know you could use some plugins, but I would not recommend them due to its data limitations. You can set up the scroll depth tags in a matter of minutes.

Step 1: Configure Variables

Google has compiled a list of built-in variables that are deemed to be useful to marketers. However, you need to configure them before they can be used to track scroll depth. This is how you do it:

Navigate through the workspace and click on the “variables” icon. On the left-hand side, you can find a button called “Configure”. Once you click on configure, a window pops up on the right side and scroll down to look for the scroll data layer.

Choose all the 3 data layers available to track the scroll depth: Scroll depth Threshold, Scroll Depth Units, and Scroll Direction.

Step 2: Configure Google Analytics settings

If you have already been using tag manager for a while now and you have already configured the GA settings custom variable, please feel free to move on to Step 3.

Here we are going to configure a user-defined variable which will not only save time but can be used again and again across multiple tags and triggers. If you are not aware, a user-defined variable on GTM is a custom variable that you can configure to suit your specific needs, if the needs are not met by built-in variables.

The configuration as such is an easy 2 step process. In the workspace, go to variables, and scroll down and you will find user-defined variable row below the built-in variables. Click on the “New” button and you will find a window sliding from the right to set up variable configuration. After you click on that, you will find multiple variable types, scroll down and choose “Google Analytics Settings”. In the tracking ID tab, enter your Google Analytics ID: This usually starts with UA- xxxx. And you are done! You can now use this variable across all Google Analytics tag.

Step3: Tag Configuration

Now that we have activated all the required data layers to track the scroll depth, we need to set up the tag. In the workspace, click on “Tag” icon and a window slides from the right requesting for tag configuration. Choose the first tag type in the featured section: “Google Analytics-Universal Analytics”. This is a really powerful tracking template built in by Google to track myriad marketing efforts.

Once you have chosen the type of the tag, we now need to choose the track type. As tracking scroll is a custom event, choose “Event” from the drop-down available. 4 different event tracking expands after you choose an event track type. Here is the configuration for event track type:

  1. Category: Scroll
  2. Action: {{Scroll Depth Threshold}}%
  3. Label and Value: Empty for now.
  4. Noninteraction hit: True
  5. Google Analytics Settings: Google Analytics Settings-General

Step 4: Trigger Configuration

This is the last configuration in the workspace and is really quick too! In the workspace, navigate to create a new trigger using the “Triggers” icon present on the left side. Before setting up the trigger, the objective of this tracking project must be clear. Start with a couple of questions like these:

  1. How many data points do I want to track? Deciles or Quartiles? I would recommend Quartiles unless you only write long-form content.
  2. Do I want to track on all pages? Or only Specific Pages. The goals vary based on the project objective.

I assume you have answers to the above and let us get started with the configuration. Create a new trigger using the “New” button. On the right-hand side window, under user engagement, choose “Scroll Depth” as a trigger type. The objective is to measure how deep the user has scrolled, hence click on Vertical Scroll Depths option and Enable the triggering on “Window Load”. If you want to measure deciles, then input 0,10,20,30…100, if not you can input 0,25,50,75,100.

You can track scroll depth on all pages, by choosing a pretty obvious option “All Pages”. However, if it is a campaign-specific landing page and you would like to measure the user engagement only across this page then click on “Some pages” option. Once the firing options slide down choose Page URL variable from the drop-down with contains condition and copy paste the URL of the page you would like to track.

Once the trigger is set up, now assign the trigger to the relevant tag. Choose the tag that you recently created and scroll down. At the bottom, you will find add a trigger, click on it to find the trigger that you just created and add that trigger to the tag.

Tracking Scroll Depth Final Step 5: Publishing the Tag

Now that you have made all the relevant changes, it is now time to test and publish the tag. First, make sure the adblocker is disabled while you test the tag.

Click on the preview tab on the right side of the workspace. Even though it reloads the tag manager, a debugger will open up on the landing page. Make sure you have the test page open on the other tab as you can see live which tags are being fired.

Once you are on the navigation page, scroll down to see if the tags are being fired at all the different anchor points that you set up in the trigger configuration. If everything is firing as it should publish the tag. Make sure you name the version before you publish the scroll depth tag so that you can keep track of all the changes you have made. It is always a good idea to be organized with tags as it can get really messy as the number of tags grows. You can find all the recent version on the workspace dashboard with all the little description you wrote before publishing the tag.

How to Double check if your Tag is Working

Even though you have previewed the tag before publishing it, it is always a good idea to double check if your tags are working. You can do this using multiple ways, but my favorite way is using Google Tag Assistant add on. If you are a prolific GTM user, you might have already installed this, else if you want to become one install a Google Tag assistant add on. Here is the link for Chrome and Mozilla.  Once it is installed, click on the tag assistant extension and press “Enable” button and reload the page to see all the tags that are live on that landing page. As you scroll down, you will receive a tag request and you can see all the fired tags in the Data Layer tab.

Scroll depth report: How to find the Scroll depth data on Google Analytics

I have been asked this exact question, multiple times rather in a weird way like Hey, How to track scroll depth in Google Analytics? Well, my friend, you don’t track on Google Analytics, you simply find the results in there. This is how it actually works: Google Tag Manager monitors all the user interactions and passes on the data to Google Analytics.

Now coming to the reporting part, if you remember well you have chosen the tag firing type as “Event”. If you want to see scroll depth data in real time, then you can find them in the “Realtime” tab on the left-hand side of Google Analytics.

However, if you would like to extract a report to analyze and report this to your manager then you may want to use a different approach.

Navigate to the following: Behaviour > Event > Top Events>


Press the Scroll button to see different anchor points. I have used Quartile anchor points and hence you will see it as below.




Add secondary dimensions like page URL, city, etc to do get a holistic view on the landing page performance. Make use of the automatic charts that are generated by GA automatically to add to your dashboard like below:




You could also export all the reports on csv to perform a deeper analysis of the data you have.


Scroll depth is a must-have metric for content marketers and campaign reporting/analysis of landing pages. It not only tells how deep the user has scrolled but also gives a holistic view of the quality of the dwell time(average time spent). Scroll depth can be tracked using multiple tag management systems and plugins, but Google Tag Manager is recommended as it is free and it is good to have all data in one place especially if you are using Google Analytics as your web tracking and analysis software. Tracking scroll depth is really easy and is a simple 5 step process which can be set up in a matter of minutes. Being a content website, I track scroll depth on all pages to make a decision on the ideal content length, and CTA/text hyperlinks placement.

How often do you track Scroll depth?