Erweiterte Tracking-Ansätze

Wir haben bisher nur Web-Daten gesammelt, aber wie in der Einleitung betont, kann heute weit mehr in Google Analytics & Co getrackt werden. Darüber hinaus kann Google Analytics mit einem CRM (Customer Relationship Management-Tool) verbunden werden, so dass die Webdaten nicht für sich allein stehen, sondern mit bestehenden Kunden in Verbindung gebracht werden können.

Das Measurement-Protokoll

Zwischendurch taucht in der Google Analytics-Hilfe ab und zu der Produktname Universal Analytics auf, auch im Tag Manager ist es noch zu sehen (Stand Oktober 2018). Universal Analytics ist eine Weiterentwicklung von Google Analytics und hat die alte Google Analytics-Version (Classic) abgesetzt. Die neue Version hatte viele neue Features, aus denen zwei heraus stachen, das Measurement Protokoll sowie die User ID, die im nächsten Abschnitt behandelt wird.

Das Measurement Protokoll ermöglicht das Senden von Nutzer-Interaktionen über eine API als Rohdaten an Google Analytics, so dass jedes Gerät, das irgendwie ins Internet kann und das HTTP-Protokoll beherrscht, Daten an Google Analytics senden kann. Somit könnte ein mit dem WLAN verbundener Toaster ebenso Tracking-Informationen senden wie eine WLAN-fähige Waage. Die Offline-Welt wird hierdurch mit der Online-Welt verbunden!

Die User ID

Das zweite besondere Feature von Universal Analytics war die Einführung der User ID. Jeder Nutzer erhält von Google Analytics eine Client ID, die aber nur für den jeweiligen Browser auf dem jeweiligen Gerät gilt. Wechselt der Nutzer Browser oder Gerät, so ist er für Google Analytics ein anderer Nutzer.

Mit der User ID kann ein Nutzer über verschiedene Geräte und Browser eindeutig identifiziert werden. Allerdings muss diese User ID von der Webseite generiert und an Google Analytics geschickt werden. Dies ist also nur möglich, wenn sich die Nutzer bei einer Webseite oder App anmelden und somit eine einheitliche ID über verschiedene Geräte und Browser überhaupt möglich ist.

Ein Beispiel, wie diese Techniken miteinander verbunden werden können

Ein Kunde kommt in einen Laden, sucht die Produkte zusammen, die er haben will und geht an die Kasse. Dort zeigt er seine Kundenkarte vor. An Google Analytics wird nun die Nummer der Kundenkarte geschickt (die im CRM mit einer User ID verbunden ist). Gleichzeitig schickt die Kasse noch mit, was der Kunde gekauft hat, in welchem Shop, wie das Wetter draußen ist oder wie lange die Schlange an der Kasse war (was mit Sensoren heutzutage ohne Probleme möglich ist). Am nächsten Tag loggt sich der Nutzer auf der Webseite des Unternehmens ein und prüft, ob seine Loyalty-Punkte gutgeschrieben wurden. Auch hier verwendet er seine Kundenkartennummer, um sich zu identifizieren. Somit können die Besuche on- und offline zusammengeführt werden.

Benutzerdefinierte Dimensionen / Custom Dimensions

Wenn wie im vorherigen Abschnitt erwähnt, zusätzliche Informationen wie Wetter etc gesammelt werden, wo können diese gespeichert werden? Natürlich könnten diese Daten zu einem späteren Zeitpunkt zusammengeführt werden, aber auch Google Analytics bietet in den Bordmitteln bereits die Möglichkeit, weitere Dimensionen zu nutzen, die vom Benutzer selbst definiert werden. In der kostenlosen Variante stehen 20 dieser Dimensionen zur Verfügung.

Für jede Custom Dimension wird ein Scope festgelegt (siehe dazu vor allem die Google Analytics-Hilfe). Dieser Scope kann momentan entweder Hit, Session, User oder Product sein. Beispiel: Für jede Interaktion des Nutzers soll ein Zeitstempel mitgeschickt werden, dies wäre eine Hit-scoped Dimension, da sie sich bei jedem Hit ändert (bei jedem Hit ist die Zeit vorgerückt). Möchte ich aber zum Beispiel einem Benutzer eine eindeutige ID innerhalb einer Session geben, so wäre das eine Custom Dimension mit dem Scope Session. Wichtig: Auch wenn ich bei jedem Hit einen anderen Wert in eine solche Benutzerdefinierte Dimension mitschickte, so würde nachher nur der letzte innerhalb der Session mitgeschickte Wert später in jedem Hit stehen, da dieser dann für die ganze Session gilt.

In diesem Beispiel vergeben wir eine Client ID (das ist die ID aus dem GA-Cookie), die für den User gilt und daher auch diesen Scope hat. Bei jedem Hit schicken wir in der Custom Dimension 2 mit, welcher Art von Hit wir hier haben (pageview, event), in der Benutzerdefinierten Dimension 3 schicken wir für jeden Hit einen UNIX Timestamp mit (das ist die Anzahl der (Mili-)Sekunden seit dem 1.1.1970, so dass es einfacher ist, Differenzen zwischen verschiedenen Zeiten zu berechnen). Die Session ID ist wie oben beschrieben mit dem Scope Session versehen. Und schließlich wird noch die Anzahl der Wörter der gerade besuchten Seite mitgeschickt, hier auch Hit-basiert, denn die Anzahl der Wörter auf einer Seite kann sich von Seite zu Seite ändern.

Die Einführung von Benutzerdefinierten Dimensionen auf Hit-Ebene kann dazu führen, dass die Google Analytics-Daten den ansonsten in der freien Version verwehrten Rohdaten sehr ähnlich werden. Hier ein Beispiel, wie die Daten aussehen, wenn wir sie aus der API holen:

Google Analytics Rohdaten

In diesem Beispiel sieht man 4 der in dem zuvor abgebildeten Screenshot 5 Custom Dimensions, nämlich die Client ID, den Hit Type, den UNIX Timestamp und eine Session ID. Der Nutzer hatte zunächst einen Page View und danach Events ausgelöst, nämlich Scrollen, Starten eines Videos (er schaut es nicht bis zum Schluß an) und dann Scrollen bis zu 75% der Seite. Er löst kein Visibility Event aus, das implizieren würde, dass der Nutzer den Text bis zum Schluss gelesen hat. Diese Sicht auf einzelne Hits der Nutzer ist dann interessant, wenn daraus weitergehende Analysen entstehen sollen wie in dem Abschnitt über die Datenanalyse mit R beschrieben.

Custom Dimensions mit GTM befüllen

Es reicht nicht, die Benutzerdefinierten Dimensionen in Google Analytics zu definieren, irgendwie müssen sie auch befüllt werden. In dem folgenden Beispiel soll das illustriert werden:

Die Custom Dimensions 3 und 4 werden durch Variablen gefüllt, die widerum Custom JavaScript-Variablen sind. D.h., diese kleinen JavaScripte werden zur Laufzeit ausgeführt und ihr Ergebnis in die Variable geschrieben. Das Custom JavaScript für die Variable UNIXTimestamp wird zum Beispiel so erzeugt:

function() {
return new Date().getTime();
}

Da diese Custom Dimension in der Variable für die Google Analytics-Einstellungen definiert ist, wird sie automatiscj bei jedem Hit gefüllt, der diese Variable nutzt. Die Custom Dimensions 1 und 2 werden in diesem Fall in einem customTask erzeugt.