Analytics and Tracking

Scroll Depth Trigger

A Google Tag Manager trigger that fires a tag when a visitor scrolls past set depths on a page, usually to send events to GA4.

Quick facts: Scroll Depth Trigger

Category
Analytics and Tracking
Level
Intermediate
Affects
Content engagement reporting, landing page analysis, GA4 event volume
Where to see it
Google Tag Manager (Preview mode), GA4 DebugView, GA4 explorations
In this article4
  1. How a scroll depth trigger works
  2. Why it matters
  3. Common mistakes
  4. How to act on it

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.

Do and do not

Do

  • Rename your event or switch off GA4's own scroll event
  • Limit the trigger to long pages
  • Break results down by device

Do not

  • Mark scroll events as key events
  • Read 90% scrolled as fully read
  • Fire thresholds on pages that fit on one screen

Questions people ask about this

Does GA4 track scroll depth without Google Tag Manager?

Partly. With enhanced measurement switched on, GA4 sends a scroll event when a visitor first reaches 90% of a page. It does not record any other depth. For 25%, 50% or 75%, you need a scroll depth trigger in Google Tag Manager or custom code.

Why do all my scroll thresholds fire as soon as the page loads?

The page is probably short enough to fit on the screen, so the browser treats it as already scrolled to the bottom. Limit the trigger to longer pages, or use pixel thresholds instead of percentages. Pages that resize while loading can cause the same effect, which setting the trigger to Window Load can reduce.

Should scroll depth be a key event in GA4?

Usually not. Scrolling shows attention, not intent, and counting it as a key event inflates conversion figures and can mislead any ad platform you import key events into. Keep key events for actions that matter to the business, such as enquiries, calls and purchases.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.