# FlowConsent mit Google Tag Manager nutzen

FlowConsent mit Google Tag Manager: Code im <head> oberhalb des GTM-Containers einfügen, nie als GTM-Tag, dann die Einwilligungsprüfungen der Tags einstellen.

> Canonical: https://www.flowconsent.com/de/doc/install-google-tag-manager
> Last updated: 2026-10-01
Mit Google Tag Manager gehört der FlowConsent-Code in den `<head>` Ihrer Website, **oberhalb des GTM-Snippets**, und nie als Tag in GTM: Aus dem Container geladen, käme das Banner zu spät für das vorherige Blockieren. Die Einrichtung umfasst zwei Schritte: den Code vor GTM platzieren und dann prüfen, dass jedes Tag in Ihrem Container die Einwilligung respektiert (automatisch bei Google-Tags, bei allen anderen per Einstellung).

## Bevor Sie beginnen

- Ein Konto auf [app.flowconsent.com](https://app.flowconsent.com) (der Free-Tarif ist kostenlos, ohne Kreditkarte, bis zu 25.000 Sitzungen pro Monat).
- Ein erstelltes und bereitgestelltes Banner. Im Free-Tarif läuft die Bereitstellung über Ihr eigenes Cloudflare-Konto ([Cloudflare-Anleitung](/de/doc/cloudflare-deployment)), bei Pro und Enterprise genügt ein Klick.
- Bearbeitungszugriff auf den `<head>`-Code Ihrer Website und auf Ihren GTM-Container.

## Schritt 1: Code oberhalb des GTM-Snippets einfügen

Kopieren Sie Ihren Code aus **Builder → Deployment → Integration** (Tab **HTML / No-code**). Fügen Sie ihn **direkt nach dem öffnenden `<head>`-Tag** ein und lassen Sie das Snippet `<!-- Google Tag Manager -->` darunter:

```html title="<head> Ihrer Website"
<head>
  <script>
  // FlowConsent Loader - VOR jedem anderen Script im <head> platzieren
  window.dataLayer=window.dataLayer||[];
  function gtag(){dataLayer.push(arguments);}
  gtag('consent','default',{
    'ad_storage':'denied',
    'analytics_storage':'denied',
    'ad_user_data':'denied',
    'ad_personalization':'denied',
    'wait_for_update':500
  });
  gtag('set','url_passthrough',true);
  gtag('set','ads_data_redaction',true);
  </script>
  <!-- FlowConsent CMP -->
  <script src="https://IHR-LIZENZCODE.consent.flowconsent.com/cookie-manager.js?code=IHR_LIZENZCODE"></script>

  <!-- Google Tag Manager -->
  <script>(function(w,d,s,l,i){ /* von GTM bereitgestellter Code */ })(window,document,'script','dataLayer','GTM-XXXXXXX');</script>
  <!-- End Google Tag Manager -->

  <!-- der Rest Ihres <head> -->
</head>
```

Der Consent-Mode-Stub schreibt die Standardwerte `denied` in den `dataLayer`, bevor GTM startet: Der Container liest sie beim Laden, und jedes Google-Tag läuft im abgelehnten Modus, bis der Besucher entschieden hat. Sobald er sich entscheidet, sendet das Banner `gtag('consent', 'update', …)` und GTM übernimmt den neuen Status. Eine Vorlage aus der GTM-Galerie ist nicht nötig.

Das zweite GTM-Snippet (ein `<noscript>` mit `<iframe>` direkt nach `<body>`) bleibt an seiner üblichen Stelle.

## Warum FlowConsent nicht über GTM laden

> [!WARNING]
> Legen Sie kein Tag vom Typ **Benutzerdefiniertes HTML** an, um FlowConsent zu laden. Der GTM-Container wird asynchron geladen: Alles, was er einfügt, kommt erst nach dem Parsen des HTML. Der GTM-Trigger zur **Initialisierung der Einwilligung** (Alle Seiten) sorgt für die Reihenfolge innerhalb des Containers, aber nicht darüber hinaus: Skripte, die direkt in der Seite stehen oder von einem Plugin eingefügt werden, laufen ohne zu warten. Das vorherige Blockieren verlangt, dass FlowConsent vor jedem Tracker läuft, also im HTML, oberhalb von GTM.

Dasselbe gilt, wenn GTM über ein Plugin oder eine native Integration eingebunden wird (ein Feld „GTM-Container-ID“ in einem CMS): Landet dieser Code oberhalb Ihres FlowConsent-Codes, entfernen Sie die ID aus diesen Einstellungen und fügen Sie das GTM-Snippet selbst ein, unterhalb von FlowConsent. Falls Sie die Variable `dataLayer` im GTM-Snippet umbenannt haben, setzen Sie sie wieder auf `dataLayer`: Diesen Namen verwendet der Stub.

## Schritt 2: Einwilligung der Tags in GTM einstellen

Öffnen Sie in einem Tag **Erweiterte Einstellungen → Einstellungen zur Nutzereinwilligung**. Dort finden Sie zwei Bereiche.

**Integrierte Einwilligungsprüfungen.** Google-Tags (Google-Tag, GA4, Google Ads, Floodlight) lesen die von FlowConsent gesendeten Consent-Mode-v2-Signale selbst aus. Hier ist nichts einzustellen: Bei Ablehnung wechseln sie in den cookielosen Modus (Pings mit `gcs=G100`, siehe die [Anleitung zu Google Consent Mode](/de/doc/google-consent-mode)).

**Checks auf zusätzliche Einwilligung.** Tags anderer Anbieter (Meta Pixel, LinkedIn, Hotjar, benutzerdefiniertes HTML…) haben keine integrierte Prüfung. Wählen Sie **Zusätzliche Einwilligung zur Auslösung des Tags erforderlich**, klicken Sie auf **+ Erforderliche Einwilligung hinzufügen** und tragen Sie das passende Signal ein, etwa `ad_storage` für ein Werbe-Pixel oder `analytics_storage` für ein Analyse-Tool. Das Tag wird dann nur ausgelöst, wenn diese Signale zum Zeitpunkt seines Triggers erteilt sind.

> [!TIP]
> Die GTM-Seite **Einwilligungsübersicht** teilt Ihre Tags in zwei Gruppen ein, Einwilligung konfiguriert oder nicht: So geht keines verloren. Ein Tag mit **Keine Festlegung** wird ohne zusätzliche Prüfung ausgelöst.

## Installation prüfen

1. Klicken Sie in GTM auf **Vorschau**: Tag Assistant öffnet sich auf Ihrer Website. Wählen Sie ein Google-Tag und dann den Tab **Consent**: Die Spalte **On-page Default** muss für alle vier Signale `Denied` anzeigen. Nach einem Klick auf **Akzeptieren** wechselt die Spalte **On-page Update** auf `Granted`.
2. Im privaten Fenster erscheint das Banner, und der Tab **Netzwerk** zeigt vor dem Akzeptieren keine Anfrage an Drittanbieter (außer Google-Pings mit `gcs=G100`, die mit der Ablehnung konform sind).
3. Starten Sie den [Einrichtungsassistenten](/de/doc/setup-wizard) (Builder → Integration): Er prüft, dass der Loader mit dem richtigen Lizenzcode vorhanden ist, dass der Stub vorhanden ist und vor jedem Google-Tag steht, GTM eingeschlossen.
4. Schließen Sie mit einem Ablehnungs-Scan aus dem Tab **Compliance** ab ([Konformitätsprüfung](/de/doc/compliance-verification)).

## Mit Ihrem KI-Agenten erledigen (MCP)

FlowConsent bietet einen offiziellen MCP-Server, `https://mcp.flowconsent.com`, nutzbar mit Claude, ChatGPT oder jedem MCP-Client. Die Verbindung erfolgt per OAuth 2.0 mit Ihrem FlowConsent-Konto, ohne API-Schlüssel. Ihr Agent holt den Code und die Platzierungsanweisungen (`get_banner_snippet`, `get_setup_instructions`), prüft die Installation mit einem echten Scan (`verify_consent_compliance`) und kann eine wiederkehrende Überwachung einrichten (`monitor_compliance`). Er ändert weder Ihre Website noch Ihren GTM-Container: Er liefert den Code, die Anweisungen und die Prüfung.

Beispielanfrage:

> Gib mir den Code meines Banners für meine Website mit Google Tag Manager, sag mir, wo er im Verhältnis zum GTM-Snippet hingehört, und prüfe dann, ob er auf https://meinewebsite.de korrekt installiert ist

Mehr dazu: [MCP-Server](/de/doc/mcp-server) und [FlowConsent für KI-Agenten](/de/mcp).

## Häufige Fragen

### Kann ich FlowConsent ausschließlich über ein GTM-Tag installieren?

Nein. Ein über GTM geladenes Banner kommt nach dem HTML der Seite, Skripte außerhalb von GTM würden also nicht rechtzeitig blockiert. Der Code muss im `<head>` oberhalb des GTM-Snippets stehen.

### Muss ich in GTM etwas für GA4 oder Google Ads einstellen?

Nein. Ihre integrierten Einwilligungsprüfungen lesen die Consent-Mode-v2-Signale von FlowConsent. Nur Tags anderer Anbieter brauchen eine zusätzliche Einwilligung.

### Mein Meta Pixel in GTM wird nach einer Ablehnung trotzdem ausgelöst: Warum?

Sein Tag steht vermutlich auf **Keine Festlegung**. Stellen Sie es auf **Zusätzliche Einwilligung zur Auslösung des Tags erforderlich** mit `ad_storage` um, veröffentlichen Sie den Container und starten Sie erneut einen Ablehnungs-Scan.

### Brauche ich eine FlowConsent-Vorlage aus der Community-Vorlagengalerie von GTM?

Nein. Der Stub im Code setzt die Standardwerte, und das Banner sendet die Aktualisierung der Einwilligung selbst: GTM benötigt keine zusätzliche Vorlage.
