Tracking von Links mit Google Analytics = nimm’ onmousedown statt onclick!

Im Rahmen unser Optimierungsbemühungen haben wir versucht zu messen über welche Links die Besucher von der Startseite auf Produktseiten gehen. Dazu haben wir per onclick in den links ein event ausgelöst. Konkret geht es dabei um ein Selektor-Element wo die Besucher ihre Kontaktlinse aussuchen müssen, oder um ein paar Top-Linsen, die direkt mit Bild unten drunter stehen. Alle Links im Selektor lösen ein Event “selector” aus und alle links lösen ein event “toplinsen” aus.

Nun haben wir parallel auch noch einen Funnel, der zeigt wieviele Besucher von der Startseite auf die Produktseite gehen. Das funktionierte soweit eigentlich ganz gut, allerdings gab es eine große Ungereimtheit: Die Summe der Events Toplinsen + Selektor war viel weniger als die Anzahl der Besucher im Funnel… und das kann doch eigentlich nicht sein. Nach viel suchen in Foren und ein paar Tests kamen wir zu folgenden Ergebnis:

Der Trackingcode von Google Analytics ist asynchron, d.h. er behindert die weitere Arbeit der Browsers nicht. Allerdings wird beim Laden einer neuen Seite auch der gerade laufende Code, asynchron oder nicht, beendet. Es handelt sich also um ein Timing-Problem: Wenn der Nutzer auf einen Link klickt, wird zuerst die onclick-Methode ausgeführt und hier wird asynchron das Google Analytics Tracking initiiert. Also quasi im Hintergrund gestartet. Die onclick-Methode ist dann für den Browser schon fertig, obwohl das Tracking noch gar nicht wirklich stattgefunden hat. Wenn die onclick-Methode fertig ist, wird bei einem Link im gleichen Fenster die entsprechende URL geladen und damit die aktuelle Seite mit all ihren Scripts – inkl. Google Analytics Tracking Code – beendet. Je nachdem wie schnell der Browser mit der neuen Seite anfängt und wie schnell der Trackingcode arbeitet, wird das Event noch abgesetzt – oder eben nicht.

Lösung des Problems? Gibt es leider nicht richtig. Aber man kann es etwas besser machen: Nimm’ einfach onmousedown statt onclick. onmousedown wird einen Tick früher als onclick ausgelöst. Um zu testen wie groß der Unterschied zwischen onclick und onmousedown ist, haben wir testweise pro Link zwei Events eingebaut, eines normal per onclick und eines per onmouse down. Die Ergebnisse siehst du in der Tabelle unten:

EventTracking-onclick-vs-onmousedown

 

Krass, wa? Das die Abweichungen so stark sind haben wir auch nicht erwartet. Ist aber so. Kannst ja selber mal testen und hier einen Kommentar schreiben.

Was lernen wir daraus:

  • Events auf Links über die onmousedown Methode aufrufen
  • Events und PageViews lassen sich nur bedingt vergleichen
Posted in Dies und Das Tagged with:

Leave a Reply

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

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>