Wer kennt es nicht? Da bastelt man monatelang an der Suchmaschinenoptimierung einer Webseite, bemüht sich um herausragende Inhalte, installiert das DSGVO-konforme Tracking-Tool Matomo und dann das: Bei der Analyse des Besucherverhaltens werden uns 0 Sekunden Seitenverweildauer für Seitenaufrufe mit nur einer Aktion bzw. Besucherinteraktion angezeigt. Woran liegt das? Und viel wichtiger: wir können wir hier die korrekte Seitenverweildauer anzeigen lassen?
Das Problem mit den 0 Sekunden Seitenverweildauer in Matomo/Piwik
Zunächst müssen wir die Frage beantworten, wie Matomo das Verhalten von Seitenbesuchern misst. Jede Session bei Tracking-Tools wie Matomo oder Google Analytics wird standardmäßig mit 0 Sekunden ausgewiesen. Das liegt jedoch nicht etwa an mangelhafter Implementation, sondern lediglich an der Art, wie diese Tools die Seitenverweildauer während einer einzelnen Session ohne nachverfolgbare Benutzerinteraktion (z.B. Aufruf weiterer Seiten) tracken.
So wird jeweils immer die vergangene Zeit vom ersten Seitenaufruf bis zum nächsten Seitenaufruf miteinander verglichen. Ruft der Benutzer keine weitere Seite auf, weil die aufgerufene Seite beispielsweise den Informationsbedarf ausreichend decken konnte, verlässt der Benutzer die Seite. Das Resultat: 0 Sekunden Seitenverweildauer. Keine Vergleichsmöglichkeit.
Seitenverweildauer mit HeartBeatTimer genau tracken
Um das Problem zu umgehen, können wir den sog. HeartBeatTimer in Matomo aktivieren. Damit sendet Matomo standardmäßig alle 15 Sekunden einen Request an den Client, womit eine Messung des aktiven Seitenbesuchs möglich wird. Dazu muss lediglich der im <head>-Bereich der Website integrierte Matomo-Tracking Code um folgende Zeile angepasst werden:
<script> _paq.push(['enableHeartBeatTimer']); </script>
Man sollte jedoch beachten, dass die Aktivierung der HeartBeatTimer einen nicht zu vernachlässigenden Anteil an der Serverperformance konsumieren kann, wenn es um eine besucherstarke Webseite geht. Daher kann es sinnvoll sein, die zusätzliche Request auf 30 Sekunden oder mehr zu erhöhen, um die Serverperformance zu schonen.
<script> _paq.push(['enableHeartBeatTimer'], 30); </script>
Wir ergänzen einen weiteren Parameter für die Zeit Sekunden, die zwischen zwei HeartBeat-Abfragen liegen soll.
Im Anschluss können wir in Piwik für einzelne Seitenaufrufe ebenfalls eine Seitenverweildauer feststellen. In einigen Fällen kann die Konfiguration von Triggern für die Messung der Verweildauer nötig sein, wie das verlinkte Beispiel von Matomo zeigt.