« Juni 2011 | Start | September 2011 »

1 Beiträge im August 2011

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>


Ü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