Externe Links mit Google Analytics tracken

In einem Artikel (engl.) vom Dezember 2008 hat Ian Pitts beschrieben, wie man Klicks auf ausgehende Links mithilfe von Google Analytics und etwas jQuery aufzeichnen kann. Ich habe den Code aufgegriffen und an das aktuelle Google Analytics Script angepasst.

In seinem Code wird das alte synchrone Google Analytics Script verwendet. Nun gibt es allerdings seit einiger Zeit eine neue asynchrone Variante des Scripts, welche etwa so aussieht:

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-X']);
_gaq.push(['_trackPageview']);

(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

Da der Code von Ian Pitts mit diesem Script leider nicht mehr korrekt funktioniert, ist eine kleine Anpassung notwendig. Der vollständige aktualisierte Code um externe Links zu tracken sieht wie folgt aus:

$('#content a:not(.no-tracking)').each(function(){
    var link = this;
    if (link.hostname && link.hostname !== location.hostname){
        $(link).bind('click keypress', function(event){
            var code = event.charCode || event.keyCode;
            if (!code || (code && code == 13)){
                _gaq.push(['_trackEvent', 'Externe Links', this.href, this.title]);
            };
        });
    };
});

Erklärung:

  1. Innerhalb des Content-Blocks werden alle Links gesucht, welche nicht die Klasse no-tracking besitzen
  2. Es wird geprüft, ob der Hostname der Link-URL mit dem Hostname der aktuellen Seite übereinstimmt. Ist dies nicht der Fall, handelt es sich um einen externen Link und der nächste Schritt wird ausgeführt.
  3. Für alle Links werden die click und keypress Events registriert und mit der Funktion zum Ereignistracking belegt.

Grundlage des Ereignistrackings ist folgende Funktion, welche vom Google Analytics Script zur Verfügung gestellt wird:
_gaq.push(['_trackEvent', 'Kategorie', 'Aktion', 'Beschreibung']);
Die Kategorie wird in meinem Script mit “Externe Links” bezeichnet; unter dieser Überschrift tauchen die Daten später in der Auswertung auf. Die Aktion ist in diesem Fall die URL des Links und als Beschreibung verwende ich das title Attribut des Links.

Mit dieser Funktion lassen sich auch viele andere Aktionen aufzeichnen, zum Beispiel Downloads, Videoaufrufe, Abstimmungen, usw.

Kommentar schreiben


Name*

Email (wird nicht veröffentlicht)*

Website

Dein Kommentar*

Kommentar absenden

© Copyright by Jonas Döbertin | Designed by Pexeto | Powered by Wordpress

Impressum / Kontakt