Guide 112 · Container · GA4 + Tag Manager
Build a scroll depth trigger: fire a tag when a reader reaches a depth
A page view says someone arrived; a scroll depth says how far they read. A scroll depth trigger fires when the visible part of the page passes a percentage you set, and it can fire at several percentages from one trigger. Google's trigger page lists the Scroll Depth trigger, and the built-in variables page lists the two values it sets: Scroll Depth Threshold, the percentage that fired, and Scroll Depth Units, whether the threshold is a percentage or pixels. The worked example uses a page 4,800 pixels tall and the four standard thresholds.
After step 4, Preview mode shows the tag under Tags Fired once for each threshold passed — scrolling to the bottom of the worked page fires it 4 times, once per threshold, with Scroll Depth Threshold reading 25, then 50, then 75, then 90.
Download the container fragment: the scroll depth trigger fragment (JSON) (export format version 2, 1602 bytes, MD5 af5b9bc234139f50da494b338e55635c). It holds the scroll depth trigger with vertical thresholds 25, 50, 75 and 90 percent, and a GA4 event tag that fires on it. The file is a hand-built import template, validated structurally — it was not exported from a live container.
What you need
- The page height in pixels. The worked example uses a page 4,800 pixels tall. The thresholds are percentages, so the pixel depths depend on the page.
- The thresholds to measure. The worked example uses the standard four: 25, 50, 75 and 90 percent. A fifth threshold at 100 percent adds nothing — a reader at 100 percent has already passed 90.
- Edit access to the container. Creating a trigger is a container edit.
The trace
- Go to Triggers and click New. Triggers live in their own list in the left navigation. Click New and name the trigger
Scroll Depth - 25 50 75 90— the name lists the thresholds, so nobody has to open it to know them. - Click Trigger Configuration and choose Scroll Depth. The configuration offers Vertical Scroll Depths and Horizontal Scroll Depths, each as percentages or pixels. Vertical is the one that measures reading down a page.
- Set the vertical thresholds to 25, 50, 75 and 90 percent. Tag Manager fires the trigger once per threshold passed. On the worked page of 4,800 pixels, the depths are 4,800 × 25 ÷ 100 = 1,200 pixels, 4,800 × 50 ÷ 100 = 2,400 pixels, 4,800 × 75 ÷ 100 = 3,600 pixels, and 4,800 × 90 ÷ 100 = 4,320 pixels. A reader who reaches the bottom fires the trigger 4 times — 1 per threshold, 4 in all.
- Attach the trigger to the tag and save both. Open the GA4 event tag, click Triggering, pick the new trigger, and save. The tag sends the Scroll Depth Threshold with each firing, so the event says which depth was reached — 25, 50, 75 or 90 — without a separate tag per depth.
Dead ends
DEAD END — THRESHOLDS ON A SHORT PAGE. On a page shorter than the viewport, the reader is already past every threshold on load and all four fire at once. A scroll depth trigger measures reading on long pages; on a short page the numbers say nothing about engagement.
DEAD END — HORIZONTAL SCROLL LEFT ON. The configuration has a horizontal section as well. Leaving horizontal thresholds in place fires the trigger on sideways scrolling — which on a normal page means almost never, and the extra firings confuse the count when they do happen.
DEAD END — ONE TAG PER THRESHOLD. Four thresholds do not need four triggers and four tags. One trigger with four thresholds fires four times, and the Scroll Depth Threshold variable tells the tag which depth each firing was. Four tags is four times the maintenance for the same data.
End state
One scroll depth trigger with four thresholds, firing once per threshold on a long page, attached to one GA4 event tag that reports the depth reached. The same trigger works on every long page in the site.
Sources
- Tag Manager Help — Trigger types — Scroll Depth trigger type
- Tag Manager Help — Built-in variables for web containers — Scroll Depth Threshold and Scroll Depth Units built-in variables, set by Scroll Depth triggers
Checked 11 November 2026. The click paths above are the ones in Google's help pages, opened 11 November 2026. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. The container file was validated structurally instead: export format version 2, every tag's firing trigger resolves, every variable the tags reference exists in the file, and the tag types are the documented ones. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map. The container fragment for this guide is 1602 bytes (1.56 KB, 0.78% of the reported 200 KB container size limit), MD5 af5b9bc234139f50da494b338e55635c, and passed 13 structural checks.