> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dreizack-medien.de/llms.txt
> Use this file to discover all available pages before exploring further.

# Consent & Tracking einrichten

> So arbeiten Consent-Banner, Google Tag Manager, Analyse- und Werbe-Tools in NIU Plus zusammen – inklusive Kopplung der Google-Schalter, Webstollen EU Cookie und Test-Modi.

Ab dieser Version läuft das Tracking in NIU Plus nach einem einheitlichen Prinzip: **DZM Resources** erzeugt jedes E-Commerce-Event einmal zentral nach dem Standard von Google Analytics 4. Jeder Dienst – Google Tag Manager, Microsoft Clarity, PostHog, Meta Pixel, TikTok Pixel – wird erst geladen und bekommt erst Events, wenn der Besucher ihm im Consent-Banner zugestimmt hat.

<Warning>
  **Disclaimer:** Bitte prüfe dein Setup sorgfältig. Passe die Sprachvariablen für die Consent Items an, ergänze deine Datenschutzerklärung und lass beides rechtlich prüfen. Die Nutzung unterliegt der eigenen Verantwortung und Sorgfalt.
</Warning>

***

## Voraussetzungen

<Steps>
  <Step title="DZM Resources aktuell halten">
    NIU Plus benötigt **DZM Resources ab Version 1.12.0**. Ist eine ältere Version installiert, zeigt das NIU-Plus-Backend einen Setup-Hinweis.
  </Step>

  <Step title="Template und Companion zusammen aktualisieren">
    Das Template NIU Plus und der NIU-Plus-Companion müssen dieselbe Version haben. Ist das Template älter, zeigt das Backend „NIUplus aktualisieren, Tracking ist bis dahin aus“ und es laden keine Tracking-Dienste. Ein neues Template mit älterem Companion lädt ebenfalls keine Tracking-Dienste.
  </Step>

  <Step title="Consent Manager aktivieren">
    Aktiviere im JTL-Backend unter **Einstellungen → Consent Manager** den Consent Manager. Ohne aktiven Consent Manager gilt für jeden Dienst „keine Einwilligung“ – es wird dann nichts geladen.
  </Step>

  <Step title="Dienste einschalten">
    Schalte im NIU-Plus-Backend unter [GTM](/NIU-Plus/gtm) und [Tracking](/NIU-Plus/tracking) die Dienste ein, die du nutzen willst, und hinterlege die IDs.
  </Step>

  <Step title="Texte prüfen">
    Passe die Sprachvariablen der Consent Items an (Beschreibung, Zweck, Datenschutz-Link, Unternehmen) und ergänze deine Datenschutzerklärung.
  </Step>
</Steps>

***

## Consent Items

Für jeden aktiven Dienst erscheint ein eigener Eintrag im Consent-Banner. Nicht aktive Dienste erscheinen nicht.

| Dienst | Consent Item | Erscheint, wenn |
| - | - | - |
| Google Tag Manager | `niu_gtm` | GTM eingebunden und Container-ID gesetzt |
| Google Analytics 4 | `niu_ga4` | GTM eingebunden und „Consent für GA4 einholen“ aktiv |
| Google Ads | `niu_ads` | GTM eingebunden und „Consent für Google Ads einholen“ aktiv |
| PostHog | `niu_posthog` | PostHog aktiv und API Key gesetzt |
| Microsoft Clarity | `niu_clarity` | Clarity aktiv und Projekt-ID gesetzt |
| Meta Pixel | `niu_metapixel` | Meta Pixel aktiv und Pixel-ID gesetzt |
| TikTok Pixel | `niu_tiktokpixel` | TikTok Pixel aktiv und Pixel-ID gesetzt |

<Info>
  Erteilt der Besucher seine Einwilligung erst nach ein paar Sekunden, bekommt der Dienst die Events der aktuellen Seite nachgereicht. Hat er einen Dienst ausdrücklich abgelehnt, werden Events aus dieser Zeit auch nach einer späteren Einwilligung nicht nachgereicht.
</Info>

### Widerruf

Widerruft ein Besucher seine Einwilligung (über das Schild-Symbol bzw. die Consent-Einstellungen), bekommt der Dienst sofort keine Events mehr und wird – soweit der Anbieter das vorsieht – angewiesen, nicht weiter zu erfassen (Google Consent Mode „denied“, Meta `revoke`, TikTok `revokeConsent`, PostHog `opt_out`, Clarity `consentv2 denied`). Das gilt auch für weitere geöffnete Tabs deines Shops. Ein bereits geladenes Script lässt sich technisch nicht entladen; mit dem nächsten Seitenaufruf wird es nicht mehr geladen.

***

## Kopplung der Google-Schalter

Google Analytics 4 und Google Ads laufen über den Google Tag Manager. Deshalb sind die Schalter im Consent-Banner gekoppelt:

* Wer **Google Analytics 4** oder **Google Ads** erlaubt, erlaubt automatisch auch den **Google Tag Manager**.
* Wird der **Google Tag Manager** abgelehnt, sind auch **Google Analytics 4** und **Google Ads** aus.

Die Beschreibungen von GA4 und Google Ads im Banner enthalten dazu den Hinweis „Setzt den Google Tag Manager voraus“ (Sprachvariable `niu_consent_requires_gtm`).

Die Kopplung gilt für den Banner von NIU Plus. Mit Webstollen EU Cookie richtest du sie selbst ein, siehe [Google Tag Manager unter EU Cookie](#google-tag-manager-unter-eu-cookie).

***

## Consent Mode: Basic oder Advanced

| | Basic (empfohlen) | Advanced |
| - | - | - |
| Tag Manager lädt | nach Einwilligung in GTM **und** GA4 oder Google Ads | sofort |
| Anfrage an Google vor Einwilligung | keine | ja, mit Consent „verweigert“ (ohne Cookies) |
| E-Commerce-Events | nach Einwilligung | sofort, Google modelliert fehlende Conversions |
| Rechtliche Einordnung | unkritisch | umstritten, Betreiberentscheidung |

Wer den Consent Mode an Google meldet – NIU Plus oder dein Consent-Manager-Plugin –, stellst du unter [GTM → Consent](/NIU-Plus/gtm#consent) ein. Es darf immer nur **eine** Quelle sein.

***

## Enhanced Conversions

Gehashte Kundendaten (`user_data`) für Google Ads und GA4 stehen nie im Quelltext. Der Tag Manager holt sie nur ab, wenn der Besucher **Google Ads** erlaubt hat – bei einer Bestellung bevor das `purchase`-Event folgt, bei eingeloggten Kunden optional auf jeder Seite. Details und Einstellungen: [GTM → Enhanced Conversions](/NIU-Plus/gtm#enhanced-conversions).

***

## Webstollen EU Cookie (ws5)

Nutzt du das Plugin **EU Cookie** von Webstollen, ersetzt dessen Banner den JTL-Banner. NIU Plus liest die Einwilligungen dann aus EU Cookie. Damit das klappt, müssen die `niu_*`-Einträge in EU Cookie mit Diensten verbunden sein.

<Steps>
  <Step title="Dienst öffnen">
    Öffne in EU Cookie den Dienst, unter dem der Besucher zustimmen soll (z. B. „Google Analytics“).
  </Step>

  <Step title="JTL-Einträge verbinden">
    Aktiviere die **JTL Consent Manager Integration für diesen Dienst** und füge unter **Verknüpfte JTL Consent Manager Einträge** über „Neue JTL Consent Id mit diesem Dienst verbinden…“ den passenden `niu_*`-Eintrag hinzu.
  </Step>

  <Step title="Für alle aktiven Dienste wiederholen">
    Jeder in NIU Plus aktive Dienst braucht eine Verbindung. Einzige Ausnahme ist der Google Tag Manager, siehe unten.
  </Step>
</Steps>

Empfohlene Zuordnung:

| EU-Cookie-Dienst | Kategorie | Verknüpfter JTL-Eintrag |
| - | - | - |
| Google Analytics | Analytics | `niu_ga4` |
| Google Ads | Marketing | `niu_ads` |
| Google Tag Manager | – | kein eigener Dienst (Variante A) oder `niu_gtm` (Variante B) |
| PostHog | Analytics | `niu_posthog` |
| Microsoft Clarity | Analytics | `niu_clarity` |
| Meta Pixel | Marketing | `niu_metapixel` |
| TikTok Pixel | Marketing | `niu_tiktokpixel` |

<Note>
  EU Cookie wertet einen Dienst nur dann als erlaubt, wenn **alle** mit ihm verknüpften JTL-Einträge aktiv sind. Verknüpfe deshalb pro Dienst nur einen `niu_*`-Eintrag.
</Note>

### Google Tag Manager unter EU Cookie

EU Cookie kennt die [Kopplung der Google-Schalter](#kopplung-der-google-schalter) aus dem NIU-Plus-Banner nicht. Im Consent Mode **Basic** lädt der Tag Manager aber nur, wenn GTM **und** GA4 oder Google Ads erlaubt sind. Entscheide dich deshalb für eine der beiden Varianten:

<Tabs>
  <Tab title="A: ohne eigenen Dienst (empfohlen)">
    **Wann:** Dein Container enthält nur die Google-Tags (GA4, Google Ads).

    **Einrichtung:** Lege in EU Cookie **keinen** Dienst für den Google Tag Manager an bzw. deaktiviere ihn, und verknüpfe `niu_gtm` mit keinem Dienst. Ergänze in den Beschreibungen von „Google Analytics“ und „Google Ads“, dass sie über den Google Tag Manager geladen werden.

    **Verhalten:** NIU Plus erteilt `niu_gtm` automatisch, sobald der Besucher einen Dienst der Kategorie Analytics oder Marketing erlaubt. Geladen wird der Tag Manager trotzdem erst, wenn GA4 oder Google Ads erlaubt ist. Erlaubt der Besucher nur Google Analytics, laufen Tag Manager und GA4.
  </Tab>

  <Tab title="B: als eigener Dienst">
    **Wann:** Dein Container lädt neben GA4 und Google Ads weitere Tools, und du willst den Tag Manager im Banner einzeln ausweisen.

    **Einrichtung:** Lege einen Dienst „Google Tag Manager“ an, am besten in derselben Kategorie wie Google Analytics, und verknüpfe ihn mit `niu_gtm`. Ergänze in den Beschreibungen von „Google Analytics“ und „Google Ads“, dass sie den Google Tag Manager voraussetzen.

    **Verhalten:** Der Besucher muss den Tag Manager **und** Google Analytics oder Google Ads erlauben. Erlaubt er nur Google Analytics, lädt nichts. Wer die ganze Kategorie erlaubt, erlaubt beide gemeinsam.
  </Tab>
</Tabs>

Im Consent Mode **Advanced** lädt der Tag Manager immer sofort, die Variante spielt dann keine Rolle.

<Warning>
  **Alle anderen Dienste immer verknüpfen.** Ohne Verknüpfung greift für einen `niu_*`-Eintrag eine Ersatzregel über die Kategorie: Er gilt als erlaubt, sobald der Besucher **irgendeinen** Dienst dieser Kategorie erlaubt (Analytics → GA4, PostHog, Clarity; Marketing → Google Ads, Meta Pixel, TikTok Pixel). Wer dann nur Google Analytics erlaubt, hätte damit auch PostHog und Clarity erlaubt. Nur beim Google Tag Manager ist das gewollt (Variante A), weil er zusätzlich GA4 oder Google Ads voraussetzt.
</Warning>

<Warning>
  **EU Cookie ab Version 2.6 mit Google Consent Mode:** Sind in EU Cookie der Google Consent Mode und die Consent-Mode-Events aktiv, setzt EU Cookie den Consent Mode (Ausgangszustand und Updates) selbst. Stelle dann unter [GTM → Consent](/NIU-Plus/gtm#consent) „Consent Mode wird gesetzt von“ auf **Consent-Manager-Plugin** – sonst melden zwei Quellen den Consent Mode an Google.
</Warning>

***

## Testen

Zum Prüfen deines Setups musst du keine Einwilligung umgehen. In **DZM Resources** gibt es dafür Test-Modi:

<AccordionGroup>
  <Accordion title="Admin-Debug">
    Als eingeloggter Backend-Admin siehst du im Frontend alle Events in der Browser-Konsole bzw. einem Overlay – auf Wunsch „trocken“, also ohne dass etwas an die Dienste gesendet wird.
  </Accordion>

  <Accordion title="Test-Link">
    Du erzeugst im Backend einen Test-Link mit Ablaufdatum. Nur der Browser, der den Link geöffnet hat, gilt als Tester – für alle anderen Besucher bleibt der Consent unverändert.
  </Accordion>

  <Accordion title="Globaler Test-Modus">
    Übergeht den Consent für **alle** Besucher und läuft automatisch ab. Nur zu Testzwecken und auf eigene Verantwortung – ohne passenden rechtlichen Rahmen ist das eine Datenschutzverletzung.
  </Accordion>
</AccordionGroup>

<Info>
  Die früheren „Dev Mode“-Schalter bei GTM, Clarity, PostHog, Meta und TikTok sind entfallen.
</Info>

***

## Ausblick

<Steps>
  <Step title="Jetzt: Event-Core und Consent">
    Einheitliche E-Commerce-Events, Laden erst nach Einwilligung, Google Consent Mode v2, Enhanced Conversions ohne Daten im Quelltext, Clarity, PostHog, Meta und TikTok, Webstollen EU Cookie.
  </Step>

  <Step title="Geplant: Interne Auswertung">
    Kennzahlen wie Conversion Rate und Checkout-Trichter direkt im Shop-Backend.
  </Step>

  <Step title="Geplant: Server-Side-Tracking">
    Übertragung von Bestellungen direkt vom Server (Google Measurement Protocol, Meta Conversions API, TikTok Events API) – auch wenn der Käufer nach der Zahlung nicht in den Shop zurückkehrt.
  </Step>
</Steps>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.