Understanding the GA4 Scroll Event: Beyond the 90% Threshold
What it is
The scroll event is part of GA4’s enhanced measurement feature. It tracks how far down a page a user scrolls, providing a proxy for content engagement. By default, it fires when the user reaches 90% vertical depth.
When scroll fires
- Default behavior: once per page view, at 90% depth.
- SPAs: resets per virtual page view, if history changes are tracked.
- Custom thresholds: 25%, 50%, 75% require manual setup via Google Tag Manager or code.
The event cannot exist without a page_view and an active session.
Relationship to sessions and session_start
The scroll event occurs only after a session has begun. Typical order:
- session_start
- page_view
- scroll
Without session_start, no scroll events are linked to a user or session.
How it relates to Users and Active Users
- Users: a scroll indicates interaction, but does not create a new user classification.
- Active users: defined by first_visit/first_open or user_engagement. A scroll event alone does not make someone active, but it supports engagement analysis.
Parameters & identifiers recorded with scroll
Parameters
- percent_scrolled → value typically 90
- page_location → full URL
- page_referrer → referrer URL
- page_title → document title
Identifiers
- client_id (user_pseudo_id)
- ga_session_id
- ga_session_number
- user_id (optional, if configured)
Automatic vs. enhanced measurement
The scroll event is not an automatically collected event. It belongs to enhanced measurement, which can be toggled on or off for each data stream. If disabled, scrolls must be tracked manually.
Customization options
- Define extra thresholds (25%, 50%, 75%, 100%).
- Restrict tracking to specific content types (e.g., articles only).
- Add custom parameters such as content_category or author_name.
Common problems and pitfalls
1) Misinterpreting scroll as reading depth
A scroll event means the viewport reached 90%, not that content was read carefully.
2) Expecting multiple thresholds by default
GA4 provides only 90%. Additional checkpoints require manual setup.
3) SPA tracking issues
If virtual page views aren’t implemented, scrolls may fail to reset, causing missing or duplicate events.
4) Consent and blockers
With consent denied, events may lack identifiers, reducing accuracy in user/session stitching.
Practical takeaways
- Default scroll tracking is simple but limited.
- Customize thresholds and add context for richer engagement insights.
- Treat scroll depth as a proxy for attention, not proof of reading.
- Validate implementation in SPAs and cross-domain setups.