Google Tag Manager Data Layer — Dokumentation

Wie das Modul installiert wird, was jedes Feld tut, wie der Container importiert wird und woran man erkennt, dass ein Event wirklich in Analytics angekommen ist.

Als Markdown anzeigen

Installation

Voraussetzungen und Installation

Magento 2.4.x (Open Source oder Adobe Commerce), PHP 8.1 bis 8.5, Hyvä oder Luma. Ein Google-Tag-Manager-Container, der kostenlos ist.

composer require codingrow/module-gtmdl
bin/magento module:enable Codingrow_Gtmdl
bin/magento setup:upgrade

Im Production-Modus zusätzlich setup:di:compile, setup:static-content:deploy und cache:flush. Die Composer-Zugangsdaten kommen per E-Mail, wenn Sie das kostenlose Modul anfordern oder die Shopping-Events kaufen.

Alles wird unter Stores → Configuration → Codingrow Extensions → Google Tag Manager Data Layer konfiguriert, und jede Einstellung kann pro Store View anders sein: oben links den Scope wechseln.

Container

FeldWas es tut
EnableAusgeschaltet rendert der Shop weder den Container noch eine Zeile Data Layer.
Container IDIhr Container in der Form GTM-XXXXXXX. Anders geschrieben wird er ignoriert. Leer lassen, um den Data Layer zu füllen, ohne einen Container zu laden — genau richtig, wenn der Container schon von etwas anderem installiert wird.
Load the container only after cookie consentNutzt den Cookie-Restriction-Mode von Magento. Der Data Layer wird ohnehin gefüllt, sobald die Einwilligung kommt, geht also nichts verloren. Bei aktiver Google-Einwilligung unten gilt das nicht mehr.

Verwendung

Google Consent Mode v2. Der Anfangszustand muss vor dem Start des Containers deklariert werden, das kann also nur wer den Container lädt. Der Schalter hat drei Stellungen.

Nur den Anfangszustand deklarieren ist die richtige, wenn die Einwilligung schon von einer eigenen Erweiterung verwaltet wird: das Modul deklariert alles abgelehnt, und Ihre Erweiterung sendet die Aktualisierung mit

window.codingrowGtmdl.consent({
    ad_storage: 'granted',
    ad_user_data: 'granted',
    ad_personalization: 'granted',
    analytics_storage: 'granted'
});

Den Anfangszustand deklarieren und aktualisieren lässt das Modul die Einwilligung über den Cookie-Hinweis von Magento erteilen. Diese Stellung braucht den Cookie-Restriction-Mode von Magento eingeschaltet (Stores → Configuration → General → Web → Default Cookie Settings): ausgeschaltet kann kein Kunde zustimmen und die Einwilligung bliebe für immer abgelehnt. Eine Zeile unter den Feldern sagt, was wirklich passiert, und wird in diesem Fall rot.

So prüfen Sie es. Im Netzwerk-Panel des Browsers tragen die Anfragen an google-analytics.com/g/collect einen Parameter gcs: G100 bei abgelehnter, G111 bei erteilter Einwilligung. Ändert er sich beim Akzeptieren der Cookies, arbeitet der Consent Mode.

Zwei weitere Einstellungen: Werbedaten ohne Einwilligung unterdrücken (solange die Werbeeinwilligung abgelehnt ist, sendet Google keine Identifikatoren in seinen Werbeaufrufen) und Klick-ID über die URL weitergeben (ohne Cookies wandert sie von Seite zu Seite). Beide empfohlen.

Die vierzehn Events

Ein Schalter pro Event. Die vier Basis-Events sind kostenlos; die anderen zehn brauchen den Schlüssel für die Shopping-Events.

EventWannStufe
view_itemProduktseitekostenlos
view_cartWarenkorbkostenlos
begin_checkoutKassekostenlos
purchaseBestellbestätigung, aus der echten Bestellungkostenlos
view_item_listKategorie und SuchergebnisseShopping
select_itemKlick auf ein Produkt in einer ListeShopping
add_to_cartaus der echten WarenkorbzeileShopping
remove_from_cartaus der echten WarenkorbzeileShopping
searchder Suchbegriff und die TrefferzahlShopping
add_to_wishlistdas hinzugefügte ProduktShopping
add_shipping_infodie gespeicherte VersandartShopping
add_payment_infodie gespeicherte ZahlungsartShopping
loginKundenanmeldungShopping
sign_upKundenregistrierungShopping

In dieser Gruppe stehen zwei weitere Einstellungen: im Backend erstellte Bestellungen zählen (von Hand eingegebene Bestellungen haben keinen Besuch hinter sich, und sie zu zählen verfälscht die Kosten pro Conversion) und nur diese Bestellstatus, was den Kauf auf die Status beschränkt, die wirklich als Verkauf zählen.

Die Versand- und Zahlungsevents hängen nicht vom Checkout ab: sie entstehen in Magento, wenn die Methode gespeichert wird, und funktionieren daher auf dem Standard-Checkout, auf Hyvä, auf Luma und auf Checkouts mit eigener Route. Die anderen vier sind Seiten-Events: das Modul bringt eine kleine Layout-Datei pro Route mit, und der Support kann eine für einen Checkout ergänzen, der woanders liegt.

Container zum Importieren

Solange der Container kein Tag hat, das den Data Layer liest, kommt in Analytics nichts an. Tragen Sie die GA4-Mess-ID ein (das G-XXXXXXXXXX aus Analytics, unter Verwaltung → Datenstreams) und, wenn Sie auch die Google-Ads-Conversion wollen, die Conversion-ID (die Ziffern nach AW-) und das Label Ihrer Kauf-Conversion. Dann Container herunterladen drücken.

Die Datei enthält das GA4-Konfigurationstag, das Tag, das die E-Commerce-Events weiterleitet, den Conversion Linker, die nötigen Variablen und — wenn die beiden Google-Ads-Felder gefüllt sind — die Kauf-Conversion mit echtem Umsatz und Bestellnummer.

In Google Tag Manager: Verwaltung → Container importieren, die Datei wählen, Merge und Konflikt-Tags umbenennen ankreuzen, Vorschau ansehen, veröffentlichen. Nichts von dem, was Sie schon haben, wird überschrieben.

Verlorene Käufe

Etwa jeder fünfte Kauf erreicht Analytics nie: ein Werbeblocker, ein fehlgeschlagenes Skript, ein Kunde, der die Seite zu früh schließt. Ist dies aktiv, sendet der Shop den Kauf selbst, wenn der Browser es nicht getan hat, und zwar mit der Kennung, die dieser Kunde damals hatte.

Dafür braucht es die GA4-Mess-ID aus der Gruppe oben und einen Measurement-Protocol-API-Schlüssel, den man in Analytics unter Verwaltung → Datenstreams → Ihr Stream → Measurement-Protocol-API-Schlüssel erstellt. Er wird verschlüsselt gespeichert. Die Wartezeit vor dem Senden ist der Spielraum für den Browser des Kunden: eine Viertelstunde reicht auch bei langsamer Verbindung.

Auch Käufe ohne Analytics-Kennung zurückholen deckt die Kunden ab, die Analytics ab der ersten Seite blockieren: es gibt nichts zu lesen, der Kauf kann also nur als neuer, direkter Besuch gesendet werden. Sie holen den Umsatz in die Berichte zurück und verlieren die Zuordnung dieser Bestellungen — darum ist es zunächst aus.

Unter den Feldern zählt ein Feld die letzten dreißig Tage: erfasste Bestellungen, die vom Browser bestätigten, die vom Shop zurückgeholten, die noch wartenden. Ein Knopf lässt Google den Inhalt eines Testkaufs prüfen, ohne ihn zu erfassen.

Drei Dinge, die man wissen sollte. Bestellungen von vor der Aktivierung werden nicht zurückgeholt: die Erfassung beginnt hier. Ein falscher API-Schlüssel erzeugt keinen Fehler — Google nimmt den Aufruf an und verwirft das Ereignis — daher behauptet das Modul nie, ein Kauf sei angekommen: es vermerkt, dass es ihn gesendet hat, und die Bestätigung steht in Analytics unter Echtzeit. Und wer die Cookies abgelehnt hat, wird nie zurückgeholt, auch nicht mit der Option oben: seinen Kauf vom Server zu senden, würde seine Ablehnung umgehen.

Was in die Artikel kommt

FeldWas es tut
Preise inklusive SteuerMuss zur Basis Ihrer Google-Berichte passen.
Kaufwert enthält den VersandÄndert nur den Wert des Kaufs.
Produktattribut für item_idNutzen Sie dieselbe Kennung wie Ihr Produktfeed, sonst ordnet Google die Artikel nicht zu.
Produktattribut für item_brandJedes Produktattribut.
Produktkategorien hinzufügenLegt die Kategorie in jeden Artikel.
Maximale Artikelzahl in view_item_listVerhindert, dass eine lange Kategorie ein riesiges Event sendet.
Auch die klassischen Remarketing-Schlüssel sendenFür Container, die noch die alten Schlüssel lesen.
Zu ignorierende IP-AdressenMit Komma getrennt. Von diesen Adressen geht kein Event raus — zum Beispiel vom Büro.
Benutzerdefinierte DimensionenPaare aus Produktattribut und GA4-Parametername. Der Parameter reist in jedem Artikel jedes Events mit. In GA4 als benutzerdefinierte Dimension auf Artikelebene deklarieren, sonst kommt er an, erscheint aber nicht in den Berichten.
Zusätzlicher Name für die eindeutige Event-IDFür Container, deren Trigger diese ID unter einem anderen Namen lesen. Derselbe Wert reist unter beiden Namen — am Umstellungstag ändern Sie im Container nichts.

Häufige Probleme

Ich habe die Container-ID eingetragen, sehe aber nichts in Google Tag Manager. Prüfen Sie, dass Enable im betrachteten Scope auf Yes steht, dass die ID die Form GTM-XXXXXXX hat, und im Production-Modus, dass Sie Compile, Static Deploy und einen Cache-Flush gemacht haben. In der Vorschau von Google Tag Manager sieht man die Events ankommen; kommen sie an und die Berichte bleiben leer, liegt das Problem bei den Tags im Container.

Ein Event feuert nie. Zehn der vierzehn gehören zu den Shopping-Events: der Schlüssel gehört in die Lizenz-Gruppe. Ohne ihn sendet der Shop weiter die vier Basis-Events.

Die Checkout-Events kommen alle zusammen auf der Bestellbestätigung an. Normal bei einem Ein-Seiten-Checkout: das Event wird erfasst, sobald der Kunde wählt, und beim nächsten Seitenaufbau ausgeliefert, der dort die Bestellbestätigung ist. In Analytics bleiben sie im selben Besuch und in der richtigen Reihenfolge, vor dem Kauf.

Die Zahlen passen nicht zu Analytics oder Google Ads. Prüfen Sie die Steuerbasis, ob der Versand in den Kaufwert gehört, und dass das als item_id genutzte Attribut die Kennung Ihres Produktfeeds ist.

Der Kauf kam zweimal an. Nicht vom Modul: ein Neuladen der Bestellbestätigung wiederholt das Event nicht. Suchen Sie ein zweites Tag, das denselben Kauf sendet — etwa eine alte Google-Ads-Conversion, die in Magento noch unter Sales → Google API konfiguriert ist.