« Den "Website Performance Index" messen | Start | Google Analytics rechtskonform einsetzen »

19. August 11

Downloads und Links einfach mit Google Analytics tracken

Bei einer Standard-Implementierung von Google Analytics sieht man leider nicht, welche Downloads wie PDFs oder XLSs von der Website geladen wurden. Das ist schade, denn vielfach ist grad der Download von einer Produktbroschüre oder einem Whitepaper doch ein wichtiges Ziel und oft eine Micro-Conversion. Nun bietet Google Analytics hierfür schon eine Lösung, nämlich dass man jeden Link auf ein PDF (oder ein anderes Ziel) mit einem sogenannten virtuellen Seitenaufruf wie der folgende versehen kann.

<a href="/downloads/produktbroschuere.pdf" onclick="
   _gaq.push(['_trackPageview', '/downloads/produktbroschuere.pdf']);
   ">Produktbroschüre
</a>


Dies bedeutet aber, dass jeder Download bzw. jedes PDF manuell und mit einem technischen Eingriff im HTML-Code so getagged werden muss. Während das für einzelne Downloads noch akzeptabel ist, wirds für viele oder gar alle Downloads sehr mühsam.

Abhilfe schafft da folgende Erweiterung für Google Analytics, welche mittels eines generischen JavaScripts automatisch alle Klicks einer Website überwacht. Klickt ein Besucher auf einen Link zu einem spezifische Dokumentformat, wird dies automatisch in Google Analytics als Download getrackt. Als kleines Nebenprodukt lassen sich auch gleich noch Klicks auf externe Links - also Links die auf eine Drittwebsite führen - tracken. Das alles geschieht in dem man einmalig unten stehend aufgeführtes JavaScript im <head>-Bereich jeder Webseite unterbringt - ohne weitere Konfiguration. Im Ergebnis sind Auswertungen von Downloads dann zum Beispiel wie folgt ersichtlich:

GA_Downloads

Vor der Implementierung des Skripts sollte man gegebenenfalls noch ein paar Einstellungsmöglichkeiten wahrnehmen, welche das Skript bietet. Folgendes kann dabei angepasst werden:

  • downloadExtension: Zählt jene Formate auf, welche als Download gezählt werden
  • trackDownloadsAsEvent: Standardmässig werden die Downloads als Seitenaufrufe gezählt und sind in den Auswertungen unter "Seiten" ersichtlich. Falls man die Downloads lieber als Ereignisse sehen möchte, setzt man den Wert auf true
  • downloadCat: Der Name der Ereignis-Kategorie, falls Downloads als Ereignisse getrackt werden

Die beiden letzten Punkte gelten analog für das Tracking der externen Links (trackExtlinksAsEvent und extLinksCat), wobei hier das Ereignistracking zu empfehlen ist.

<script>
var downloadExtension = new Array(
   'doc','docx','pdf','xls','ppt','zip','gz','bz2','rar','txt','vsd','vxd',
   'js','css','exe','wma','mov','avi','wmv','mp3','mp4');
var trackDownloadsAsEvent = false;
var trackExtlinksAsEvent = true;
var downloadCat = 'Downloads';
var extLinksCat = 'Externe Links';
var intDomain = window.location.hostname;
if(window.addEventListener){document.addEventListener('click', clickHandler,
   false);}
else {document.attachEvent('onclick', clickHandler);}
function clickHandler(e){
   if (window.event) e = window.event;
   var srcEl = e.srcElement? e.srcElement : e.target;
   var targetUrl = srcEl.getAttribute('href');
   if (targetUrl && targetUrl.length > 0) {
      var re = new RegExp('^(?:f|ht)tp(?:s)?\://([^/]+)', 'im');
      var tarDomain = (targetUrl.match(re)? targetUrl.match(re)[1].toString() :
         (targetUrl.indexOf(':') < 0 ? intDomain : null));
      if (tarDomain != null) {
         var a = document.createElement('a');
         a.href = targetUrl;
         var filePath = a.pathname;
         var fileName = filePath.split('/').pop();
         var fileExt = fileName.substring(fileName.indexOf('.')+1);
         if (intDomain == tarDomain) {
            for (i=0; i<downloadExtension.length; i++) {
               if (fileExt == downloadExtension[i]) {
                  if (trackDownloadsAsEvent) _gaq.push(['_trackEvent',
                     downloadCat, filePath]);
                  else _gaq.push(['_trackPageview', filePath]);
               }
            }
         }       
         else {
            if (trackExtlinksAsEvent) _gaq.push(['_trackEvent', extLinksCat,
               tarDomain]);
            else _gaq.push(['_trackPageview', '/' + extLinksCat + '/' +
               tarDomain]);
         }
      }
   }
}
</script>

TrackBack

TrackBack-Adresse für diesen Eintrag:
http://www.typepad.com/services/trackback/6a00e5505822238833015434a4ca34970c

Listed below are links to weblogs that reference Downloads und Links einfach mit Google Analytics tracken:

Kommentare

Feed You can follow this conversation by subscribing to the comment feed for this post.

wo füge ich diese erweiterung am besten ein? benutze den den asynchronen code direkt vor dem schließenden head tag... dahinter?
sabine

Hallo Sabine,
Den Code am besten gleich vor dem schliessenden Head-Tag einfügen. Für ein Beispiel: Seitenquelltext dieser Seite anzeigen lassen (rechte Maustaste)
Grüsse, Marco

Hallo Marco,
ich habe den Code etwas getestet. Leider werden bei mir nur die TLD's der externen Links angezeigt. Gibt es eigentlich eine Möglichkeit den kompletten Link anzuzeigen?

Sabine

Hi Sabine,
Der obige Code trackt nur die externen Domains, nicht die ganzen URLs - richtig.

Ich habs nicht getestet, aber um das anzupassen müsstest du mal versuchen, in den letzten beiden gaq_push-Aufrufen tarDomain durch targetUrl zu ersetzen, also:

if (trackExtlinksAsEvent) _gaq.push(['_trackEvent', extLinksCat, targetUrl]);
else _gaq.push(['_trackPageview', '/' + extLinksCat + '/' + targetUrl]);

Post a comment.

If you have a TypeKey or TypePad account, please anmelden.


Über das Blog | Impressum | Nutzungsbedingungen | Ihren Besuch aufzeichnen [?]


Web Analyticson


Das Buch zum Blog:

  • Buch
    Details zum Buch Buch bei Amazon.de bestellen

Die App zum Blog:

  • iPhone App
    Download

Über den Autor

  • Marco Hassler ist Business Unit Manager und Partner beim IT- und Web-Dienstleister Namics.

    marco.hassler (at) gmail.com

Ethik Code

  • Web Analytics Association Code of Ethics

Twitter Updates

    Web Analytics Fotos

    Web Analytics Association

    • Web Analytics Association