Trackum

Google Tag Manager Variablen: Typen, Benennung, Fehler

Variablen liefern Tags und Triggern die Werte, die sie brauchen. Welche Typen es gibt, wann du welchen nimmst und warum so oft undefined erscheint.

Technik · · 5 Min. Lesezeit · Mit KI erstellt und KI-gestützt geprüft am

Google Tag Manager Variablen: Typen, Benennung, Fehler
Foto: Mohammad Rahmani auf Unsplash

Was sind Google Tag Manager Variablen?

Google Tag Manager Variablen sind Platzhalter für Werte, die erst auf der Seite feststehen: die aktuelle Adresse, der Text eines geklickten Buttons, die ID eines Formulars oder der Bestellwert eines Kaufs. Tags nutzen Variablen, um diese Werte an Google Analytics 4, Google Ads oder Meta zu übergeben. Trigger nutzen sie als Bedingung, etwa „Klick-URL enthält tel:“. Es gibt zwei Arten: integrierte Variablen, die du nur aktivieren musst, und benutzerdefinierte Variablen, die du selbst anlegst. Mit beiden zusammen deckst du fast jede Messaufgabe ab.

Der große Überblick: Google Tag Manager: Anleitung, Einrichtung und DSGVO

Wer Variablen versteht, versteht den Google Tag Manager. Viele Fehler beim Tracking, ob ein fehlender Bestellwert, ein Formular-Ereignis, das bei jedem Klick auslöst, oder ein Parameter mit dem Wert undefined, haben ihre Ursache in einer Variable, die nicht das liefert, was man erwartet.

Integrierte Variablen aktivieren

Integrierte Variablen bringt der Google Tag Manager bereits mit. Einige sind von Anfang an aktiv, etwa Page URL, Page Hostname, Page Path, Referrer und Event. Die meisten anderen musst du erst einschalten. Dazu gehst du im Bereich Variablen auf Integrierte Variablen, klickst auf Konfigurieren und setzt die Häkchen. Danach stehen sie in Triggern und Tags zur Auswahl.

  • Seite: Page URL, Page Hostname, Page Path, Referrer.
  • Klicks: Click Element, Click Classes, Click ID, Click URL, Click Text.
  • Formulare: Form Element, Form Classes, Form ID, Form URL, Form Text.
  • Scrollen und Videos: Scroll Depth Threshold, Video Title, Video Percent.
  • Hilfsvariablen: Container ID, Container Version, Debug Mode, Random Number.

Ein häufiger Anfängerfehler: Man legt einen Klick-Trigger mit der Bedingung „Click Text gleich Angebot anfordern“ an, findet die Variable aber nicht in der Auswahl. Sie ist schlicht noch nicht aktiviert. Erst nach dem Häkchen taucht sie auf. In der Vorschau siehst du bei jedem Klick, welche Werte die Klick-Variablen haben, und kannst so die passende Bedingung wählen.

Passend dazu: Cross-Domain-Tracking in GA4 richtig einrichten

Benutzerdefinierte Variablen: die wichtigsten Typen

Die Datenschichtvariable ist der wichtigste Typ. Sie liest einen Wert aus dem dataLayer, also der Datenschicht, in die Shops, Formular-Plugins und Entwickler Informationen für den Tag Manager schreiben. Für einen Kauf steht dort zum Beispiel ecommerce.value für den Bestellwert oder ecommerce.transaction_id für die Bestellnummer. In der Datenschichtvariable trägst du genau diesen Namen ein, mit Punkten für verschachtelte Werte. Die Datenschicht ist die sauberste Quelle für Werte, weil sie nicht vom Aussehen der Seite abhängt.

Die URL-Variable liest einen Teil der aktuellen Adresse, etwa den Pfad, den Hostnamen oder einen bestimmten Parameter wie utm_campaign. Die DOM-Element-Variable liest Text oder ein Attribut aus einem Element der Seite, zum Beispiel den Gesamtpreis auf einer Bestätigungsseite. Das funktioniert, ist aber anfällig: Ändert sich das Layout, liefert die Variable nichts mehr. Die Konstante speichert einen festen Wert, etwa eine Mess-ID oder Conversion-ID, die du in mehreren Tags brauchst und nur an einer Stelle pflegen willst.

Die Suchtabelle, in vielen Anleitungen Nachschlagetabelle oder Lookup-Tabelle genannt, ordnet einem Eingabewert einen Ausgabewert zu. Ein Beispiel: Je nach Page Hostname wird eine andere Mess-ID ausgegeben, damit Testseite und Live-Seite in verschiedene Properties messen. Die Regex-Tabelle macht dasselbe mit regulären Ausdrücken, etwa um alle Seiten unter /leistungen/ einer Kategorie zuzuordnen. Sie unterscheidet standardmäßig zwischen Groß- und Kleinschreibung, das lässt sich in den erweiterten Einstellungen ändern. Die benutzerdefinierte JavaScript-Variable schließlich führt eine kleine Funktion aus und gibt deren Ergebnis zurück. Sie ist mächtig, sollte aber die Ausnahme bleiben, weil jeder Fehler darin schwer zu finden ist.

Benutzerdefinierte Variablen im Überblick
VariablentypLiestBeispielAnfällig für
DatenschichtvariableWert aus dem dataLayerecommerce.valueUmbenannte Felder nach Plugin-Updates
URLTeil der aktuellen AdresseParameter utm_campaignKaum anfällig
DOM-ElementText oder Attribut eines ElementsGesamtpreis auf der BestätigungsseiteLayout- und Theme-Änderungen
KonstanteFesten WertMess-ID G-XXXXXXXKaum anfällig
Suchtabelle, Regex-TabelleAusgabe je nach EingabewertMess-ID je HostnameFehlende oder falsche Zeilen
Benutzerdefiniertes JavaScriptErgebnis einer FunktionFormatierter PreisFehler im Code

Benennung: so bleibt der Container lesbar

In einem gewachsenen Google-Tag-Manager-Container stehen schnell vierzig oder fünfzig Variablen. Ohne feste Benennung weiß niemand mehr, welche wofür gedacht ist. Bewährt hat sich ein Präfix für den Typ und danach der ausgelesene Wert. So erkennst du schon am Namen, woher ein Wert kommt und wo du bei einem Fehler suchen musst.

  • dlv für Datenschichtvariablen, etwa dlv ecommerce.value.
  • url für URL-Variablen, etwa url utm_campaign.
  • dom für DOM-Element-Variablen, etwa dom Gesamtpreis.
  • const für Konstanten, etwa const GA4 Mess-ID.
  • lt für Suchtabellen, regex für Regex-Tabellen, js für JavaScript-Variablen.

Lösche außerdem Variablen, die nirgends mehr verwendet werden. Öffnest du eine Variable, zeigt dir der Google Tag Manager, in welchen Tags, Triggern und anderen Variablen sie verwendet wird. Eine Variable ohne Verwendung ist meist ein Rest aus einem alten Versuch und verwirrt nur.

Passend dazu: Consent Mode: Warum nach der Zustimmung Daten fehlen

Warum zeigt eine Variable im Google Tag Manager undefined?

Ein häufiger Fehler ist eine Variable, die undefined liefert. Die Ursache ist meist der Zeitpunkt. Eine Datenschichtvariable kann einen Wert erst lesen, nachdem er in den dataLayer geschrieben wurde. Löst der Tag beim Seitenaufruf aus, der Shop schreibt die Bestelldaten aber erst danach mit einem eigenen Ereignis wie purchase in den dataLayer, ist der Wert beim Auslösen noch leer. Die Lösung: Den Tag an das Ereignis des Shops hängen, nicht an den Seitenaufruf.

Eine weitere häufige Ursache sind falsch geschriebene Namen. Die Datenschicht unterscheidet zwischen Groß- und Kleinschreibung, und transactionId ist nicht dasselbe wie transaction_id. Auch ein fehlendes ecommerce. vor dem Namen führt zu undefined. Bei DOM-Element-Variablen ist oft das Element zum Zeitpunkt des Auslesens noch nicht geladen, oder der Selektor passt nach einem Update des Themes nicht mehr.

So prüfst du das: Starte die Vorschau, löse das Ereignis aus und klicke in der linken Spalte auf genau dieses Ereignis. Im Reiter Variablen siehst du für jede Variable den Wert zu diesem Zeitpunkt. Im Reiter Datenschicht siehst du, was der Shop tatsächlich in den dataLayer geschrieben hat. Vergleiche die Namen dort mit deiner Variable, Buchstabe für Buchstabe.

Beispiel aus einem Onlineshop

Ein Shop auf WooCommerce meldet seit einem Plugin-Update Käufe an GA4 und Google Ads, aber ohne Umsatz. In der Vorschau zeigt sich beim Ereignis purchase: Die Datenschichtvariable dlv ecommerce.value liefert undefined. Im Reiter Datenschicht steht der Wert nun unter einem anderen Namen, weil das Plugin seine Datenschicht umgebaut hat. Nach dem Anpassen der Variable und einem Testkauf in der Vorschau stimmen Wert und Währung wieder.

Die Lehre daraus: Nach jedem Update des Shop-Systems oder eines Tracking-Plugins lohnt sich ein Testkauf in der Vorschau. Er dauert wenige Minuten. Prüfe dabei nicht nur, ob das Ereignis purchase auslöst, sondern auch, ob Bestellwert, Währung und Bestellnummer in den Variablen stehen. Ein Kauf ohne Wert sieht in den Berichten aus wie ein normaler Kauf, nur der Umsatz fehlt. Ohne gezielte Prüfung fällt das oft erst Wochen später auf, wenn jemand die Zahlen mit der Buchhaltung vergleicht.

Variablen sauber aufsetzen lassen

Variablen sind eine Stelle, an der Tracking oft still kaputtgeht, denn ein leerer Wert erzeugt keine Fehlermeldung. Trackum richtet Google Tag Manager, GA4 und Consent Mode v2 für 150 € zzgl. MwSt. ein, mit bis zu 15 Ereignissen, und testet jedes Ereignis in der Vorschau, mit und ohne Einwilligung. Im monatlich kündbaren Abo für 19 € im Monat testet Trackum die Seite jede Woche automatisch. Geht etwas kaputt, das Trackum eingerichtet hat, etwa nach einem Plugin-Update, wird es ohne Aufpreis repariert.

Häufige Fragen

Was ist eine Variable im Google Tag Manager?

Eine Variable ist ein Platzhalter für einen Wert, der erst beim Seitenaufruf oder bei einem Ereignis feststeht, zum Beispiel die aktuelle Adresse, der Text eines geklickten Buttons oder der Bestellwert. Tags nutzen Variablen, um Werte zu übergeben, Trigger nutzen sie als Bedingung.

Was ist eine Datenschichtvariable?

Eine Datenschichtvariable liest einen Wert aus der Datenschicht der Seite, also aus dem dataLayer. Shops und Formular-Plugins schreiben dort zum Beispiel Bestellwert, Währung oder Formularname hinein, damit der Google Tag Manager sie auslesen kann.

Warum zeigt meine Variable im Tag Manager undefined?

Meist wird die Variable gelesen, bevor der Wert existiert, oder der Name stimmt nicht genau, etwa wegen Groß- und Kleinschreibung. In der Vorschau siehst du für jedes Ereignis, welchen Wert die Variable zu diesem Zeitpunkt hatte.

Wo aktiviere ich integrierte Variablen im Tag Manager?

Im Bereich Variablen unter Integrierte Variablen mit einem Klick auf Konfigurieren. Dort setzt du Häkchen etwa bei Click Text, Click URL oder Form ID, danach stehen sie in Triggern und Tags zur Auswahl.

Quellen

  1. Tag Manager-Hilfe: Integrierte Variablen für Webcontainer support.google.com
  2. Tag Manager-Hilfe: Benutzerdefinierte Variablentypen für Webcontainer support.google.com
  3. Google for Developers: Die Datenschicht developers.google.com
Hilfe