Track User Reading Behavior with Google Tag Manager

Accurate measurement of user behavior on websites is essential for effectively optimizing content. In particular, reading behavior provides insight into whether content is actually being consumed. But how can one reliably capture “real reading” on the web? Google Tag Manager (GTM) offers powerful tools for this.

Problem

Classic methods like purely capturing scroll depth are widespread, but they come with several problems:

  • Users scroll at different speeds or pause for long periods in between.
  • Short pages skew the measurement as many contents are initially visible.
  • Scroll depth alone doesn’t indicate whether a user has actually read or just skimmed the content.

Current State Common Practice

The common practice often involves measuring simple scroll events at set percentages (25%, 50%, 75%, 100%) in Google Analytics 4 (GA4). This method is problematic, especially for short web pages, as events for 25% or 50% often fire immediately, even though the user barely scrolls or doesn’t scroll at all – the content simply fits entirely in the initially visible area. Alternatives like timer events or element visibility triggers do improve accuracy, but there’s usually a lack of a holistic solution that meaningfully represents real user interactions (“slow reading”).

Comprehensive Solution for Precise Capture of Reading Behavior

The approach presented here solves the typical problems of scroll measurement, particularly for short web pages, by intelligently combining multiple measurement methods. While in classic scroll depth measurement, events often fire meaninglessly as soon as a page appears fully in the viewport, this improved method explicitly considers whether content is initially visible or needs to be actively scrolled. It offers a realistic and comprehensive capture of user behavior through the following measures:

  • Capturing important scroll points, taking into account initially visible content.
  • Additional measurement of slow scrolling (“slow_scroll”).
  • Use of an Element Visibility Trigger to reliably capture the end of an article.
  • Flexible variables for customization to different page lengths and user behaviors.

Concrete Implementation of the Improved Tracking Method in Google Tag Manager

The improved tracking is done using a single, comprehensive script for GTM. This script considers different aspects of reading behavior and combines them into a holistic tracking solution:

  • Article Start: The “article_start” event captures the moment when users first scroll significantly, e.g., after 100 pixels. This distinguishes real readers from visitors who merely land on the page briefly and bounce immediately.
  • Scroll Depth: Events (“scroll_depth”) are triggered at defined milestones (25%, 50%, 75%, 100%), but only if these scroll positions were not already initially visible. This prevents unnecessary events on short web pages where the user doesn’t need to actively scroll.
  • Slow Scroll: The “slow_scroll” event is triggered when users stay within an individually definable pixel limit (e.g., less than 250 pixels of scroll movement) for at least 5 seconds. This measurement indicates intensive reading behavior and clearly differentiates between active reading and quick skimming.
  • Article End: Using an Element Visibility Trigger, the “article_end” event is reliably triggered when the actual end of the article is reached. This provides a precise statement about whether users have really consumed the entire content.

Additionally, the script allows for flexible adjustment via variables to tailor it individually to each website:

  • Threshold for the starting point of the article (articleStartThreshold)
  • Pixel boundary for slow scrolling (slowScrollDistanceThreshold)
  • Time limit for slow scrolling (slowScrollTimeThreshold)
  • CSS selector for the article end (articleEndSelector)
Copy to Clipboard

Guide to Script Installation in Google Tag Manager

  1. Create new tag: Create a new tag (“Custom HTML”) in GTM.
  2. Insert script: Insert the provided script into the HTML area of the tag.
  3. Assign trigger: Select “All Pages” as the trigger to activate tracking on all relevant pages.
  4. Publish container: Save changes and publish the container to make the tracking live.

This script automatically sends events to the Data Layer, allowing them to be easily and directly processed and analyzed in Google Analytics 4.

Conclusion

The presented tracking method offers a significant improvement over conventional capture of reading behavior through pure scroll depth measurements. It solves typical challenges, such as erroneous capture on short web pages, by intelligently combining various aspects. The inclusion of slow scrolling, initially visible content, and precise detection of the article end provides a comprehensive and realistic view of user behavior.

Through flexible customization options via configurable variables, the method is optimally tailored to individual website needs. This allows marketers and content managers not only more accurate insights into user behavior but also better data-driven decisions to optimize their content. Overall, it creates a clearer and more reliable picture of which content is truly consumed and how intensively it is used, forming the basis for targeted improvements and more effective online marketing.