Zum Inhalt springen
DSGVO-konform. Gehostet in DE.
14 Tage kostenlos testen →

Session-Recording

Sehen Sie Ihre Site mit den Augen Ihrer Besucher. Mausbewegungen, Klicks, Scrolls und DOM-Änderungen werden als platzsparende rrweb-Events aufgezeichnet und in einem Player wieder abgespielt — vollständig ohne Cookies, mit automatischer Privacy-Maskierung sensibler Felder. Ab Business-Plan (29 EUR/Monat, monatlich kündbar).

# So aktivieren Sie Recording

Primärer Weg: Analytics → Einstellungen-Tab
Im Dashboard unter Analytics → Einstellungen schalten Sie Session-Recording per Toggle ein. Die Änderung wird in der Tracker-Server-Konfiguration gespeichert und wirkt innerhalb von 5 Minuten (HTTP-Cache) für alle Besucher — ohne neuen Snippet-Einbau, ohne Deploy. Hier konfigurieren Sie auch Sample-Rate, Masken-Selektoren und URL-Ausschlüsse zentral. Siehe Tracker-Einstellungen.

Override per HTML-Attribut (Fallback)

Wenn Sie die Tracker-Konfiguration lieber im HTML pinnen wollen (z. B. weil mehrere Sub-Domains dieselbe Site-ID nutzen, aber nur eine recorden soll), übersteuert das Attribut data-record="1" am script-Tag die Server-Config:

<script defer src="https://api.xictraq.com/t.js"
        data-site="YOUR_SITE_ID"
        data-record="1"></script>
<noscript><img src="https://api.xictraq.com/api/px?s=YOUR_SITE_ID" alt="" width="1" height="1" style="position:absolute;left:-9999px" referrerpolicy="no-referrer-when-downgrade"></noscript>

Wir empfehlen die Server-Konfiguration als Standard — sie ist live anpassbar und greift sofort. Es gibt keine JavaScript-Variable wie cfg.rec — die Konfiguration läuft ausschließlich über das Settings-Tab oder data-* Attribute.

# Recording-Player

Recordings → Session abspielen
Im Demo-Account ansehen →
Session #r_8f2a91d4
Köln, DE · Chrome 121 · macOS · 4 Pageviews · 3:42 Dauer
Frust-Klick Dead-Click
Wählt die Stelle der Aufzeichnung, ab der abgespielt wird. Die Pfeiltasten verschieben sie in kleinen Schritten.
00:001:0203:42
Spielt die Aufzeichnung in einfacher, doppelter oder vierfacher Geschwindigkeit ab.
Pageview
Click
Frust-Klick
Error

# Funktionen

rrweb-basiert (Open Source)

Statt einzelne Bilder pro Sekunde zu speichern (groß, datenschutz-fragwürdig), zeichnet rrweb DOM-Mutationen + Maus-Events auf — typischer Recording-Speicherbedarf: 2–8 KB pro Sekunde. Das gesamte Recording wird im Browser nachgespielt, der echte HTML/CSS-Stack der Site ist sichtbar.

Privacy by Default

Die Maskierung greift in drei Stufen, alle am Tracker — sensible Daten verlassen den Browser des Besuchers gar nicht erst im Klartext:

  • maskAllInputs — alle Eingabefelder werden standardmäßig maskiert; getippte Werte landen nie in der Aufzeichnung.
  • Auto-Redaction in Textknoten: Kreditkartennummern (13–19 Ziffern, Luhn-geprüft) und IBANs werden automatisch durch • ersetzt — auch wenn sie als reiner Text auf Bestätigungs- oder Kontoseiten stehen. Bewusst konservativ, damit normale Zahlen/IDs erhalten bleiben.
  • Opt-in-Maskierung: Bereiche mit dem Attribut data-xictraq-mask oder eigenen CSS-Selektoren (Tracker-Einstellungen) werden voll maskiert. Mit data-xictraq-block wird ein Element komplett von der Aufzeichnung ausgenommen (blockSelector).

Auto-Tagging: Frust-Klicks, Dead-Clicks, Errors

Ein Cron-Job (/cron/tag-recordings) analysiert jede abgeschlossene Aufzeichnung per Heuristik und hängt Tags an (Spalte session_recordings.tags, JSON-Array):

  • rage_click — 3+ Klicks innerhalb 2 s im Umkreis von 30 px zum ersten Klick
  • dead_click — Klick ohne DOM-Mutation und ohne Seitenwechsel innerhalb 1,5 s (kaputte Buttons / kaputtes onclick)
  • error — window.onerror oder unhandledrejection während der Session — Tracker schreibt das als rrweb-Custom-Event in den Recording-Stream, sodass der Cron es findet

Tags erscheinen als Badges in der Recordings-Liste unter Analytics → Aufnahmen & Tests.

Verknüpfung mit Form-Events

Formular-Ereignisse und Aufzeichnungen tragen dieselbe Tageskennung des Besuchs (session_hash); darüber lassen sie sich einander zuordnen. Eine gemeinsame Recording-ID gibt es nicht: Die Kennung der Aufzeichnung geht nur mit den Aufzeichnungspaketen an /api/p/r. In der Recordings-Liste sehen Sie über die erkannten Tags direkt problematische Sessions. Frei konfigurierbare SQL-ähnliche Filter („Sessions mit Form-View ohne Submit“ etc.) sind noch nicht Self-Service — auf Anfrage richten wir Custom-Queries gerne ein.

First-Party-Hosting (kein Drittanbieter-CDN)

rrweb-Engine und Player-CSS werden NICHT vom rrweb-CDN nachgeladen, sondern vom API-Origin (api.xictraq.com bzw. Ihrem First-Party-Proxy) mit obfuskierten Dateinamen (rx.js, rxp.js, rxp.css). Standard-EasyPrivacy-Filterlisten würden „rrweb.min.js“ am Dateinamen blocken — unsere Variante wird nicht erkannt.

Consent-gesteuerter Start (kein Auto-Recording)

Selbst wenn Recording in den Einstellungen aktiv ist, startet die Aufzeichnung NICHT automatisch beim Laden. Sie wartet auf das Einwilligungs-Signal Ihrer Seite oder Ihres Consent-Tools:

xictraq.consent('granted');   // startet Recording (wenn aktiviert)
xictraq.consent('denied');    // stoppt Recording
xictraq.record('start');      // Recording gezielt ein-/ausschalten
xictraq.record('stop');

Erst wenn Aktivierung UND Einwilligung vorliegen, wird die rrweb-Engine (rx.js) nachgeladen und die Aufzeichnung beginnt. Die Recording-ID liegt im sessionStorage des Tabs und gilt je Aufzeichnung: Nach 30 Minuten ohne aufgezeichnetes Ereignis (auch Änderungen der Seite zählen) und mit dem ersten Laden einer Seite nach Mitternacht (UTC) beginnt eine neue Aufzeichnung mit neuer Recording-ID (ab Tracker-Fassung 61). Kein Cookie; der sessionStorage ist an Tab und Website gebunden.

Chunk-Transport & abbruchsicheres Flushen

rrweb-Events werden gepuffert und in Chunks an /api/p/r gesendet — gedrosselt, damit auch lange Sessions schlank bleiben:

  • Flush, sobald 60 Events im Puffer liegen, zusätzlich alle 10 Sekunden, sowie bei pagehide (finaler Chunk; nach mehr als 30 Minuten ohne aufgezeichnetes Ereignis entfällt er) und beim Wechsel in einen Hintergrund-Tab.
  • Sampling: Mausbewegung alle 100 ms, Scroll alle 150 ms, Eingaben nur als Endwert — reduziert Volumen ohne den Wiedergabe-Eindruck zu verlieren.
  • Server-seitige Obergrenze: eine einzelne Aufzeichnungs-Datei wird bei 10 MB gekappt, damit Ausreißer keine Platte fluten. Ist die Grenze erreicht, beginnt in diesem Tab keine weitere Aufzeichnung, auch nicht nach einer Pause oder einem Tageswechsel.
  • Externe Stylesheets werden beim Ingest in den rrweb-Snapshot inline kopiert (nur same-host, SSRF-sicher) — so bleibt die Wiedergabe optisch korrekt, auch nachdem die Seite mit neu gehashten Asset-URLs deployt wurde.

Storage & Retention

Sessions ohne neuen Chunk seit 30 Minuten markiert /cron/compress-recordings als abgeschlossen (fängt Browser-Crashes, abrupte Tab-Schließungen und Aufzeichnungen nach dem Leerlauf ab, für die kein pagehide-Flush ankommt). Abgeschlossene Sessions, die älter als eine Stunde sind, werden vom selben Cron zu .ndjson.gz komprimiert (~70 % Platz-Ersparnis, max. 200 pro Lauf). Sample-Rate konfigurieren Sie selbst im Tab Analytics → Einstellungen (1–100 %, betrifft alle Tracker-Features). Recordings haben aus Datenschutzgründen (Art. 5 Abs. 1 lit. e DSGVO, Speicherbegrenzung) eine feste Obergrenze von 90 Tagen — unabhängig vom Plan und entkoppelt von der sonst unbegrenzten Aggregat-Analytics-Aufbewahrung. Greift Ihre Tarif-Analytics-Retention früher als 90 Tage, gilt diese kürzere Frist. Das Add-On „Erweiterte Datenaufbewahrung“ verlängert die Aggregat-Analytics-Retention, hebt aber die 90-Tage-Grenze für Recordings nicht auf.

Recording ist Opt-in
Im Gegensatz zu Pageviews und Formular-Analyse ist Session-Recording standardmäßig deaktiviert. Aktivieren Sie es bewusst über Analytics → Einstellungen, rufen Sie xictraq.consent("granted") aus Ihrer CMP auf und erwähnen Sie die Aufzeichnung in der Datenschutzerklärung — auch wenn rein technisch keine Cookies gesetzt werden, ist Recording datenschutz-rechtlich sensibler als reine Aggregat-Statistik.

Häufige Fragen

Session-Recording gibt es ab dem Business-Plan (Business und Agency). Recordings haben aus Datenschutzgründen eine feste Obergrenze von 90 Tagen — unabhängig vom Plan und entkoppelt von der Aggregat-Analytics-Aufbewahrung. Abgeschlossene Sessions werden stündlich zu .ndjson.gz komprimiert. Das Add-On „Erweiterte Datenaufbewahrung“ (9 EUR/Monat, monatlich kündbar) verlängert die Aggregat-Analytics-Retention, hebt die 90-Tage-Grenze für Recordings aber nicht auf.
Verfügbarkeit
Session-Recording ist ab dem Business-Plan (29 EUR/Monat, monatlich kündbar) verfügbar und auch im Agency-Plan enthalten. Das serverseitige Plan-Gating prüft jeden Recording-Endpunkt — die Aufzeichnung und die Wiedergabe sind ohne passenden Tarif nicht zugänglich.
In 60 Sekunden starten

Lassen Sie XICTRAQ Ihre Website bewachen.

Dauerhaft kostenloser Plan verfügbar. Keine Kreditkarte, keine Installation, keine versteckten Kosten.