Piwik: Aufenthaltsdauer und Absprungrate korrigieren



Bereits vor drei Jahren habe ich einen Artikel ├╝ber die Aufenthaltsdauer und Absprungrate in Piwik geschrieben. Durch ein Kommentar wurde ich darauf aufmerksam gemacht, dass sich beim Piwik-Tracking-Code etwas getan hat, also habe ich es mir genauer angeschaut.

Der aktuelle Piwik-Tracking-Code sieht, je nach dem welche Optionen man ausgew├Ąhlt hat, so oder so ├Ąhnlich aus:

<script type="text/javascript">
    var _paq = _paq || [];
    _paq.push(['trackPageView']);
    _paq.push(['enableLinkTracking']);
    (function() {
        var u = (("https:" == document.location.protocol) ? "https" : "http") + "://www.virtual-maxim.de/piwik/";
        _paq.push(['setTrackerUrl', u + 'piwik.php']);
        _paq.push(['setSiteId', 1]);
        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>
<noscript><p><img src="https://www.virtual-maxim.de/piwik/piwik.php?idsite=1" style="border:0;" alt="" /></p></noscript>

Der neue Tracking-Code sieht komplizierter aus, tut aber genau das gleiche, nur mit dem kleinen Unterschied, dass das Piwik-Skript asynchron ausgef├╝hrt wird. Das bedeutet, dass der Browser nicht wartet bis Piwik geladen ist, sondern sofort andere Elemente l├Ądt. Das Piwik-Skript wird parallel dazu im Hintergrund geladen. Durch diese Vorgehensweise wird der Websiteaufruf beschleunigt.

An der Methode zur Korrektur der Aufenthaltsdauer, die ich im ersten Artikel beschrieben habe, hat sich nichts ge├Ąndert.
Ich habe den Code trotzdem etwas angepasst und verbessert.
Man kann jetzt die Zeitintervalle f├╝r den erneuten Piwik-Aufruf einfacher erweitern. Zudem l├Ąuft die Stoppuhr nur falls das Fenster oder der Tab aktiv sind. Daf├╝r wird in Abst├Ąnden von 0,5 Sekunden ├╝berpr├╝ft ob, das Fenster aktiv ist und nur wenn es der Fall ist, die Uhrzeit der Stoppuhr runtergez├Ąhlt.

Um den Code zu benutzen, muss man ihn einfach hinter den Piwik-Tracking-Code einf├╝gen.
Nat├╝rlich muss man dabei auch den Piwik-Pfad anpassen (einfach aus dem Piwik-Tracking-Code kopieren).

<script type="text/javascript" async>

    // Piwik-Pfad angeben
    var u = (("https:" == document.location.protocol) ? "https" : "http") 
    + "://www.virtual-maxim.de/piwik/";

    // Zeitabst├Ąnde (in Sekunden) zwischen den einzelnen Aufrufen
    // Falls gew├╝nscht, anpassen
    var recall_times = [10, 10, 10, 30, 60, 120, 120, 120, 300, 300];


    function ptrack()
    {
        var piwikTracker = Piwik.getTracker(u + "piwik.php", 1);
        piwikTracker.trackPageView();
    }

    // beim Schlie├čen des Fensers noch mal aufrufen
    window.onunload = window.onbeforeunload = ptrack;

    var tid;
    function piwik_recall() {

        // Piwik aufrufen
        try {
            ptrack();
        } catch (err) {
        }

        if (recall_times.length == 0)
        {
            return;
        }

        var delta = 500;
        var time = recall_times.shift() * 1000;

        tid = setInterval(function() {
            if (window.blurred) {
                return;
            }
            time -= delta;
            if (time <= 0) {
                clearInterval(tid);
                piwik_recall();
            }
        }, delta);
    }
    ;

    piwik_recall();

    window.onblur = function() {
        window.blurred = true;
    };
    window.onfocus = function() {
        window.blurred = false;
    };
    
</script>
<!-- End Piwik Code -->

Wie auch bei dem letzten Skript, hat man bei dieser Methode den Nachteil, dass die Anzahl an Aktionen nicht mehr stimmt.

Viel Spa├č beim Ausprobieren! Bitte um eine R├╝ckmeldung, ob das Skript tut was es soll.




11 Kommentare zu “Piwik: Aufenthaltsdauer und Absprungrate korrigieren”

  1. Henryam 30. Juli 2014 um 19:20 Uhr

    Moin Maxim!

    Danke f├╝r den neuen Code! Habe ihn gerade hinter meinem Piwik-Code angef├╝gt und schaue was sich tut. Ich gebe dann nochmal Feedback!

    Gru├č
    Henry

  2. Henryam 31. Juli 2014 um 07:42 Uhr

    Kurzes Feedback:

    Scheint sehr gut zu funktionieren, ich habe das Script ja erst seit gestern 19:00 Uhr drin und dementsprechend sind es nicht mal 24/h, aber Ergebnisse zeigen sich jetzt schon:

    VORHER
    Absprungrate: 87%
    Aufenthaltsdauer: 46s

    NACHHER
    Absprungrate:2m1s
    Aufenthaltsdauer:62%

    Denke mal heute Abend sieht es noch klarer aus – danke Maxim! :)

  3. Maximam 31. Juli 2014 um 12:13 Uhr

    Dann hat sich die Arbeit ja gelohnt ;) Bitte.

  4. Henryam 31. Juli 2014 um 17:41 Uhr

    Heute bin ich sogar bei 10% Absprungrate.. <3 Das Script tut also was es soll :)

  5. Maxam 26. September 2014 um 11:21 Uhr

    Hallo,
    also das mit der Verweildauer versteh ich und ergibt auch Sinn.

    Wieso sollte sich jedoch die Absprungrate verringern? Das macht f├╝r mich keinen Sinn.

    Wenn ein Benutzer auf die Webseite (Einstiegsseite) kommt (ohne dein JS Code) und das Browser Fenster schlie├čt, wird die Absprungrate hochgez├Ąhlt.
    Wenn ein Benutzer auf die Webseite (Einstiegesseite) kommt (mit deinem JS Code) und das Browser Fenster schlie├čt, wird die Absprungrate doch logischerweise auch hochgez├Ąhlt?

    Oder habe ich da einen Denkfehler?

    Def. Absprungrate:
    Als Absprungrate wird der Prozentsatz der Besucher bezeichnet, die w├Ąhrend eines Besuchs auf Ihrer Website nur eine Seite anzeigen. (Quelle Google Support)

  6. Maximam 26. September 2014 um 20:18 Uhr

    @Max:
    Ich wei├č ehrlich gesagt nicht mehr, wie Piwik die Absprungrate berechnet (hat). Ich glaube, dass ein Besuch als Absprung gewertet wurde, wenn der Benutzer nur eine Seite besucht hat und dort keine Aktionen (Klicks) get├Ątigt wurden (+ Verweildauer 0 s ?). Das hei├čt den Benutzer hat die Website nicht interessiert.
    Wenn aber auf der ersten Seite eine Aktion ausgef├╝hrt wurde, so wird es als Hinweis daf├╝r benutzt, dass der Benutzer l├Ąnger auf der Website unterwegs ist, z.B. Text liest und nicht nur die Website im Tab offen hat. Das w├Ąre dann kein Absprung.

    Das unterscheidet sich von der Googles Definition, ist f├╝r mich aber logischer. Schlie├člich m├Âchte ich ja nur wissen, ob die Besucher auf der Website das finden, was sie suchen.

  7. Janam 26. Januar 2015 um 23:55 Uhr

    Hi,

    ich hatte ebenfalls das selbe Problem und habe das ein bisschen anders gel├Âst: Ich habe die Methode trackEvent(category, action, [name], [value]) benutzt anstatt einen neuen PageView zu erzeugen.

    Au├čerdem habe ich den Tracker anders geholt:

    function ptrack() {
    if(typeof Piwik !== 'undefined') {
    var tracker = Piwik.getAsyncTracker();
    tracker.trackEvent('Reading Page', 'Ping');
    }
    }

    Das hat den Vorteil, dass man den Piwik-Code ganz normal einf├╝gen kann und diese Funktion einfach zus├Ątzlich definiert. D.h. keine zus├Ątzlichen anpassungen! ptrack() kann man dann wie gehabt mit Deiner piwik_recall() Funktion o.├Ą. aufrufen.

    Viele Gr├╝├če
    Jan

  8. g├╝ntheram 20. August 2015 um 16:46 Uhr

    hallo maxim,
    vielen dank f├╝r den code!
    sehr gute beschreibung. konnte ich sogar nachvollziehen und das soll schon was hei├čen :-)
    gru├č g├╝nther

  9. Chrisam 3. Dezember 2015 um 23:58 Uhr

    Hallo,

    ist der o.g. Code eigentlich noch aktuell, was das neueste Piwik angeht?

    Danke.

  10. Henryam 5. September 2016 um 16:57 Uhr

    Hm, scheint leider nicht mehr mit dem aktuell ausgegebenen Code zu funktionieren :(

  11. Henryam 5. September 2016 um 17:03 Uhr

    Nachtrag: Hier ein Snippet das perfekt funktioniert und scheinbar die Anzahl an Aktionen unangetastet l├Ąsst: http://computer-service-remscheid.de/piwik-und-die-absprungrate-mit-einer-zeile-code-bessere-daten-erhalten/

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.