A scroll depth trigger is a Google Tag Manager trigger that fires a tag when a visitor scrolls past a point you choose on a page, measured as a percentage of the page height or a number of pixels. It is mostly used to send events to GA4 at several depths, such as 25%, 50%, 75% and 90%.
How a scroll depth trigger works
In Google Tag Manager you create a trigger of the type Scroll Depth and set:
- the direction, vertical or horizontal (almost always vertical);
- the thresholds, as percentages or pixel distances;
- when the trigger becomes active: Container Load, DOM Ready or Window Load;
- whether it applies to all pages or only some, such as service pages or the blog.
Each threshold fires once per page load. To record which depth was reached, switch on the built-in variables Scroll Depth Threshold, Scroll Depth Units and Scroll Direction, and pass the threshold into your GA4 event tag as a parameter. You then register that parameter as a custom dimension in GA4 so it appears in reports.
GA4 already records scrolling on its own. With enhanced measurement switched on, it sends an event called scroll when someone first reaches 90% of a page, and nothing at any other depth. If you build your own scroll tracking, either turn that option off or give your event a different name, such as scroll_depth, so the two are not mixed together.
A few page types behave oddly. On a short page that fits inside the screen, every threshold fires the moment the page loads. On pages that load more content as you scroll, the page keeps getting taller, so 50% moves. And on single-page sites where the address changes without a full reload, thresholds do not reset unless you add a history change trigger or similar handling.
Why it matters
Long service pages and ad landing pages often put the prices, reviews or enquiry form well below the first screen. Scroll depth tells you whether people reach them. If only a quarter of mobile visitors from a paid campaign get halfway down the page, the form at the bottom is barely seen, and you are paying for clicks that never meet your offer.
For a blog or guide, scroll depth separates articles that are read from articles that are opened and closed, which raw page views cannot do. In the UK these events, like all GA4 data, depend on analytics consent, so they describe the visitors who accepted cookies rather than everyone.
Common mistakes
- Leaving enhanced measurement scrolling on while also sending a GTM event named scroll, which double counts the 90% mark.
- Marking a scroll event as a key event, so a page view with some thumb movement counts as a conversion.
- Reading “reached 90%” as “read the page”. Fast scrolling to the footer to find a phone number fires every threshold.
- Firing on every page, including very short ones, where the data means nothing.
- Not breaking the results down by device, when mobile and desktop pages differ greatly in height.
How to act on it
Choose three or four thresholds and limit the trigger to pages long enough for scrolling to mean something. Test it in Tag Manager’s Preview mode and GA4’s DebugView before publishing the container.
When the real question is whether people see one particular section, an element visibility trigger aimed at that section is more precise than a percentage. Use scroll depth for the overall pattern, then move important content up or shorten the page where a sharp drop appears.
Measuring and reshaping pages like this is part of how I build landing pages for Google and Facebook ads.
