---
title: "Academy App"
canonical_url: "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2"
locale: de
meta:
  "og:title": "Academy App"
---

[Zur Startseite](https://academy.laioutr.com/)

- [Apps](https://academy.laioutr.com/bereiche/apps)

- [Tracking und Consent](https://academy.laioutr.com/leitfaeden/tracking-und-consent-apps)

- [Google Tag Manager mit Consent Mode v2 einbinden](https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2)

# Google Tag Manager mit Consent Mode v2 einbinden

Die App Google Tag Manager lädt den GTM-Container in die Storefront, setzt alle Consent-Signale vorab auf „denied“ und gibt sie erst nach der Entscheidung der Besucher frei. Storefront-Events landen nach Zustimmung zu Analytics mit GA4-Namen im Data Layer.

## Bevor du startest

<dl>

<dt>Tarif</dt>
<dd>Jede Laioutr-Lizenz; Google-Tag-Manager-Konto</dd>

<dt>Rolle</dt>
<dd>Developer-Rolle in der Umgebung, um Einstellungen in Configuration zu speichern</dd>

<dt>Dauer</dt>
<dd>8 Min.</dd></dl>

### Voraussetzungen

- GTM-Container und dessen ID (GTM-XXXXXX)
- Consent-App wie Cookiebot oder CCM19
- Tags und Trigger im GTM-Container, etwa für GA4

Zuletzt geprüft am 15. Oktober 2026

Lädt den Google-Tag-Manager-Container, setzt Google Consent Mode v2 vorab auf „denied“, sendet nach der Entscheidung der Besucher ein vollständiges Update und übergibt Storefront-Events mit GA4-Namen an das Data Layer.

[Entwicklerdokumentation](https://docs.laioutr.com/apps/app-docs/gtm)

## So funktioniert es

1. Container anlegen und ID kopierenWo: Google Tag Manager · Rolle: Marketing oder Developer · Dauer: 10 min
2. Consent-App installieren und konfigurierenWo: Cockpit, Apps und Configuration · Rolle: Developer · Dauer: 10 min
3. GTM-App installierenWo: Cockpit, Apps · Rolle: Developer · Dauer: 2 min
4. containerId und optionale Werte eintragen, speichernWo: Cockpit, Configuration · Rolle: Developer · Dauer: 3 min
5. Deployment startenWo: Cockpit, Deployments · Rolle: Developer · Dauer: 5 min
6. Tags und Trigger anlegen, mit Vorschau testenWo: Google Tag Manager · Rolle: Marketing · Dauer: 30 min

## Konfiguration

| Feld | Zweck | Woher | Pflicht | Pro Environment |
| --- | --- | --- | --- | --- |
| `containerId` | ID des GTM-Containers. Eine einzelne ID gilt für alle Märkte, eine Zuordnung von Markt-ID zu Container-ID vergibt je Markt einen eigenen Container. | Google Tag Manager, Container-Übersicht (Format GTM-XXXXXX) | Ja | Ja |
| `layer` | Name der Data-Layer-Variable im Browser. | Standardwert dataLayer, nur bei eigenem Namen im GTM-Setup ändern. | Nein | Ja |
| `consentUpdates` | Legt fest, wer Consent-Updates an Google sendet: store (Standard, die App auf Basis der Consent-App) oder external (die Consent-App selbst). | Entscheidung im Projekt, abhängig von der Consent-App | Nein | Ja |

## Häufige Fehler

<dl>

<dt>Tags feuern nicht, auch nach Zustimmung.</dt>
<dd>**Ursache:** Keine Consent-App aktiv, daher bleibt der Standard „denied“ bestehen.</dd>
<dd>**Lösung:** Cookiebot oder CCM19 installieren, konfigurieren und neu deployen.</dd>

<dt>Events wie add_to_cart fehlen im Data Layer.</dt>
<dd>**Ursache:** Der Zweck Analytics ist nicht erlaubt oder der Data-Layer-Name in layer weicht vom GTM-Setup ab.</dd>
<dd>**Lösung:** Mit Zustimmung zu Statistik testen und layer an den Namen im GTM-Setup anpassen.</dd>

<dt>Consent-Updates kommen doppelt an.</dt>
<dd>**Ursache:** Consent-App und GTM-App senden beide Consent Mode.</dd>
<dd>**Lösung:** consentUpdates auf external stellen oder Consent Mode in der Consent-App deaktivieren.</dd>

<dt>In einem Markt lädt kein Container.</dt>
<dd>**Ursache:** containerId ist als Zuordnung je Markt gesetzt, der Markt fehlt darin.</dd>
<dd>**Lösung:** Markt-ID mit Container-ID ergänzen, speichern und neu deployen.</dd></dl>

Die App **Google Tag Manager** (Paket `@laioutr-app/gtm`) bindet einen GTM-Container in die Storefront ein. Die App erledigt drei Dinge: Ganz am Anfang jeder Seite setzt die App Google Consent Mode v2 auf „denied“ für alle zustimmungspflichtigen Signale, nur `security_storage` ist erlaubt. Danach lädt die App den Container. Sobald Besucher im Banner entschieden haben, sendet die App genau ein vollständiges Consent-Update, auch bei einem Widerruf.

Außerdem ist die App ein Ziel für das Tracking von Laioutr. Events aus Komponenten und Apps erhalten GA4-Namen, aus `ecommerce/add_to_cart` wird `add_to_cart`. Beträge werden in Hauptwährungseinheiten umgerechnet, Kategorien auf `item_category` bis `item_category5` verteilt. Ins Data Layer gelangt erst etwas, wenn der Zweck Analytics erlaubt ist.

Ohne Consent-App bleibt alles auf „denied“. Tags, Trigger und Variablen werden weiter im GTM-Container gepflegt. Serverseitiges Tracking ist ein eigenes Add-on und nicht Teil dieser App.

## Schritt für Schritt

1. 1 ### Schritt 1: Container-ID notieren

   In Google Tag Manager den Container öffnen und die ID im Format `GTM-XXXXXX` kopieren.
2. 2 ### Schritt 2: Consent-App bereitstellen

   Cookiebot oder CCM19 installieren und konfigurieren. Ohne Consent-App bleiben alle Signale auf „denied“.
3. 3 ### Schritt 3: App installieren

   Im Projekt **Apps** öffnen, Google Tag Manager im Tab **Tracking** suchen und **Install** wählen.
4. 4 ### Schritt 4: Einstellungen eintragen

   In **Configuration** die `containerId` eintragen. `layer` nur bei einem eigenen Data-Layer-Namen ändern, `consentUpdates` auf `external` stellen, wenn die Consent-App Consent Mode selbst sendet. **Save settings** wählen.
5. 5 ### Schritt 5: Deployment starten

   Unter **Deployments** mit **Deploy** ein neues Deployment starten.
6. 6 ### Schritt 6: Mit GTM-Vorschau testen

   Den Vorschaumodus von Google Tag Manager mit der Storefront verbinden, im Banner zustimmen und prüfen, ob Consent-Update und Events wie `add_to_cart` ankommen.

## Ergebnis prüfen

In der GTM-Vorschau zeigt der erste Eintrag den Consent-Standard mit „denied“. Nach der Zustimmung folgt ein Consent-Update mit „granted“ für die erlaubten Signale. Ein Klick auf „In den Warenkorb“ erzeugt das Event `add_to_cart` mit Artikeldaten im Data Layer.

## Häufige Fragen

Braucht die App ein Consent-Banner?

Ja. Erst eine Consent-App wie Cookiebot oder CCM19 meldet die Entscheidung der Besucher. Ohne sie bleiben alle Signale auf „denied“ und keine Tags speichern Daten.

Kann jeder Markt einen eigenen Container haben?

Ja. `containerId` nimmt statt einer einzelnen ID auch eine Zuordnung von Markt-ID zu Container-ID an. Märkte ohne Eintrag erhalten keinen Container.

Wann wird consentUpdates auf external gestellt?

Wenn die Consent-App Google Consent Mode selbst sendet. So senden nicht zwei Quellen Updates für dieselben Signale. Der Standard „denied“ am Seitenanfang bleibt in beiden Fällen bei der App.

Ist serverseitiges Tracking enthalten?

Nein. Die App arbeitet im Browser. Serverseitiges Tracking ist das Add-on Server Side Tracking.

## Passend dazu

- [Tracking einrichten: Google Tag Manager anbinden](https://academy.laioutr.com/artikel/tracking-einrichten-google-tag-manager-anbinden)10 Min.

  Für das Tracking installiert das Team eine Consent-App und die App Google Tag Manager, trägt die Container-ID je Umgebung ein und deployt. Danach landen die Ereignisse der Storefront mit GA4-Namen im Data Layer, sobald der Besucher der Statistik zugestimmt hat.
- [Tracking und Consent in den Komponenten](https://academy.laioutr.com/artikel/tracking-und-consent-in-den-komponenten)6 Min.

  Die Komponenten von Laioutr senden Ereignisse wie Seitenaufruf, Produktansicht, In-den-Warenkorb und Kauf über eine einheitliche Analytics-Schicht. Jedes Ereignis erreicht nur die Ziele, für die der Besucher seine Einwilligung gegeben hat.
- [Consent-Banner mit Cookiebot oder CCM19 einrichten](https://academy.laioutr.com/artikel/consent-banner-mit-cookiebot-oder-ccm19-einrichten)10 Min.

  Laioutr bindet Cookiebot oder CCM19 als Consent-App an. Nach Installation und Eintrag der Kennungen zeigt die Storefront den Banner, und alle Tracking-Ziele sowie Google Consent Mode v2 folgen automatisch der Entscheidung des Besuchers.
- [Cookiebot als Consent-Banner einrichten](https://academy.laioutr.com/apps/cookiebot-consent-banner-einrichten)7 Min.

  Die App Cookiebot zeigt das Cookiebot-Banner in der Storefront und meldet die Entscheidung der Besucher an den Consent-Speicher von Laioutr, nach dem sich Tracking, GTM und andere Apps richten. Nötig ist nur die Cookiebot-Domaingruppen-ID (CBID).

## [Tracking und Consent](https://academy.laioutr.com/leitfaeden/tracking-und-consent-apps)

In diesem Leitfaden suchen

1. [Google Tag Manager mit Consent Mode v2 einbinden](https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2)8 Min.
2. [Cookiebot als Consent-Banner einrichten](https://academy.laioutr.com/apps/cookiebot-consent-banner-einrichten)7 Min.
3. [CCM19 als Consent-Banner einrichten](https://academy.laioutr.com/apps/ccm19-consent-banner-einrichten)8 Min.

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://academy.laioutr.com/#website",
      "@type": "WebSite",
      "inLanguage": "de",
      "name": "Default",
      "url": "https://academy.laioutr.com/",
      "workTranslation": {
        "@id": "https://academy.laioutr.com/#website"
      }
    },
    {
      "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#webpage",
      "name": "Academy App",
      "url": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2",
      "@type": [
        "WebPage",
        "FAQPage"
      ],
      "breadcrumb": {
        "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#breadcrumb"
      },
      "isPartOf": {
        "@id": "https://academy.laioutr.com/#website"
      },
      "mainEntity": [
        {
          "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/1"
        },
        {
          "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/2"
        },
        {
          "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/3"
        },
        {
          "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/4"
        }
      ],
      "potentialAction": [
        {
          "@type": "ReadAction",
          "target": [
            "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2"
          ]
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#breadcrumb",
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "name": "Home",
          "item": "https://academy.laioutr.com/",
          "position": 1
        },
        {
          "@type": "ListItem",
          "name": "Apps",
          "item": "https://academy.laioutr.com/bereiche/apps",
          "position": 2
        },
        {
          "@type": "ListItem",
          "name": "Tracking und Consent",
          "item": "https://academy.laioutr.com/leitfaeden/tracking-und-consent-apps",
          "position": 3
        },
        {
          "@type": "ListItem",
          "name": "Google Tag Manager mit Consent Mode v2 einbinden",
          "item": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2",
          "position": 4
        }
      ]
    },
    {
      "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/1",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Braucht die App ein Consent-Banner?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Ja. Erst eine Consent-App wie Cookiebot oder CCM19 meldet die Entscheidung der Besucher. Ohne sie bleiben alle Signale auf „denied“ und keine Tags speichern Daten.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/2",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Kann jeder Markt einen eigenen Container haben?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Ja. <code>containerId</code> nimmt statt einer einzelnen ID auch eine Zuordnung von Markt-ID zu Container-ID an. Märkte ohne Eintrag erhalten keinen Container.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/3",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Wann wird consentUpdates auf external gestellt?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Wenn die Consent-App Google Consent Mode selbst sendet. So senden nicht zwei Quellen Updates für dieselben Signale. Der Standard „denied“ am Seitenanfang bleibt in beiden Fällen bei der App.</p>"
      }
    },
    {
      "@id": "https://academy.laioutr.com/apps/google-tag-manager-mit-consent-mode-v2#/schema/question/4",
      "@type": "Question",
      "inLanguage": "de",
      "name": "Ist serverseitiges Tracking enthalten?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "<p>Nein. Die App arbeitet im Browser. Serverseitiges Tracking ist das Add-on Server Side Tracking.</p>"
      }
    }
  ]
}
```
