Scroll depth tracking is implemented
Why it matters
Scroll depth tells you whether visitors actually read the page or bounced after the hero. Without it, a visitor who scrolls past every pricing tier, reads every testimonial, and leaves looks identical to one who bounced after two seconds. You cannot distinguish content that holds attention from content that fails, cannot identify the fold where engagement drops, and cannot quantify the impact of page length experiments. Long-form marketing pages become uninstrumented.
Severity rationale
Medium because missing scroll data degrades content performance analysis but does not break core conversion tracking.
Remediation
If you use GA4, enable Enhanced Measurement in Admin > Data Streams > your stream > Enhanced Measurement > Scroll. For PostHog, Mixpanel, Plausible, or custom setups, add explicit tracking in lib/scroll-tracking.ts:
const milestones = [25, 50, 75, 90]
const fired = new Set<number>()
window.addEventListener('scroll', () => {
const pct = (window.scrollY / (document.body.scrollHeight - window.innerHeight)) * 100
milestones.forEach(m => { if (pct >= m && !fired.has(m)) { fired.add(m); analytics.track('scroll_depth', { percent: m }) } })
}, { passive: true })
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Analytics & Tracking Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
Taxons
History
- 2026-04-18·v1.0.0·Initial import from marketing-analytics·automated