Die Möglichkeit externe Links mit einem JS Event zu tracken ist recht mühsahm wenn jeder Link bearbeit werden muss. Eine überschaubare Auswahl an Google Analytics Scripts kann diese Arbeit erleichtern.

Google empfieht zum tracken von externen Links in Analytics eine spezielle Javascript Funktion einzubinden die einen ausgehenden Link für den „Bruchteil“ einer Sekunde verzögert. Prinzipiell ist es so, dass der Analytics Code geladen sein muss, dass richtige Aufzeichnungen erfolgen können.

Ich empfehle hier eine einfachere Möglichkeit externe Links zu tracken.

Google emfpieht die JavaScript-Methode in den Kopf Ihres Dokuments einzufügen. „Die Verzögerung ist für den Nutzer kaum merkbar“, so Google. Der Browser hat jedoch mehr Zeit, den Tracking-Code zu laden.

Möglichkeit 1

<script type="text/javascript">
function recordOutboundLink(link, category, action) {
  try {
    var pageTracker=_gat._getTracker("UA-XXXXX-X");
    pageTracker._trackEvent(category, action);
    setTimeout('document.location = "' + link.href + '"', 100)
  }catch(err){}
}
</script>

Danach muss allerdings jeder externe Link auf diese Weise angepasst werden, damit er in Google Analytics richtig getrackt wird:

<a href="http://www.apptalk.at" onClick="recordOutboundLink(this, 'Ausgehender Link', 'apptalk.com');return false;">www.apptalk.at</a>

Für mich als Entwickler und unsere Kunden unzumutbar, da jeder externe Link geändert werden müsste.

Möglichkeit 2 (empfohlen)

Ich habe dieses Script für unsere kommerziellen Zwecke ausgewählt und wir fahren bis jetzt ganz gut damit. Jedenfalls mussten keine externen Links angepasst werden, was für uns viel Arbeit währe.

Das Skript ist von Dan Rumney <dancrumb@danrumney.co.uk> und freigegeben unter MIT Lizenz und benötigt

  • Google Analytics und
  • jQuery

Das Script kann hier heruntergeladen werden.

Konfiguriert werden kann es über reguläre Ausdrücke, auf Englisch regular expressions. (RegExp) Und zwar wird ein Regex für eine bestimmte Domain angegeben und es werden alle externen Links die mit der Domain „apptalk“ anfangen auf die Gruppe apptalk gemappt.

mappings =  {
			 //  <strong>apptalk</strong>: new RegExp("apptalk.")
			 //  <strong>XYZ</strong>: new RegExp("xyz.co.")
	};

  // external Tacker
  var ega = new EnableGA(true, mappings, true);

Wird keine Konfiguration angegeben sondern nur das leere Objekt wie bei mir (ausskommentiert) dann wird die Methode mit default Parametern aufgerufen. Im Google Analytics steht dann Beispielsweise ein externer Link in diesem Format: „/external/apptalk.at“ oder „external/apptalk.at/hugo“.