# Cookie-Banner und Einwilligung für das Chat-Widget

> Was das Widget speichert, bevor ein Besucher es öffnet, und wie du es mit Cookiebot, Usercentrics, Borlabs Cookie oder deinem eigenen Banner verbindest.

Standardmäßig speichert das Chat-Widget nichts im Browser des Besuchers und startet keine Sitzung, bis der Besucher den Chat öffnet. Das Öffnen ist eine ausdrückliche Anfrage des Besuchers. In den meisten Fällen brauchst du für asktrix deshalb gar keinen Eintrag im Cookie-Banner.

Soll der Chat schon vorher laufen, zum Beispiel für proaktive Nachrichten, verbindest du das Widget wie unten beschrieben mit deinem Cookie-Banner.

## Was standardmäßig passiert

Die Einstellung **Sitzung erst beim Öffnen des Widgets starten** ist standardmäßig an. Bis der Besucher auf den Chat-Button klickt,

-   legt das Widget keine Besuchersitzung an,
-   schreibt es nichts in den lokalen Speicher (Local Storage) des Browsers,
-   öffnet es keine Live-Verbindung zu asktrix.

Der Button selbst wird angezeigt: Der Browser lädt dafür Script und Einstellungen des Widgets, wie jedes andere Script auf deiner Seite.

Öffnet der Besucher den Chat, startet eine Sitzung, und das Widget legt ein Token im Local Storage ab. Das braucht es für das Gespräch, das der Besucher angefragt hat: Auf den nächsten Seiten verbindet sich das Widget damit wieder, sodass deine Antworten ankommen.

Der Preis dafür: Solange der Besucher den Chat nicht geöffnet hat, sieht dein Team ihn nicht in der Besucherliste, proaktive Nachrichten und Chat-Kampagnen werden nicht angezeigt, und der Button zeigt kein Ungelesen-Abzeichen.

Ab dem Team-Plan kannst du die Einstellung unter **Einstellungen → Kanäle → Identität & Schutz → Domains & Sitzungen** ändern. In Free und Start bleibt sie immer an. Die Einwilligungs-API unten funktioniert in jedem Plan.

## Chat nach der Cookie-Einwilligung starten

Damit Besucher, die Cookies zustimmen, alle Funktionen bekommen, sagst du dem Widget Bescheid, sobald die Einwilligung da ist:

```js
asktrix.consent(true);
// oder
asktrix("consent", true);
```

Das Widget startet seine Sitzung dann sofort, ohne darauf zu warten, dass der Besucher den Chat öffnet.

Fehlt die Einwilligung oder widerruft der Besucher sie:

```js
asktrix.consent(false);
// oder
asktrix("consent", false);
```

Dann startet das Widget von sich aus keine Sitzung. Ist es verbunden und der Chat gerade nicht offen, wird die Verbindung getrennt. Den Chat selbst öffnen kann der Besucher weiterhin, denn das ist eine ausdrückliche Anfrage. Ein Gespräch, das der Besucher begonnen hat, bleibt auf seinem Gerät erhalten.

Die Entscheidung gilt nur für die aktuelle Seite. Melde die Wahl des Besuchers deshalb bei jedem Seitenaufruf. Cookie-Banner machen das ohnehin: Sie lösen ihr Event auf jeder Seite aus.

## Aufruf, bevor das Widget geladen ist

`window.asktrix` gibt es erst, wenn das Widget geladen ist. Dein Banner meldet die Einwilligung womöglich früher. Nimm deshalb die Warteschlange, die vor und nach dem Laden funktioniert:

```js
window.asktrixReady = window.asktrixReady || [];
asktrixReady.push(function (trix) {
  trix.consent(true);
});
```

Die Callbacks in der Warteschlange laufen, bevor das Widget von selbst startet. Eine Entscheidung, die dein Banner beim Laden der Seite schon kennt, greift also, bevor irgendetwas verbunden wird.

Die Beispiele unten nutzen diese kleine Hilfsfunktion. Bau sie einmal auf jeder Seite ein, vor dem Code für dein Banner:

```html
<script>
  var asktrixGranted = null;
  function asktrixConsent(granted) {
    if (granted === asktrixGranted) return; // Banner lösen oft mehrere Events hintereinander aus
    asktrixGranted = granted;
    window.asktrixReady = window.asktrixReady || [];
    window.asktrixReady.push(function (trix) {
      trix.consent(granted);
    });
  }
</script>
```

Ohne Einwilligung ruft das auf jeder Seite `consent(false)` auf. Ein Besucher, der den Chat ohne Cookie-Zustimmung geöffnet hat, verbindet sich auf der nächsten Seite also erst wieder, wenn er den Chat dort öffnet, nicht automatisch.

## Cookiebot

Cookiebot löst `CookiebotOnAccept` und `CookiebotOnDecline` beim Laden der Seite aus und jedes Mal, wenn der Besucher seine Wahl ändert. Nimm die Kategorie, in die du asktrix in deinem Cookiebot-Konto eingeordnet hast. Ein Chat ist meist eine Präferenz (funktional). Hast du ihn als Statistik eingeordnet, nimm stattdessen `Cookiebot.consent.statistics`.

```html
<script>
  window.addEventListener("CookiebotOnAccept", function () {
    asktrixConsent(!!(window.Cookiebot && Cookiebot.consent.preferences));
  });
  window.addEventListener("CookiebotOnDecline", function () {
    asktrixConsent(false);
  });
</script>
```

## Usercentrics

1.  Leg in der Usercentrics-Verwaltung einen eigenen Dienst mit dem Namen `asktrix` an und ordne ihn einer Kategorie zu, zum Beispiel funktional.
2.  Leg unter **Implementation → Data Layer & Events** ein Window-Event mit dem Namen `ucEvent` an, falls es noch keins gibt.
3.  Bau dieses Script ein:

```html
<script>
  window.addEventListener("ucEvent", function (e) {
    if (e.detail && e.detail.event === "consent_status") {
      asktrixConsent(e.detail["asktrix"] === true);
    }
  });
</script>
```

Der Schlüssel in `e.detail` ist der Name des Dienstes. Er muss also genau `asktrix` heißen. Das funktioniert mit Usercentrics CMP v2 und v3.

## Borlabs Cookie

Leg in Borlabs Cookie 3 einen Service mit der ID `asktrix` in einer passenden Service-Gruppe an. Dann hast du zwei Möglichkeiten.

**Opt-in-Code.** Füg diese Zeile in das Feld für den Opt-in-Code des Service ein. Borlabs führt sie aus, sobald der Besucher zustimmt:

```html
<script>window.asktrixReady=window.asktrixReady||[];asktrixReady.push(function(t){t.consent(true)})</script>
```

Hat deine Borlabs-Version ein Feld für den Opt-out-Code, kommt dieselbe Zeile mit `t.consent(false)` dort hinein.

Der Opt-in-Code läuft nur, wenn eine Einwilligung vorliegt. Das ist der schnellste Weg, aber auf Seiten ohne Einwilligung erfährt das Widget nichts. Hat ein Besucher einmal zugestimmt und widerruft später, kann sich das Widget auf späteren Seiten mit seiner bestehenden Sitzung wieder verbinden. Willst du das vermeiden, nimm stattdessen das Script.

**Script auf deiner Seite.** Es meldet die Wahl auf jeder Seite:

```html
<script>
  function asktrixBorlabsCheck() {
    var b = window.BorlabsCookie;
    asktrixConsent(!!(b && b.Consents && b.Consents.hasConsent("asktrix")));
  }
  document.addEventListener("borlabs-cookie-consent-saved", asktrixBorlabsCheck);
  if (window.BorlabsCookie && window.BorlabsCookie.Consents) asktrixBorlabsCheck();
  else window.addEventListener("load", asktrixBorlabsCheck);
</script>
```

## Andere Banner

Jedes Banner funktioniert nach demselben Prinzip: Ruf `asktrixConsent(true)` auf, wenn der Besucher zustimmt, und `asktrixConsent(false)`, wenn er widerruft. Die meisten Banner bieten dafür einen JavaScript-Callback oder ein Event. Such in deren Dokumentation nach „Callback“, „Event“ oder „Consent API“.

## Link zur Datenschutzerklärung

Trag unter **Einstellungen → Kanäle → Verhalten** in der Karte **Privatsphäre & Live-Funktionen** die URL deiner Datenschutzerklärung als **Link zur Datenschutzerklärung** ein. Das Widget zeigt den Link, wenn es einen Besucher nach seiner E-Mail-Adresse fragt, und unten im Chatfenster.

Nenn asktrix in deiner Datenschutzerklärung als Auftragsverarbeiter für den Live-Chat und beschreib, welche Daten der Chat speichert (Nachrichten, die E-Mail-Adresse, falls angegeben, sowie Browser- und Seiteninformationen).

## KI-Antworten sind gekennzeichnet

Jede Nachricht von Trix trägt im Widget neben dem Namen das Abzeichen **KI** (auf Englisch **AI**). Besucher wissen also immer, ob sie mit einer KI oder mit deinem Team schreiben. Abschalten lässt sich das Abzeichen nicht.

---
Source: https://localhost:3100/help/de/widget-consent-and-cookie-banners
