So richten Sie Google Tag Manager ein und finden Ihre GTM-ID
Google Tag Manager (GTM) ist ein kostenloses Tag-Management-System (TMS) von Google, mit dem Sie JavaScript-Tracking-Snippets – sogenannte Tags – über eine zentrale Web-Oberfläche auf Ihrer Website bereitstellen und verwalten können, ohne den Quellcode Ihrer Website direkt zu bearbeiten. Ihre GTM-Container-ID (formatiert als GTM-XXXXXXX) ist die eindeutige Kennung, die das auf Ihrer Website installierte Container-Snippet mit Ihrem GTM-Konto verknüpft. Sie wird immer dann benötigt, wenn Sie GTM mit externen Plattformen wie Google Analytics 4, Meta Pixel oder anderen Drittanbieter-Datenschicht-Konsumenten integrieren.
Dieser Leitfaden behandelt den vollständigen Einrichtungsprozess von Anfang bis Ende: Konto- und Container-Erstellung, Snippet-Installation auf verschiedenen Plattformen, das Auffinden Ihrer Container-ID sowie die kritischen Schritte zur Überprüfung nach der Installation, die die meisten Anleitungen überspringen.
Was ist Google Tag Manager und warum ist er für die Website-Architektur wichtig
Bevor Sie mit der Konfiguration beginnen, ist es hilfreich zu verstehen, was GTM auf der Infrastrukturebene tatsächlich tut. Wenn ein Browser Ihre Seite lädt, sendet das GTM-Container-Snippet eine Anfrage an https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXXX. Googles Server geben ein kompiliertes JavaScript-Bundle zurück, das nur die Tags, Trigger und Variablen enthält, die Sie in Ihrer aktuellen Container-Version veröffentlicht haben. Das bedeutet:
- Keine fest codierten Tracking-Skripte sind über Ihre HTML-Vorlagen verteilt.
- Tag-Auslösung ist bedingt – Trigger werten DOM-Ereignisse, URL-Muster oder benutzerdefiniertes JavaScript aus, bevor ein Tag ausgeführt wird.
- Versionskontrolle ist integriert – jede veröffentlichte Container-Version wird gespeichert, und Sie können sofort zurückrollen.
- Ein einzelner Container kann Hunderte von Tags verschiedener Anbieter enthalten, die alle über ein Dashboard verwaltet werden.
Diese Architektur ist besonders wertvoll, wenn Ihre Website in einer VPS Hosting-Umgebung betrieben wird, in der Sie den gesamten Stack kontrollieren, da sie die Marketing-Instrumentierung vollständig von Ihrer Deployment-Pipeline entkoppelt.
Schritt 1: Ein Google Tag Manager-Konto und einen Container erstellen
Konto vs. Container – Die Hierarchie verstehen
GTM verwendet eine zweistufige Hierarchie:
- Konto: Repräsentiert in der Regel Ihr Unternehmen oder Ihre Organisation. Ein Konto pro Unternehmen ist die Standardpraxis.
- Container: Repräsentiert eine einzelne bereitstellbare Einheit – in der Regel eine Website, eine mobile App oder eine AMP-Property. Ein einzelnes Konto kann mehrere Container enthalten.
Diese beiden Ebenen zu verwechseln ist ein häufiger Fehler. Wenn Sie das Tracking für shop.example.com und blog.example.com als separate Properties verwalten, sollten diese separate Container unter demselben Konto sein – nicht separate Konten.
Das Konto erstellen
- Navigieren Sie zu tagmanager.google.com und melden Sie sich mit dem Google-Konto an, das Ihre Google Analytics-Property besitzt oder Administratorzugriff darauf hat.
- Klicken Sie auf Konto erstellen.
- Geben Sie Ihren Kontonamen ein (Ihr Unternehmens- oder Markenname).
- Wählen Sie Ihr Land aus.
- Lassen Sie Daten anonym mit Google teilen aktiviert oder deaktivieren Sie es gemäß Ihren Datenschutzrichtlinien.
Den Container konfigurieren
Im selben Erstellungsablauf:
- Geben Sie einen Containernamen ein – verwenden Sie der Übersichtlichkeit halber die vollständige Domain (z. B.
example.com). - Wählen Sie unter Zielplattform die entsprechende Option:
| Plattformoption | Anwendungsfall |
|---|---|
| — | — |
| Web | Standard HTML/JavaScript-Websites |
| iOS | Native iOS-Apps mit Firebase SDK |
| Android | Native Android-Apps mit Firebase SDK |
| AMP | Accelerated Mobile Pages |
| Server | Serverseitiges Tagging (GTM-Server-Container) |
Für die meisten Web-Projekte wählen Sie Web.
- Klicken Sie auf Erstellen und akzeptieren Sie die Google Tag Manager-Nutzungsbedingungen. Wenn Sie unter GDPR-Jurisdiktion tätig sind, lesen Sie die Datenverarbeitungsergänzung, bevor Sie akzeptieren.
Nach der Annahme präsentiert GTM sofort Ihre zwei Container-Code-Snippets. Schließen Sie dieses Fenster nicht, bevor Sie diese kopiert haben.
Schritt 2: Das GTM-Container-Snippet auf Ihrer Website installieren
GTM erfordert zwei separate Code-Snippets, die an bestimmten Stellen platziert werden müssen. Eine falsche Platzierung ist einer der häufigsten Implementierungsfehler und kann dazu führen, dass Tags zu spät ausgelöst werden, Seitenaufrufe verpasst werden oder in bestimmten Browsern vollständig fehlschlagen.
Die zwei erforderlichen Snippets
Snippet 1 — <head>-Platzierung (JavaScript):
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXXX');</script>
<!-- End Google Tag Manager -->Platzieren Sie dieses so weit oben im <head> wie möglich – idealerweise unmittelbar nach dem öffnenden <head>-Tag.
Snippet 2 — <body>-Platzierung (noscript-Fallback):
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX"
height="0" width="0"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->Platzieren Sie dieses unmittelbar nach dem öffnenden <body>-Tag. Dieser <noscript>-iframe ist der Fallback für Browser mit deaktiviertem JavaScript – er stellt sicher, dass grundlegendes Tag-Firing weiterhin über einen iframe-Pixel-Load erfolgt.
Wichtiger Hinweis: Ersetzen Sie GTM-XXXXXXX in beiden Snippets durch Ihre tatsächliche Container-ID.
Installation auf WordPress
WordPress ist das häufigste CMS für GTM-Deployments. Sie haben drei Methoden:
Methode A — Theme functions.php (direkt, ohne Plugin-Abhängigkeit):
// Add to your child theme's functions.php
function add_gtm_head() {
echo "<!-- Google Tag Manager --><script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-XXXXXXX');</script><!-- End Google Tag Manager -->";
}
add_action('wp_head', 'add_gtm_head', 1);
function add_gtm_body() {
echo '<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXXX" height="0" width="0"></iframe></noscript>';
}
add_action('wp_body_open', 'add_gtm_body', 1);Methode B — Plugin (Insert Headers and Footers oder GTM4WP): Installieren Sie das Plugin, fügen Sie Snippet 1 in das Header-Feld und Snippet 2 in das Body/After-Body-Feld ein. Das GTM4WP-Plugin wird gegenüber generischen Header/Footer-Plugins bevorzugt, da es auch WordPress-spezifische Daten (Beitragstyp, Autor, WooCommerce-Warenkorbdaten) automatisch in den dataLayer überträgt.
Methode C — Direkte Template-Bearbeitung: Bearbeiten Sie header.php in Ihrem Theme, um beide Snippets an den richtigen Positionen einzufügen. Verwenden Sie immer ein Child-Theme – wenn Sie ein Parent-Theme direkt bearbeiten, werden Ihre Änderungen beim nächsten Theme-Update überschrieben.
Installation auf Shopify
Shopify schränkt den direkten <head>-Zugriff auf die theme.liquid-Datei ein. Navigieren Sie zu Online Store > Themes > Edit Code > Layout > theme.liquid und fügen Sie beide Snippets an den entsprechenden Positionen ein. Beachten Sie, dass für Shopifys Checkout-Seiten ein Shopify Plus-Plan erforderlich ist, um benutzerdefinierte Skripte hinzuzufügen.
Installation auf einer benutzerdefinierten HTML/Server-gerenderten Website
Wenn Sie eine benutzerdefinierte Anwendung auf einem Dedicated Server oder VPS verwalten, bearbeiten Sie Ihre HTML-Basisvorlage direkt. Für serverseitig gerenderte Frameworks (Node.js/Express, Django, Laravel) fügen Sie die Snippets zu Ihrer Basis-Layout-Vorlagendatei hinzu.
Für eine Node.js/Express-Anwendung mit EJS-Vorlagen:
# Locate your base layout template
find /var/www/myapp/views -name "layout.ejs"Bearbeiten Sie dann die Datei, um beide GTM-Snippets an den richtigen Positionen innerhalb des <head> und unmittelbar nach <body> einzufügen.
Überlegungen zur Content Security Policy
Wenn Ihre Website einen Content Security Policy (CSP)-Header erzwingt – was auf jedem gehärteten Produktionsserver der Fall sein sollte – müssen Sie GTMs Domains auf die Whitelist setzen. Fügen Sie Folgendes zu Ihren CSP-Direktiven hinzu:
script-src 'self' https://www.googletagmanager.com;
img-src 'self' https://www.googletagmanager.com;
frame-src https://www.googletagmanager.com;Wenn Sie Ihre CSP nicht aktualisieren, wird GTM stillschweigend am Laden gehindert, und in GTMs eigener Oberfläche erscheint kein Fehler – nur in der Browser-Konsole.
Schritt 3: Ihre Google Tag Manager-ID finden
Ihre GTM-Container-ID ist immer als GTM- gefolgt von einer alphanumerischen Zeichenkette formatiert (z. B. GTM-K2F9XP3). Es gibt drei zuverlässige Möglichkeiten, sie zu finden.
Methode 1 — Container-Dashboard (Primäre Methode)
- Melden Sie sich bei tagmanager.google.com an.
- Auf der Konten-Übersichtsseite sehen Sie alle Ihre Konten und die zugehörigen Container in Karten aufgelistet.
- Die Container-ID (
GTM-XXXXXXX) wird direkt unter dem Containernamen auf jeder Karte angezeigt – sichtbar, ohne in den Container zu klicken.
Methode 2 — Container-Administrationsbereich
- Öffnen Sie den gewünschten Container.
- Klicken Sie in der oberen Navigationsleiste auf Admin.
- Klicken Sie unter der Spalte Container auf Container-Einstellungen.
- Das Feld Container-ID oben auf dieser Seite zeigt Ihre vollständige GTM-ID.
Methode 3 — Installierter Seitenquelltext
Wenn GTM bereits auf Ihrer Website installiert ist und Sie die ID abrufen müssen, ohne sich bei GTM anzumelden:
curl -s https://example.com | grep -o 'GTM-[A-Z0-9]*'Dieser Befehl ruft Ihren Seitenquelltext ab und extrahiert mithilfe eines Regex-Musters alle GTM-Container-ID-Zeichenketten – nützlich für die Prüfung von Drittanbieter-Websites oder zur Überprüfung, welcher Container tatsächlich live ist.
Schritt 4: Die Installation überprüfen
Das Überspringen der Überprüfung ist der mit Abstand kostspieligste Fehler bei GTM-Deployments. Ein falsch platziertes Snippet, ein CSP-Block oder eine Theme-Überschreibung kann Ihr gesamtes Tracking-Setup stillschweigend unterbrechen.
GTM-Vorschaumodus (Empfohlen)
- Klicken Sie in Ihrem Container auf Vorschau in der oberen rechten Ecke.
- Geben Sie Ihre Website-URL ein und klicken Sie auf Verbinden.
- Ein neuer Browser-Tab öffnet Ihre Website mit dem angehängten Tag Assistant-Panel.
- Das Panel zeigt jeden Tag, der beim Seitenaufruf ausgelöst wurde, welche Trigger ihn aktiviert haben, und den vollständigen
dataLayer-Status.
Wenn der Container korrekt lädt, sehen Sie gtm.js als ausgelösten Tag und gtm.load als abgeschlossenes Ereignis im Übersichtspanel.
Google Tag Assistant Chrome-Erweiterung
Installieren Sie die Tag Assistant Legacy-Erweiterung oder verwenden Sie die neuere Tag Assistant Companion-Erweiterung. Navigieren Sie zu Ihrer Website, und die Erweiterung bestätigt, ob GTM erkannt wird, zeigt die gefundene Container-ID an und markiert etwaige Implementierungsfehler (z. B. wenn das Snippet an der falschen Stelle platziert ist oder mehrfach ausgelöst wird).
Manuelle Browser-Konsolen-Prüfung
Öffnen Sie Chrome DevTools (F12), wechseln Sie zum Tab Netzwerk, filtern Sie nach gtm.js und laden Sie die Seite neu. Sie sollten eine erfolgreiche 200-Antwort von www.googletagmanager.com sehen. Wenn Sie eine blockierte oder fehlgeschlagene Anfrage sehen, überprüfen Sie Ihre CSP-Header und Server-Firewall-Regeln.
# Check response headers from GTM's script endpoint
curl -I "https://www.googletagmanager.com/gtm.js?id=GTM-XXXXXXX"Schritt 5: Ihre GTM-ID mit Drittanbieter-Plattformen verwenden
Sobald Ihr Container verifiziert ist, wird die GTM-ID in verschiedenen Integrationskontexten verwendet:
Google Analytics 4
Installieren Sie das gtag.js-Snippet von GA4 nicht direkt auf der Seite, wenn GTM vorhanden ist. Erstellen Sie stattdessen einen Google Tag (früher GA4-Konfigurations-Tag) in GTM, geben Sie Ihre GA4-Mess-ID (G-XXXXXXXXXX) ein und setzen Sie den Trigger auf Alle Seiten. Dadurch bleibt das gesamte Tracking in GTM zentralisiert.
Meta (Facebook) Pixel
Fügen Sie in GTM einen benutzerdefinierten HTML-Tag hinzu, der den Meta Pixel-Basiscode enthält. Verwenden Sie GTMs integrierte Variablen ({{Page URL}}, {{Click URL}}), um Ereignisparameter dynamisch zu befüllen, anstatt sie fest zu codieren.
WordPress-Plugins, die eine GTM-ID anfordern
Plugins wie Rank Math, MonsterInsights oder WooCommerce Google Analytics können direkt nach Ihrer GTM-ID fragen. Wenn Sie das GTM-Snippet bereits manuell oder über GTM4WP installiert haben, geben Sie Ihre GTM-ID nicht zusätzlich in diese Plugins ein – dies würde dazu führen, dass der Container zweimal geladen wird, was alle Tag-Auslösungen verdoppelt und Ihre Analysedaten aufbläht.
Serverseitiges GTM (Fortgeschritten)
Für Websites mit hohem Traffic oder datenschutzsensible Deployments unterstützt GTM einen serverseitigen Container, der auf Ihrer eigenen Infrastruktur läuft. Anstatt dass der Browser Tags direkt von Anbieter-CDNs lädt, gehen alle Anfragen zuerst an Ihren Server. Dies verbessert die Seitenladeperformance, umgeht Ad-Blocker und gibt Ihnen die volle Kontrolle darüber, welche Daten Ihre Infrastruktur verlassen. Das Betreiben eines serverseitigen GTM-Containers eignet sich gut für einen VPS mit cPanel oder einen reinen VPS, auf dem Sie Node.js oder einen containerisierten Tagging-Server konfigurieren können.
GTM-Container-Typen im Vergleich
| Container-Typ | Deployment-Standort | Primärer Anwendungsfall | Erfordert Server-Infrastruktur |
|---|---|---|---|
| — | — | — | — |
| Web | Browser (clientseitig) | Standard-Website-Tracking | Nein |
| iOS / Android | Mobile App | App-Ereignis-Tracking über Firebase | Nein |
| AMP | AMP-Seiten | Tracking auf Accelerated Mobile Pages | Nein |
| Server | Ihr Server | Datenschutzorientiertes, hochperformantes Tracking | Ja |
Häufige Fallstricke und Sonderfälle
Doppelt auslösende Container: Wenn Ihr WordPress-Theme GTM bereits über ein fest codiertes Snippet enthält und Sie zusätzlich ein Plugin aktivieren, das GTM einfügt, werden beide ausgelöst. Überprüfen Sie immer Ihren Seitenquelltext mit curl -s https://example.com | grep -c 'GTM-', um Vorkommen zu zählen.
Falsche Container-Umgebung: GTM unterstützt mehrere Umgebungen (Live, Entwicklung, Staging). Wenn ein Entwickler einen Vorschau-Link mit einem Nicht-Live-Umgebungs-Token teilt, können Tags sich anders verhalten als in der Produktion. Testen Sie immer gegen die Live-Umgebung, bevor Sie abzeichnen.
Initialisierungsreihenfolge des dataLayer: Wenn Ihre Website Daten an window.dataLayer überträgt, bevor das GTM-Snippet geladen wird, gehen diese Übertragungen verloren. Das dataLayer-Array muss vor dem GTM-Snippet initialisiert werden, oder das Snippet selbst übernimmt die Initialisierung – aber alle Übertragungen, die vor der Ausführung des Snippets stattfinden, werden nicht erfasst. Dies ist eine häufige Ursache für fehlende E-Commerce-Daten auf langsam ladenden Seiten.
HTTPS-Anforderung: GTMs gtm.js wird immer über HTTPS bereitgestellt. Wenn Ihre Website noch über HTTP läuft, blockiert die Mixed-Content-Richtlinie in modernen Browsern das GTM-Skript. Stellen Sie sicher, dass Ihre Website ein gültiges SSL-Zertifikat hat – SSL-Zertifikate sind eine Voraussetzung für jedes produktive GTM-Deployment.
Tag-Sequenzierung: Wenn mehrere Tags beim selben Trigger ausgelöst werden, ist die Ausführungsreihenfolge nicht garantiert, es sei denn, Sie konfigurieren explizit eine Tag-Sequenzierung (Setup-Tag / Cleanup-Tag) in GTMs erweiterten Tag-Einstellungen.
Praktische Entscheidungsmatrix
Verwenden Sie diese Checkliste, bevor Sie Ihr GTM-Setup als produktionsbereit betrachten:
- [ ] Das Container-Snippet ist im
<head>und unmittelbar nach<body>auf jeder Seite vorhanden, einschließlich dynamisch generierter Seiten. - [ ] Die GTM-ID erscheint genau einmal pro Seite – bestätigt über
curloder Browser-Quelltext-Inspektion. - [ ] CSP-Header setzen
www.googletagmanager.comfürscript-src,img-srcundframe-srcauf die Whitelist. - [ ] Der Vorschaumodus bestätigt, dass der Container lädt und
gtm.jsbeim Seitenaufruf ausgelöst wird. - [ ] Außerhalb von GTM existieren keine doppelten GA4- oder andere Anbieter-Snippets.
- [ ]
dataLayerwird vor dem GTM-Snippet im HTML-Quelltext initialisiert. - [ ] Bei WordPress-Nutzung enthält ein Child-Theme oder ein dediziertes Plugin (nicht das Parent-Theme) das Snippet.
- [ ] Server-seitige Firewall-Regeln erlauben ausgehende Anfragen an
www.googletagmanager.com:443. - [ ] Für E-Commerce:
dataLayer-Übertragungen fürpurchase-,add_to_cart– undview_item-Ereignisse werden im Vorschaumodus verifiziert, bevor sie live gehen. - [ ] Der Container ist veröffentlicht – unveröffentlichte Änderungen existieren nur im Workspace und beeinflussen die Live-Website nicht.
Wenn Ihre Hosting-Umgebung ein verwaltetes Shared Web Hosting-Paket ohne direkten Server-Zugriff ist, konzentrieren Sie sich auf die CMS-seitigen Installationsmethoden (Plugin oder Theme-Datei) und verlassen Sie sich für die Überprüfung auf den GTM-Vorschaumodus anstatt auf serverseitige curl-Befehle.
FAQ
Was ist eine GTM-Container-ID und wo wird sie verwendet?
Eine GTM-Container-ID ist eine eindeutige Kennung im Format GTM-XXXXXXX, die das auf Ihrer Website installierte JavaScript-Snippet mit Ihrem spezifischen GTM-Container verknüpft. Sie wird im Container-Snippet-Code, in Drittanbieter-Plattform-Integrationen und in GTMs eigener Admin-Oberfläche verwendet, um zu identifizieren, welche Tag-Konfiguration des Containers geladen werden soll.
Kann ich denselben GTM-Container auf mehreren Domains verwenden?
Technisch gesehen ja – dasselbe Snippet kann auf mehreren Domains platziert werden – aber es wird nicht empfohlen. Tags und Trigger, die für die URL-Struktur einer Domain konfiguriert wurden, liefern auf einer anderen Domain unzuverlässige Daten. Der richtige Ansatz ist, einen separaten Container pro Domain zu erstellen und bei Bedarf die Cross-Domain-Tracking-Konfiguration in GA4 zu verwenden, wenn Sie Nutzerreisen über beide Domains hinweg verfolgen möchten.
Warum wird mein GTM-Container nicht ausgelöst, obwohl das Snippet installiert ist?
Die häufigsten Ursachen sind: eine Content Security Policy, die www.googletagmanager.com blockiert, das Snippet befindet sich in einem bedingten Kommentar oder einem asynchron geladenen Template-Fragment, ein WordPress-Caching-Plugin liefert eine gecachte Seite, die erstellt wurde, bevor das Snippet hinzugefügt wurde, oder der Container hat keine veröffentlichte Version. Überprüfen Sie die Browser-Konsole auf CSP-Verstöße und verwenden Sie den GTM-Vorschaumodus, um das Problem zu isolieren.
Was ist der Unterschied zwischen dem GTM-Vorschaumodus und Tag Assistant?
Der GTM-Vorschaumodus ist eine integrierte GTM-Funktion, die eine Debug-Sitzung direkt mit Ihrem Container verbindet und Echtzeit-Tag-Auslösungen, Trigger-Auswertungen und den dataLayer-Status für Ihre spezifische Browser-Sitzung anzeigt. Tag Assistant ist eine Chrome-Erweiterung, die eine leichtgewichtigere Überlagerung bietet, die zeigt, welche Google-Tags (GTM, GA4, Ads) auf einer Seite erkannt werden, und grundlegende Implementierungsfehler markiert. Für tiefes Debugging ist der Vorschaumodus maßgeblich; Tag Assistant ist nützlich für schnelle oberflächliche Prüfungen.
Beeinflusst Google Tag Manager die Website-Performance oder Seitenladegeschwindigkeit?
Das GTM-Snippet selbst wird asynchron geladen, sodass es das HTML-Parsing oder render-blockierende Ressourcen nicht blockiert. Die von GTM ausgelösten Tags – insbesondere synchrone benutzerdefinierte HTML-Tags oder schwere Drittanbieter-Skripte – können jedoch die Seitenladezeit erheblich beeinflussen. Überprüfen Sie die Tags Ihres Containers regelmäßig, nutzen Sie GTMs integrierte Tag-Auslösungspriorität und Sequenzierungssteuerungen, und erwägen Sie serverseitiges GTM für Websites mit hohem Traffic, bei denen der clientseitige Skript-Overhead ein messbares Problem darstellt.
