Ein Datalayer (zu deutsch Datenschicht) ist ein JavaScript-Objekt, mit welchem Informationen von der eigenen Website an Tag-Management Systeme (wie etwa dem Google Tag Manager) gesendet werden können. Tag Manager lesen die Datenschicht aus und nutzen diese Informationen um Events zu steuern oder bestimmte Informationen an Drittanbieter Tools wie z.B. Analytics-Tools weiterzugeben. Die Datenschicht funktioniert hierbei also als ein Zwischenspeicher.
Zu den Informationen, die in einem Datalayer bereitgestellt werden können, gehören etwa:
- Produktdaten (Produktnamen, Preise, Produktkategorien)
- Daten rund um die Nutzerakquisition (Besucherquelle, Medium)
- Transaktionen (Warenkorbwerte, Datum des Kaufabschluss)
- Kundendaten (Neukunden, Wiederkehrende Kunden)
Der große Vorteil bei der Verwendung einer Datenschicht besteht darin, dass wir über ihn eine hohe Datenqualität erreichen, da sich alle Third Party Dienste aus derselben Datenquelle bedienen.
Informationen in den Datalayer schreiben
Damit wir Daten aus der Datenschicht weiterverwenden können, müssen wir zunächst Daten in diesen hineinschreiben. Man hat hier zwei Optionen: die Data Layer Deklaration und die dataLayer.push() Funktion.
Data Layer Deklaration
Die Deklaration eines Datalayers ist relativ simpel. Semantisch wird die Deklaration wie folgt aufgebaut:
<script> window.dataLayer = window.dataLayer || [{ 'variable_1': 'variablenwert', 'variable_2': 'variablenwert' }]; </script>
Es wird also ein Javascript gestartet, welches dann Variablen und ihre Werte in das dataLayer-Objekt reinschreibt. Diese Methode überschreibt alles, was sich bereits im Datalayer befinden sollte.
In der Praxis wird diese Methode der Data Layer Deklaration ungern verwendet, da es leicht zu Problemen führen kann, wenn man nicht peinlichst genau darauf achtet, was wie und in welcher Reihenfolge ausgeführt wird.
Ein Beispiel: wird etwa das Google Tag Manager Script vor der Datenschichtdeklaration durchgeführt, kann er unter umständen nicht auf diese Daten zugreifen. Es müsste also zuerst die Datenschicht deklariert, dann erst der Tag Manager geladen werden, der diese dann wiederum ausliest.
Wenn wir aber Nutzerereignisse auf einer bereits vollständig geladenen Seite erfassen wollen, wie etwa den Klick auf einen addToCart-Button, haben wir ein Problem. Denn all diese Events finden ja erst statt, nachdem bereits Tag Manager und Co. initialisiert wurden.
dataLayer.push() Funktion
Die Funktion dataLayer.push() gibt uns eine zweite Option, wie wir Daten in unseren Datalayer schreiben können. Der Vorteil gegenüber der bloßen Deklaration besteht darin, dass wir Daten hier auch nachträglich in den Datalayer schreiben können, d.h. z.B. sowohl vor als auch nach der Initialisierung unseres Tag Managers.
Damit ist die dataLayer.push() ideal für Event-Tracking.
Der semantische Aufbau ist hier relativ ähnlich:
<script> window.dataLayer = window.dataLayer || []; dataLayer.push = [{ 'variable_1': 'variablenwert', 'variable_2': 'variablenwert' }]; </script>