« 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]);

Hallo Marco,

was gebe ich denn im Analytics-Konto bei den Zieldetails an?

Kategorie ist klar, aber soweit ich das gesehen habe muss bei Aktion ja auch etwas eingetragen werden, nur was?

Hi Christian,
Versteh ichs richtig, du meinst wenn du einen via Event-getrackten Download oder externen Link als Ziel in GA hinterlegen möchtetst? Dann in der Ziel-Maske von GA wie folgt eingeben:
Goal Type = Event, dann z.B.
Category: "that equals to" -> Externe Links
Weitere Felder sind optional, wenn du nur eine bestimmte externe URL als Ziel definieren möchtest, könntest du hier z.B. noch angeben:
Action: "that equals to" -> www.google.com

Dito für PDFs bzw. interne Links

Grüsse, Marco

Ich finde den Beitrag gut erklärt und sehr hilfreich. Ich wüsste allerdings nicht welche Anpassung ich vornehmen müsste um meinen Fall zu tracken. Ich bitte Sie daher um Hilfe in meinem Fall.

Ich habe ein Banner auf einer Partnerseite und möchte alle Verkäufe aufgezeichnet bekommen die über diese Seite kommen. Das Banner verlinkt auf meine Hauptdomain. Bei mir im Shop ist bereits Google Analytics und das dazugehörige E-Commerce-Tracking eingebunden. Da ich dem Betreiber der Partnerseite eine Provision auszahlen möchte, würde ich gerne wissen wie ich die Verkäufe tracken kann die über die Besucher des Banners gekommen sind. Meine Verkäufe tracke ich bereits mit dem E-Commerce-Tracking, allerdings wird keine Quelle angebenen die den Verkauf hervorgerufen hat. Ich bitte Sie um Hilfestellung. Vielen Dank

Hallo Miroslaw,
Ich denke für diesen Fall wär das Kampagnen-Tracking die geeignete Lösung, siehe http://support.google.com/analytics/bin/answer.py?hl=de&answer=1033863&ctx=cb&src=cb&cbid=-sw3k3pwbiycg&cbrank=1

Wie heißt die Erweiterung?

Hallo Leute, ich habe das Skript eingebaut. Leiter wird kein Download verzeichnet. Beim Einbau des mauellen Links mit den Erweiterungen funktioniert es. Woran kann das liegen?

Hallo,

funktioniert das Script aktuell noch oder muss mittlerweile etwas angepasst werden?

Danke !

Hallo Stefan,
Das Skript sollte funktionieren, falls du als Tracking-Code ga.js einbindest. Nicht mehr funtionieren wird es mit Universal Analytics (analytics.js). Mittlerweile gibt es jedoch ohnehin eine einfachere Methode mit dem Google Tag Manager, so dass Events und Clicks automatisch getrackt werden können: https://support.google.com/tagmanager/answer/3420054?hl=de

Viele Grüsse, Marco

Hallo Marco,

vielen Dank für diesen schönen Beitrag.

In Anknüpfung an Deinen letzten Kommentar: Ich habe für das Download-Tracking mit dem Google Tag Manager eine Lösung entwickelt.
Wie ich das Tracking mit dem GTM umgesetzt habe, beschreibe ich in meinem Blog: https://www.ebernickel.de/blog/download-tracking-google-analytics/

Schöne Grüße
Christian

Guter Input! Zeitgemäss würde man dies heute mit dem Tag Manager, wie von dir beschrieben lösen. Cool.

Vielen Dank und Grüsse
Marco

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