customTask – Der Google Universal Analytics Alleskönner

Google Universal Analytics

Die Einführung von Google Universal Analytics ermöglicht im Vergleich zu seinem Vorgänger, Nutzerbewegungen online und offline zu messen. Mit dem Fortschreiten der Tracking Technologie wird es immer wichtiger, erweiterte Daten zu messen. Mit Google Universal Analytics wurden sogenannte “Tasks” eingeführt, welche dem Website-Entwickler erlauben, den kompletten Tracking Mechanismus von Universal Analytics zu steuern. Diese Tasks vereinfachen den Einbau vieler Anforderungen. Hier kommt “customTask” ins Spiel.

Ruft ein Nutzer eine Webseite mit Universal Analytics auf und bewirkt, dass ein Seitenaufruf an Analytics gesendet werden soll, so werden 11 solcher Tasks ausgeführt. Der customTask wird als Erster aufgerufen und kann somit alle Daten manipulieren, bevor sie von Google Analytics weiter verarbeitet werden.

Die übrigen Tasks, die nach customTask von Analytics aufgerufen werden, dienen zum Validieren der Eingangsdaten, zum Generieren des Tracking Aufrufs und zum Versenden der Tracking Daten an die Server von Google. In all diese Prozesse kann man mit der JavaScript API von Google Analytics eingreifen. In diesem Artikel sehen wir uns jedoch den customTask genauer an und erläutern, warum dieser so nützlich ist.

Was ist mit dem customTask möglich?

Unter anderem kann die aktuelle Client ID als Custom Dimension getrackt werden, einen User Opt-Out beachten, das Tracking duplizieren (also gleichzeitig in eine weitere Property einlaufen lassen) und vieles mehr.

Funktionsweise – Wie und warum

Kurz: Es kann alles, was man sich mit Google Analytics nur wünschen kann. Man muss es nur richtig einstellen.
Der Standard customTask, wenn er nicht vom Entwickler modifiziert wurde, bewirkt rein gar nichts. Jetzt wird es technisch: Man muss sich die Tasks, die Analytics durchläuft, wie Funktionen vorstellen, die nacheinander ausgeführt werden. Eine Funktion, kann mehrere Befehle enthalten, welche Zeilenweise ausgeführt werden. Standardmäßig hat der customTask also noch keine Aufgaben und bewirkt nichts. Analytics führt seine Befehltskette normal aus und sendet den Tracking Aufruf.

Dieser leere customTask kann nun mittels der bereitgestellten JavaScript API von Analytics mit einer eigenen customTask Funktion überschrieben werden. Dadurch wird Analytics also unsere Funktion, statt der leeren und nutzlosen Funktion ausführen.

Mit analytics.js (Nativ)

Hat man Google Analytics nativ im Webseitenquelltext eingebaut, so kann man vor dem ga(‘send’, ‘pageview’); Befehl in den customTask eingreifen:

ga('create', 'UA-XXXXX-Y', 'auto');
ga('set', 'customTask', function(model) {
// Set clientId in Dimension 1
model.set('dimension1', model.get('clientId'));
});
ga('send', 'pageview');

Mit dem Google Tag Manager (GTM)

Mit dem Google Tag Manager sieht der Eingriff ein wenig anders aus: Man muss die Einstellung entweder bei der Google Analytics Einstellungsvarbiable (empfohlen) oder durch Überschreiben der Einstellungsvariable bei einem bestimmten Tag durchführen.
Bei beiden Varianten muss man bei den benutzerdefinierten Feldern, ein Feld namens “customTag” anlegen, welches als Wert eine benutzerdefinierte JavaScript Variable enthält:

Nun muss man noch die Variable {{JS – Custom Task}} anlegen:

Der Code aus dem Screenshot:
function() {
return function(model) {
// Set clientId in Dimension 1
model.set('dimension1', model.get('clientId'));
}
}

Wie in beiden Beispielen zu sehen ist, enthalten unsere Funktionen eine von Analytics gesetzte “model” Variable. Mit dieser Variable können wir Werte auslesen und Werte setzen.

Wird der Code wie hier angegeben ausgeführt, wird die Client ID des Nutzers in der ersten benutzerdefinierten Dimension gespeichert.

Beispiel: Tracking Opt-Out beachten

Möchte man den eigenen Nutzern die Möglichkeit bieten, das Tracking zu deaktivieren, so kann man das ganz leicht über Cookies bewerkstelligen. Dabei kann man das Tracking auf zwei Ebenen deaktivieren:

(1) Google Analytics komplett deaktivieren: Cookiename “optout_ga”
(2) Nur die Display Features deaktivieren: Cookiename “optout_dc”

Auf der Webseite muss es eine Logik geben, die diese beiden Cookies beim Opt-Out des Users auf “true” setzt. Im Tag Manager konfiguriert man sich zwei neue First-Party-Cookie Variablen:

Nachdem die beiden Variablen angelegt sind, kann man nun eine benutzerdefinierte JavaScript Variable im GTM anlegen und folgendes festlegen:

function() {
return function(model) {
if({{optout_ga}} === 'true') { model.set('sendHitTask', null); }
if({{optout_dc}} === 'true') { model.set('displayFeaturesTask', null); }
};
}

Fügt man diese JavaScript Variable nun bei den Google Analytics Tag Einstellungen im GTM als Wert bei “customTask” ein, so wird zuerst geprüft, ob die Cookies gesetzt und auf “true” eingestellt sind. Ist das der Fall, werden die Tasks “sendHitTask” (= Analytics Hit) oder “displayFeaturesTask” (= Display Features Hit) auf null gesetzt und somit ein Tracking verhindert.

Beispiel: Tracking duplizieren

Wer den Google Tag Manager öfter einsetzt, wird vielleicht schon auf das Problem gestoßen sein, dass für ein Tracking in zwei Google Analytics Properties auch zwei Tags im Google Tag Manager angelegt werden müssen. Der customTag schafft hier Abhilfe und erlaubt es mit ein paar Zeilen Code, den Google Analytics Aufruf auch an eine beliebige, weitere Property zu senden.

Im betroffenen Google Tag Manager Universal Analytics-Tag, setzt man bei den benutzerdefinierten Feldern wieder den “customTask” und als Wert erstellt man eine neue benutzerdefinierte JavaScript Variable, beispielsweise mit dem Namen “JS – CustomTask – Duplication”.

Jetzt müssen Sie nur noch den Code mit der Duplizierungslogik in das Code-Feld einfügen:

function() {
// Ersetzen Sie den Werte von secondUAID mit der UA ID, wohin sie den Hit ebenfalls senden möchten
var secondUAID = 'UA-XXXXX-Y';
var origSendTask = '_' + secondUAID + '_originalSendTask';
return function(origModel) {
window[origSendTask] = window[origSendTask] || origModel.get('sendHitTask');
origModel.set('sendHitTask', function(newModel) {
var hitPayload = newModel.get('hitPayload');
var UAID = new RegExp(newModel.get('trackingId'), 'gi');
window[origSendTask](newModel);
newModel.set('hitPayload', hitPayload.replace(UAID, secondUAID), true);
window[origSendTask](newModel);
});
};
}

In dem Code muss der Wert UA-XXXXX-Y mit der zweiten Google Analytics UA ID ersetzt werden.

Möchte man mehr als eine Funktionalität auf einmal im customTask bei einem Google Analytics Hit einsetzen, müssen die Codes in einer customTask Funktion kombiniert werden.

Benötigen Sie Unterstützung bei der Umsetzung von erweiterten Tracking Lösungen? Würden Sie gerne bestimmte Daten in Google Analytics auswerten können und benötigen Sie Unterstützung beim Einbau auf Ihrer Webseite?
Wir helfen Ihnen gerne dabei, kontaktieren Sie uns via Mail an kontakt@e-dialog.at.

Hinterlassen Sie einen Kommentar: