This Google Tag Manager Recipe was originally posted by Lunametrics.

What does it do? Adds automatic scroll tracking to every page on your site and sends events to Google Analytics. By default, tracks user scroll depth at the 10%, 25%, 50%, 75%, 90%, and 100% marks, but can be customized.

All events (pushed to Google Analytics) are set as non-interaction hits, thus they will not affect your bounce rate or time on website/page metrics.



  1. Download Container File
    Download the container JSON file (right-click on the link and click “Save Link As” or “Save Target As” to save the JSON file to your computer).
  2. Import JSON File into GTM
    Log into your own Google Tag Manager container and head to the Admin section of the site. Under Container options, select Import Container. Read this blog post for more details about importing a container file.
  3. Update With Your Own Tracking ID
    Update or create a new Constant Variable named {{YOUR_GA_TRACKING_ID}} with your Google Analytics Tracking ID (a.k.a. UA Number). I’d recommend using Google Analytics Settings variable instead. Read this guide how to properly change Tracking ID in the imported container.
  4. Preview & Publish
    Use the Preview options to test this container on your own site. Try testing each of the events to make sure they’re working properly. If everything looks good, go ahead and publish!
  5. Optional – Update Scroll Breakpoints
    You can customize how often events fire by editing the configuration at the end of the tag “CU – LunaMetrics Scroll Tracking Plugin”. Read this blog post to learn more.

View all 30+ Google Tag Manager Recipes