Die Datenschicht (dataLayer) ist die Schnittstelle zwischen der Website und dem Google Tag Manager. Technisch ist sie ein JavaScript-Array namens window.dataLayer, in das die Website Objekte schreibt.
Jedes Tracking beginnt mit der Frage, welche Daten dort landen. Was in der Datenschicht steht, kann der Container lesen. Was nicht drinsteht, muss er sich aus dem DOM zusammensuchen, und das bricht bei der nächsten Designänderung.
Die Datenschicht muss vor dem Container-Snippet angelegt werden, wenn Werte schon beim Seitenaufruf zur Verfügung stehen sollen:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'page_type': 'product',
'user_logged_in': true
});
Spätere Ereignisse kommen über dataLayer.push dazu. Der Tag Manager führt die Objekte zusammen, ein späterer Push überschreibt also nur die Schlüssel, die er selbst enthält. Bei verschachtelten Objekten wie ecommerce führt das dazu, dass Artikel aus einem früheren Ereignis hängen bleiben, weshalb vor jedem E-Commerce-Ereignis ein {ecommerce: null} gepusht gehört.
In WordPress befüllt meist ein Plugin die Datenschicht. GTM4WP liefert Seiten- und WooCommerce-Daten, Consent-Tools schreiben ihre eigenen Ereignisse hinein. Gelesen werden die Werte über Datenschicht-Variablen.
