Piwik Heartbeat-Timer (Besuchsdauer messen)

Published by Philipp Schuster on

Artikelvorschaubild: Piwik: Enable Heartbeat-Timer

Piwik bietet eine Funktion, durch die eure Piwik-Installation alle x Sekunden von einem Besucher angepingt wird. So kann ermittelt werden, wie lange Besucher tatsächlich auf der Seite aktiv sind. Das wurde bereits vor ein paar Monaten mit Version 2.14 eingeführt und erfordert nur eine kleine Anpassung des Javascript Tracking-Codes.

Artikelvorschaubild: Piwik: Enable Heartbeat-Timer

Piwik: Enable-Heart-Beat-Timer

Die Funktion heißt “enableHeartBeatTimer” und wird durch die Zeile _paq.push([‘enableHeartBeatTimer’, 5]); aktiviert. Der zweite Parameter gibt an, alle wieviel Sekunden die Piwik-Installation angepingt werden soll. Die Entwickler-Dokumentation sagt dazu folgendes:

enableHeartBeatTimer( delayInSeconds ) – “Install a Heart beat timer that will regularly send requests to Piwik in order to better measure the time spent on the page. These requests will be sent only when the user is actively viewing the page (when the tab is active and in focus). These requests will not track additional actions or pageviews.”

Anfragen werden also nur gesendet, wenn der Nutzer die Seite auch im aktiven Tab und nicht etwa im Hintergrund oder einem anderen Tab geöffnet hat. Es muss nur der Javascript Tracking-Code aktualisiert werden, in der Administrationsoberfläche müssen keine Vorstellungen vorgenommen werden.

Der große Vorteil ist, dass die Besucher-Metriken für die Absprungzeit und die Aufenthaltsdauer damit bedeutend akkurater und aussagekräftiger werden. Bisher wurde die Aufenthaltsdauer aus der Summe der Zeitdifferenzen gemessen, die zwischen verschiedenen Seitenaufrufen vergeht. Doch bei einer einzelnen Seitenansicht ergibt sich daraus logischerweise keine tatsächliche Aufenthaltsdauer. Mit dem Heart-Beat-Timer ändert sich das zum Glück.

Zeile im vollständigen Tracking-Code

<script>
var piwikCustomVars = [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking', true]);
_paq.push(['enableHeartBeatTimer', 5]);
(function() {
...
})();
</script>

Achtung, Anfragen-Schwemme

Setzt das Zeitlimit nicht zu kurz, denn der Server wird kann so leicht mit Anfragen überschwemmt werden. Wenn Dutzende oder gar Hunderte Browser gleichzeitig Anfragen senden, dann macht sich das sicherlich früher oder später bemerkbar. Ich habe mich für 5 Sekunden entschieden und werde die Server-Log-Dateien einfach mal im Auge behalten. Notfalls muss ich die Zeitdauer erhöhen.

Quellen/Weiterlesen

Auszug aus Chrome Entwickler-Konsole

Chrome Developer Console / Netzwerk: Pings an Piwik

Chrome Developer Console / Netzwerk: Pings an Piwik


Philipp Schuster

Hi, I'm Philipp and interested in Computer Science. I especially like low level development, making ugly things nice, and de-mystify "low level magic".

0 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *