Piwik: richtige Aufenthaltsdauer und Absprungrate anzeigen

Piwik zeigt die Aufenthaltsdauer von Besuchern nicht richtig an. Die Aufenthaltsdauer in Piwik entspricht der Zeitdifferenz zwischen der ersten und letzten Aktionen auf einer Website, wobei unter einer Aktion ein Klick auf einen Link bzw. das Neuladen der Website gemeint ist.

Kommt ein Besucher auf die Website, liest 30 Minuten lang einen Artikel und schließt danach das Fenster, so erkennt Piwik nur eine Aktion und als Aufenthaltsdauer werden 0s und eine Absprungrate von 100% angezeigt.

Um diesen Designfehler zu beheben gibt es generell zwei Möglichkeiten:

  1. Trackingsystem von Piwik umschreiben
  2. Aktionen vortäuschen, wenn der Besucher noch auf der Website ist

Aufenthaltsdauer

Die Aufenthaltsdauer von einer auf neuen Minuten angestiegen.

Die erste Möglichkeit wäre die beste, aber auch die komplizierteste.
Dagegen ist die zweite Möglichkeit ziemlich schnell realisiert: Wird die Website neu geladen, so startet man einen Timer, der nach einer bestimmter Zeit Piwik neu aufruft und so eine Aktion vortäuscht. So lange der Besucher sich auf der Website befindet bekommt Piwik immer den (mehr oder weniger) letzten Aufenthaltszeitpunkt und kann daraus die Aufenthaltsdauer bestimmen.

Bevor man den Timer implementiert muss man sich überlegen wie oft der Timer aufgerufen werden soll. Jede Sekunde eine Serveranfrage zu senden ist nicht empfehlenswert.
Ich habe folgende Zeiten gewählt: 10s, 30s, 1min, 4min, 24min, 84min. Danach wird der Timer nicht weiter aufgerufen um die Statistik nicht unnötig zu verfälschen, wenn jemand vergessen hat das Browserfenster zu schließen.

Letztendlich muss folgenden Tracking-Code auf der Website:

<script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script>

durch diesen ersetzen:

<script type="text/javascript">
     var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);

    function prtc(i)
    {
        // Piwik aufrufen
        try {
            piwikTracker.trackPageView();
            piwikTracker.enableLinkTracking();
        } catch( err ) {}

        // Zeiten festlegen (in Millisekunden)
        // Unterteilung selbst wählen.
        if(i == 5)
            rt = 10000;
        else if(i==4)
            rt = 20000;
        else if(i==3)
            rt = 30000;
        else if(i==2)
            rt = 3*60000;
        else if(i==1)
            rt = 20*60000;
        else if(i==0)
            rt = 60*60000;

        if(i >= 0)
        {
            i--;
            // Funktion soll nach einer Recall-Time starten
            window.setTimeout("prtc("+i+")",rt);
        }
    }

// Piwik-Tracking-Funktion aufrufen
prtc(5);

</script>

Absprungrate

Die Absprungrate von 80% auf 20% gesunken.

Durch diese Änderung habe ich endlich realistische Werte für meinen Blog bekommen. Die durchschnittliche Besuchszeit ist von einer Minute auf neun angestiegen und die Absprungrate von ungefähr 80% auf 20% gesunken.

Der Nachteil dieser Methode ist, dass die Aktionenanzahl nicht mehr stimmt. Jeder muss für sich entscheiden an welcher Information er mehr interessiert ist. Für mich persönlich ist die Aufenthaltsdauer und die Absprungrate wichtiger als die Aktionenanzahl, da ich daran sehe, ob meine Arbeit sinnvoll ist oder nicht.

Besucher, die diesen Beitrag fanden, suchten nach:

  • welchen wert optimale absprungraten
  • piwik nicht genau
  • wie berechnet piwik durchschnittliche besuchsdauer
  • optimale besuchsdauer website
  • durchschnittliche absprungrate bei blogs
  • enablelinktracking()
  • absprungsrate piwik
  • tracken ob jemand seite verlässt
  • homepage absprungrate
  • piwik javascript 0s

15 Kommentare zu “Piwik: richtige Aufenthaltsdauer und Absprungrate anzeigen”

  1. Niklas Rotheram 14. December 2011 um 15:18 Uhr

    Danke für den Tipp! Aber würde es nicht reichen, bei Laden der Seite eine Aktion auszulösen, dann müsste ja die Zeit erste-letzte Aktion richtig berechnet werden.

    Im Grunde ist das doch ein Piwik Bug: Als erste Aktion müsste das initiale laden der Seite gerechnet werden, das Piwik ja mitbekommt…

  2. Maximam 14. December 2011 um 17:06 Uhr

    Das geschieht sowieso. Aber für den Die Aufenthaltsdauer brauchst du zwei Punkte. Beim Laden setzt Piwik sein t1. Aber wenn der Besucher diese Seite nach dem Durchlesen verlässt, so wird nie t2 gesetzt, damit man t = t2 – t1 berechnen kann. Durch den oberen Code setzt man also t2 manuell.

  3. Niklas Rotheram 14. December 2011 um 21:31 Uhr

    Ah ;) Das hier:

    Kommt ein Besucher auf die Website, liest 30 Minuten lang einen Artikel und schließt danach das Fenster, so erkennt Piwik nur eine Aktion und als Aufenthaltsdauer werden 0s und eine Absprungrate von 100% angezeigt.

    Klang für mich so, als wäre die eine erkannte Aktion das Verlassen… Müsste es nicht auch möglich sein, das zu erkennen? Dann müsste man nur noch ein Event “facken”.

  4. Maximam 14. December 2011 um 21:38 Uhr

    Nein, es war das Laden gemeint.
    Es gibt keinen Verlassen-Event bzw. ist mir zumindest nicht bekannt.
    Man kann das alles auch sauber implementieren, damit die richtige Anzahl von Aktionen herauskommt, aber dann müsste man an Piwik-Code herumschrauben.

  5. Niklas Rotheram 15. December 2011 um 14:46 Uhr

    Es gibt wohl ein passendes Event: http://bytes.com/topic/javascript/insights/825556-using-onbeforeunload-javascript-event

    Ich weiss aber nicht, wie das mit Browser-Support aussieht, und ob man da noch Sachen an Piwik schicken kann (oder ob der Browser schon zu “tot” ist).

    Wäre sicher interessant, damit würde dann ja ein falschen Event reichen.

  6. Maximam 15. December 2011 um 15:17 Uhr

    Hey danke, werde ich ausprobieren.

    EDIT: Habe ausprobiert. Irgendwie geht es nicht, so wie ich es mir vorgestellt habe oder ich verstehe die Funktion einfach nicht.

    function ptrack()
    {
    piwikTracker.trackPageView();
    piwikTracker.enableLinkTracking();
    }
    ptrack();

    window.onbeforeunload = ptrack();

  7. Niklas Rotheram 7. January 2012 um 15:59 Uhr

    Oh, ich hab deinen EDIT nicht gesen ;) (Der löst kein Mail-Benachrichtigung aus ;) )
    Ich würde sagen du hast am Ende eine Klammer zu viel… Du willst ja nicht das Ergebnis von ptrack speichern sondern die Funktion selber. So müsste es funktionieren:

    function ptrack()
    {
    piwikTracker.trackPageView();
    piwikTracker.enableLinkTracking();
    }
    ptrack();

    window.onbeforeunload = ptrack;

  8. Maximam 10. January 2012 um 14:36 Uhr

    Ich habe es noch mal ausprobiert. Es funktioniert teilweise. Bei manchen Besuchern sieht man, dass es genau zwei Aktionen auf einer Seite gibt, also gehe ich davon aus, dass die Tracking-Funktion beim Verlassen aufgerufen wurde.

    Es gibt aber auch viele 0s Einträge. Woran das liegt kann ich nicht sagen. Offensichtlich wird die Funktion nicht immer aufgerufen.

  9. Niklas Rotheram 10. January 2012 um 18:28 Uhr

    Das ist seltsam… Zumindest ein Event müsste ja zu finden sein, da du die Funktion einmal selber aufrufst.
    Ich werde mir das wohl mal selber ansehen ;)

  10. Maximam 10. January 2012 um 19:35 Uhr

    Naja, ein mal wird sie ja immer aufgerufen. Man braucht aber noch den zweiten Aufruf.
    Hier ist ein Beispiellog:
    http://www.virtual-maxim.de/wp-content/uploads/2012/01/piwiklog.png

  11. [...] ich ja nun Piwik, um die Besucherzahlen meiner Website zu messen. Vor ein paar Wochen hat dann ein Beitrag bei virtual-maxim meine Aufmerksamkeit erregt. Dabei ging es darum, das Piwik die Aufenthaltsdauer auf einer Website, [...]

  12. Niklas Rotheram 20. January 2012 um 18:29 Uhr

    Ich hab mir das ganze jetzt noch mal angesehen, meine Ergebnisse stehen hier: http://niklas-rother.de/artikel/richtige-aufentshaltdauer-mit-piwik-ermitteln/

  13. Patrickam 11. February 2012 um 11:51 Uhr

    Wie wäre es, wenn du dich einfach beim Verlassen der Seite nochmal einklinkst? :)


    window.onbeforeunload = leavingPage;
    function leavingPage(){
    alert("Leaving!");
    }

    Am Besten wäre es natürlich, wenn Piwik dafür noch eine Schnittstelle bereit stellt, um die Verweildauer zu aktualisieren, ohne den View-Counter zu erhöhen.

  14. Maximam 11. February 2012 um 11:54 Uhr

    Kommentare gelesen? :P

    Genau dies funktioniert nicht bei jedem Browser. Es ist eher Zufall, ob ein Request noch abgeschickt wird, bevor der Browser geschlossen wird.

  15. Patrickam 11. February 2012 um 12:02 Uhr

    Habe die entsprechenden Kommentare leider erst nach dem Kommentieren gelesen :D

Trackback URI | Kommentare als RSS

Einen Kommentar schreiben

XHTML: Du kannst folgende Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <sub> <sup>

Hinweis: Ich behalte mir das Recht vor solche Kommentare, die Beleidigungen oder rechtswidrige Inhalte beinhalten erst nach einer Editierung freizugeben oder kommentarlos zu löschen. Ähnliches gilt auch für Kommentare die offensichtlich nur der Suchmaschinenoptimierung dienen.