In eigener Sache: Zu diesen oder ähnlichen Themen werden noch weitere Blog Einträge folgen. Aber ich nehme nicht für mich in Anspruch, Experte auf diesem Gebiet zu sein. Was ich hier schreibe hängt unmittelbar mit den Dingen zusammen, die für meine Diplomarbeit von Interesse sind. Ich werde versuchen, die Quellen entsprechend zu kennzeichnen, denn Ehre, wem Ehre gebührt.
Nicht registrierte User auf einer Webseite eindeutig zu identifizieren ist nur über gewisse Hilfskonstruktionen möglich. Etwa die Client ID, die jedem Client automatisch von Google Analytics zugewiesen wird. Google Analytics selbst verwendet diese Client ID im User Explorer zur Identifikation einzelner Nutzer.
In Custom Reports (zu finden unter dem Punkt „Customization“) kann die Client ID allerdings nicht als Dimension verwendet werden. Damit das funktioniert, muss die Client ID über eine benutzerdefinierte Variable in Google Analytics übernommen werden. Dem Internet sei Dank gibt es hier ziemlich gut dokumentierte Lösungen, die ich hier kurz zusammenfasse. Gleich vorweg: Auch der Google Tag Manager (GTM) kommt hier zum Einsatz. Es lohnt sich also, sich mit dem GTM auseinanderzusetzen.
1. Anlegen einer Variable in Google Analytics
Eine benutzerdefinierte Variable lässt sich im Admin-Bereich bei den Einstellungen für das jeweilige „Property“ definieren. Nach dem Klick auf „Custom Definitions“ kann man zwischen den Punkten „Custom Dimensions“ und „Custom Metrics“ wählen. In konkreten Fall geht es um eine benutzerdefinierte Dimension.
Der Name der Variable ist in diesem Fall „Client ID“. Der Scope der Variable ist Session-bezogen. Mehr zum Thema Scope gibt es bei Lunametrics nachzulesen. Nach dem Erstellen der Variable werden einige Code-Snippets eingeblendet. Diese Snippets können wir für unsere Anwendung ignorieren. Wichtig ist lediglich der Index der Variable. Dieser ist in unserem Fall die „1“.
Erstellen der Variable in Google Tagmanager
Um die Client ID abzufragen, muss eine entsprechende „Custom Javascript“ Variable in Google Tag Manager angelegt werden.
Das Javascript, das ich verwendet habe, stammt von optimizationup.com:
function() {
try {
var trackers = ga.getAll();
var i, len;
for (i = 0, len = trackers.length; i < len; i += 1) {
if (trackers[i].get('trackingId') === 'UA-xxxxxx-1') {
return trackers[i].get('clientId');
}
}
} catch(e) {}
return 'false';
}
Anstelle von „UA-xxxxxx-1“ muss die Tracking ID des entsprechenden Google Analytics Property eingesetzt werden.
Neuen Trigger erstellern
Damit ein Tag „feuern“ kann, braucht es in Google Tag Manager einen „Trigger“, der den Tag auslöst. In unserem Fall soll der Tag immer dann feuern, wenn der Inhalt der Seite geladen ist und die Client ID nicht leer ist.
Neuen Tag erstellen
Nun muss in Google Tag Manager ein neuer Tag erstellt werden, der ein Event erfasst. Die Einstellung „Non-interaction Hit“ wird auf „true“ gesetzt. Unter Punkt „Google Analytics Settings“ definieren wir eine neue Variable, in der die benutzerdefinierte Dimension definiert wird.
Die {{GA Tracking ID}} ist in diesem Fall als Konstante definiert, um mir das ständige Suchen und Kopieren zu ersparen. Man könnte hier auch einfach manuell die Tracking ID des Google Analytics Property einfügen.
Als Trigger wird der zuvor erstellte Trigger eingesetzt.
Nun müssen die Änderungen in Google Tag Manager nur noch veröffentlicht werden.
Ob das alles auch funktioniert, lässt sich über die Preview-Funktion in Google Tag Manager testen. Dazu einfach den Preview starten und die Seite, auf der die Client ID getrackt werden soll, aufrufen. In einem kleinen Fenster am unteren Rand der Seite zeigt der Tag Manager an, welche Tags beim Laden der Seite abgefeuert wurden.
Ebenfalls sehr hilfreich ist der Blog von Simo Ahava. Hier finden sich einige weitere Ideen, um die Datensammlung durch Google Analytics weiter zu verbessern.