Google-Analytics und die übersehenen Downloads in Typo3

22 September, 2009 (17:01) | Allgemein, TYPO3, Tipps | By: joerg

Bindet man Google-Analytics mit einer geeigneten Extension (bspw: m1_google_analytics) oder aber direkt über das Template ein, so werden zwar die aufgerufenen Webseiten wie erwartet erfasst, jedoch geht jeder Klick auf downloadbare Dateien an Google vorbei. Gerade das ist aber unter Umständen interessant zu wissen - welche Broschüre oder welches Dateipaket für den Nutzer nun von besonderem Interesse war.

Mit ein wenig Java-Script und Typoscript lässt sich dieser Mangel schnell beheben.

Dazu muss jeder Link, der von Google erfasst werden soll um etwas Javascript erweitert werden.

<a onclick="javascript: pageTracker._trackPageview('datei.typ');" href="http://www.domain.de/pfad/datei.typ">

Zu beachten ist dabei noch, dass der Tracking-Code vor dem entsprechenden Link in die Seite eingebaut werden muss. Normalerweise wird der komplette Javascript-Code von Google - der den Tracking-Code enthält ja direkt vor dem schließenden Body-Tag platziert. Folgende Zeile Code direkt nach dem öffnenden Body-Tag übernimmt das:

<script type="text/javascript"><!--_uacct = "UA-0000000-00";// --></script>

Im einfachsten Falle den Code dazu in der Template-Datei selbst einfügen.

Nun gibt es in der Hauptsache drei Varianten, wie mittels Typo3 auf Dateien verwiesen wird:

- Dateilisten als Inhaltselement
- Dateianhänge an Newsartikeln
- Verweise innerhalb von mit dem RTE-Editor angelegten Texten

zu 1.) Über die Gestaltung der Links innerhalb des TS-Setups lässt sich die notwendige Angabe einfach machen:

tt_content.uploads.20.layout.file = <div class="###CLASS###"><span class="filellist-description">###DESCRIPTION###</span><span class="filellist-file"><a onclick="javascript: pageTracker._trackPageview('###TITLE###'); " href="###URL###">###TITLE###</a> ###FILESIZE###</span></div>

zu 2.) Hier nimmt man Rückgriff auf eine kleine Javascript-Funktion, die den Dateinamen aus dem zu betrachtenden Link extrahiert. Folgenden Javascript-Code über eine externe JS-Datei in die Webseite einbinden:

function getFileName(url) {
var strFilename;
var strHref = url;
strHref = strHref.replace(/\//g,"\\");
var index = strHref.lastIndexOf("\\");
if (-1<index) {
strFilename = strHref.substring(index+1);
} else {
strFilename = strHref;
}
return strFilename;
}

Hierzu die notwendige Verknüpfung entweder durch direkte Notation im Template oder aber über eine entsprechende Anweisung im TS in die Seite einbinden.

Das Typoscript-Setup muss dann noch wie folgt erweitert werden, damit der zum Tracking notwendige Code allen Dateianhängen von Newsartikeln hinzugefügt wird:

plugin.tt_news {
newsFiles {
ATagParams = onClick="javascript:pageTracker._trackPageview(getFileName(this.href));"
}
}

zu 3.) Hier ist dieselbe JS-Funktion notwendig wie unter 2.). Diese sollte ja aber bereits eingebunden sein. Im TS-Setup wird nun noch folgende Angabe ergänzt, um allen Links den Trackeraufruf hinzuzufügen:

lib.parseFunc_RTE.tags.link.typolink.ATagParams {
cObject = TEXT
cObject {
value = getFileName(this.href)
wrap (
onclick="javascript:pageTracker._trackPageview(|);"
)
}
}

Hierbei werden allerdings alle im RTE definierten Links erfasst, auch diejenigen, die nur auf externe Seiten - und nicht auf eine Datei - verlinken. Für eine korrekte Behandlung lässt sich die Funktion
getFileName() noch entsprechend erweitern.

Write a comment