Piwik bietet, wie einige andere Webanalytics-Tools auch, die Möglichkeit für ein asynchrones Tracking. Da hierbei die Kommunikation zwischen dem Piwik-Code auf der Website und der eigentlichen Piwik-Anwendung (die u.U. sogar auf einem anderem Server betrieben wird) nicht auf die Antworten des Gegenüber warten muss, kann die Website “gefühlt” schneller beim Besucher ausgegeben werden, als das bei der klassischen Variante der Piwik-Einbindung der Fall ist.

Dass die Daten trotzdem von A nach B und zurück übertragen werden müssen steht außer Frage. Aber dieser Datenaustausch findet im Hintergrund statt und wirkt somit nicht störend auf den Besucher. Er nimmt das Tracking nicht aktiv in der Statusleiste des Browsers wahr und für ihn stehen die Webinhalte schneller zur Verfügung.

Was ist eine asynchrone Kommunikation?

Die Wikipedia schreibt zum Thema asynchrone Kommunikation: “Darunter versteht man in der Informatik und Netzwerktechnik einen Modus der Kommunikation, bei dem das Senden und Empfangen von Daten zeitlich versetzt und ohne Blockieren des Prozesses durch beispielsweise Warten auf die Antwort des Empfängers (wie bei synchroner Kommunikation der Fall) stattfindet.”.

Der Code für das asynchrone Tracking mit Piwik

Der Piwik-Code für das asynchrone Tracking wird im Header-Bereich einer Website, also zwischen <head> … </head> eingefügt. Ob es hierfür ein entsprechendes WordPress-Plugin oder eine Typo3-Extensionen usw. gibt, ist mir nicht bekannt. Ich baue den Tracking-Code üblicherweise direkt im Template, bei WordPress also in der header.php, ein.

<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
(function(){
    var u=(("https:" == document.location.protocol) ? "https://{url.zu.piwik}/" : "http://{url.zu.piwik}/");
    _paq.push(['setSiteId', {ID}]);
    _paq.push(['setTrackerUrl', u+'piwik.php']);
    _paq.push(['setVisitorCookieTimeout', '604800']);
    _paq.push(['setSessionCookieTimeout', '0']);
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    var d=document,
        g=d.createElement('script'),
        s=d.getElementsByTagName('script')[0];
        g.type='text/javascript';
        g.defer=true;
        g.async=true;
        g.src=u+'piwik.js';
        s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->

In den Zeilen 8 und 9 wird das im Artikel zum Cookie-Verhalten bei Piwik beschriebene Verfahren zur Reduzierung und somit datenschutzkonformen Umsetzung der Cookie-Lebensdauer eingesetzt. Diese Funktionen sind optional.

Nicht vergessen: Der (alte) synchrone Tracking-Code im Footer einer Webseite muss nun natürlich noch entfernt werden! Am besten die Änderung sofort im Quellcode überprüfen.

Unter der Überschrift Asynchronous tracking sind die hier auf redirect301.de veröffentlichten Infor­mationen und auch das Beispiel für den Piwik Tracking-Code in der JavaScript Dokumentation auf piwik.org nochmals auf englisch beschrieben.