Scrolltiefe
Zenovay erfasst bei jedem Seitenaufruf, wie weit jede Besucherin oder jeder Besucher scrollt. Drei Bereiche im Dashboard machen dieses Signal handlungsleitend:
- Tab „Seiten" — Scrolltiefen-Funnel: pro Seite ein kleines 5-Balken-„Falltreppen"-Diagramm, dessen Balkenhöhen den Anteil der Besucherinnen und Besucher zeigen, die 25 / 50 / 75 / 90 / 100% der Seite erreicht haben.
- Heatmap-Ansicht — Scroll-Modus mit einem Farbverlauf-Overlay auf dem Screenshot.
- Sitzungsdetails — Maximale Scrolltiefe direkt neben Sitzungsdauer und Seitenaufrufen.
Was erfasst wird
Bei jedem Seitenaufruf misst der Tracker laufend (scrollTop + viewportHeight) / documentHeight × 100. Der höchste erreichte Wert pro Sitzung wird auf der Besucher-Zeile gespeichert (visitors.scroll_depth_percentage, Ganzzahl 0-100). Die Gesamthöhe der Seite wird bei jedem Scroll-Event neu berechnet, sodass dynamische Inhalte (Infinite Scroll, Akkordeons, lazy-geladene Bilder) korrekt behandelt werden.
Zusätzlich sendet der Tracker einmalige Meilenstein-Ereignisse an den fünf vorgegebenen Schwellen:
| Meilenstein | Auslöser | Speicherung |
|---|---|---|
| 25% | Erstmals scroll_percent >= 25 | event_type='scroll_milestone', event_data.depth=25 |
| 50% | Erstmals scroll_percent >= 50 | … depth=50 |
| 75% | Erstmals scroll_percent >= 75 | … depth=75 |
| 90% | Erstmals scroll_percent >= 90 | … depth=90 |
| 100% | Erstmals scroll_percent >= 100 | … depth=100 |
Sobald ein Meilenstein für eine Sitzung gefeuert hat, wird er nicht erneut ausgelöst — Zurück- und Wieder-vorscrollen ist ein No-op. Bei SPA-Routenwechseln (pushState / replaceState / popstate) wird der Meilenstein-Status zurückgesetzt, damit die neue Route von vorne beginnt.
Scrolltiefen-Tracking gehört zum Heatmap-Feature und ist ab dem Pro-Plan verfügbar. Free-Tier-Websites erfassen keine Scroll-Ereignisse.
Funnel-Diagramm im Tab „Seiten"
Öffne ein Domain-Dashboard → Tab „Seiten". Unter den Karten „Seiten / Standort / System" zeigt das volle-Breite-Widget „Scrolltiefen-Funnel" deine Top-10-Seiten. Jede Zeile ist eine Seite mit einem kleinen 5-Balken-Mini-Diagramm in der Mitte. Die Balken stehen auf einer gemeinsamen Grundlinie und nutzen eine einzige Akzentfarbe — die Höhen codieren die Reichweite je Meilenstein:
- 25% — Höhe ∝ Anteil der Aufrufe, die mindestens ein Viertel der Seite erreicht haben
- 50% — die Hälfte
- 75% — drei Viertel
- 90% — fast das Ende
- 100% — das absolute Seitenende (siehe Praktische 100%-Toleranz unten)
Da die Scrolltiefe monoton ist (der Anteil, der 50% erreicht hat, ist stets ≤ dem Anteil bei 25%), sinken die Balken von links nach rechts. Die Form selbst — eine fallende Treppe — ist das visuelle Signal: lange Treppen bedeuten tiefes Lesen, kurze einen Abbruch nahe der Spitze.
Die Prozentzahlen werden aus visitors.scroll_depth_percentage für die jeweilige Seite im gewählten Zeitraum berechnet. Die exakten %-Werte je Meilenstein sind immer sichtbar unter den Balken — kein Hover nötig. Seiten mit weniger als 10 Aufrufen (oder ohne nennenswertes Scroll-Engagement) sind als low signal markiert und abgedimmt, damit sie die Ansicht nicht dominieren.
Subdomain-Unterscheidung
Wird derselbe Tracking-Code auf mehreren Subdomains verwendet (z. B. zenovay.com und docs.zenovay.com), erhält jede Subdomain × Pfad-Kombination eine eigene Zeile. Die Hostname-Anzeige erscheint als gedämpftes Präfix vor dem fett gesetzten Pfad — so lässt sich zenovay.com/en/ auf einen Blick von docs.zenovay.com/en/ unterscheiden.
Standardmäßig werden die Top 5 Seiten angezeigt; ein „Show all"-Button blendet den Rest innerhalb eines fixhöhigen Scroll-Bereichs ein, sodass die Karte dieselbe Höhe wie ihre Nachbarn behält.
Praktische 100%-Toleranz
Der Tracker berechnet die Scrollhöhe als (scrollTop + viewportHeight) / documentHeight × 100. Am sichtbaren Seitenende kommen Subpixel-Rendering und das Mobile-Adressleisten-Resizing zusammen — die Mathematik kommt oft auf 99,7-99,9% statt exakt 100. Der Tracker rastet daher auf 100 ein, wenn der Viewport-Boden innerhalb von 2 px vom Dokumentende liegt, und die Zenovay-Dashboards zählen scroll_depth_percentage ≥ 95 als „100% erreicht". Daten, die vor dem Snap-to-100-Fix erfasst wurden, profitieren rückwirkend von derselben Toleranz — die Spalte „100% erreicht" zeigt echtes Engagement statt struktureller Nullen.
Lesehilfe
| Muster | Wahrscheinliche Ursache | Maßnahme |
|---|---|---|
| 80% / 45% / 18% / 6% / 0% | Gesunder Verlauf; Langform-Inhalt teilweise gelesen | Inhalt zwischen 25-50% optimieren — diesen sehen die meisten |
| 95% / 90% / 80% / 70% / 50% | Sehr kurze Seite oder hohe Lesetiefe | Prüfen, ob der CTA am Ende wirklich im Viewport landet |
| 30% / 5% / 1% / 0% / 0% | Bounces oberhalb der Falz | Above-the-fold-Text, Ladezeit oder Layout-Shift untersuchen |
Ein Abfall von 19% (75%) auf 6% (90%) auf einer Vertriebsseite ist das häufigste Diagnosesignal — irgendetwas am unteren Seitenende verliert Leserinnen und Leser vor dem CTA.
Scroll-Heatmap-Overlay
In der Heatmap-Ansicht schaltet das segmentierte Steuerelement im Header zwischen Klick und Scroll um. Der Scroll-Modus legt einen Farbverlauf über den Seiten-Screenshot. Die Farbe an jeder Höhe codiert den Anteil der Besucherinnen und Besucher, die diesen Punkt erreicht haben.
Da der Seitenanfang von allen erreicht wird, ist die Spitze des Screenshots immer am heißesten. Der Verlauf wird schwächer, je weniger Besucher den jeweiligen Bereich sehen. Eine scharfe Kante ist ein „Abbruchpunkt" und entspricht meist einem konkreten Designelement (Hero-Ende, Layout-Shift, schwerer Werbeblock).
Die Scroll-Heatmap benötigt den Seiten-Screenshot. Screenshots werden beim ersten Heatmap-aktivierten Aufruf je Seite automatisch erfasst; nach Aktivierung der Heatmaps ein paar Minuten warten.
Maximale Scrolltiefe in den Sitzungsdetails
Wenn du eine Sitzung aus dem Live-Globus oder der Besucherliste öffnest, zeigt das Seitenpanel Max. Scrolltiefe: X% neben Seitenaufrufen und Sitzungsdauer. Das ist die tiefste Stelle, die diese Sitzung über alle Seiten hinweg erreicht hat.
12% Max-Scrolltiefe auf einer langen Seite zeigt einen wahrscheinlichen Bounce. 100% auf einer langen Seite zeigt hohes Engagement unabhängig von der Sitzungsdauer — alles wurde gelesen.
Datenschutz und Einwilligung
Scrolltiefen-Tracking lebt vollständig im In-Memory-Status des Trackers pro Seitenaufruf. Es werden weder Cookies noch localStorage geschrieben, sodass das Feature von Cookie-Bannern unberührt bleibt. Auf Websites, die Sec-GPC (Global Privacy Control) senden, wird der Meilenstein-Pfad serverseitig übersprungen — es bleibt nur die besucherbezogene Max-Scrolltiefe, exakt dieselben Daten, die Zenovay auch bei Nicht-GPC-Traffic speichert.