# Snippet settings

URL: https://docs.ablyft.com/de/developers/installation/snippet-settings/

> Einstellungen, die steuern, wie das ABlyft-Snippet gebaut und ausgeliefert wird, sowie zugehörige Project-Einstellungen.



Die Snippet Settings steuern, wie das Snippet deines Projects gebaut und an deine Visitors ausgeliefert wird.
Du findest sie in deinem Project unter **Settings → Snippet**.

Die Seite hat zwei Spalten. Links stehen die Einstellungen, rechts die Ausgabe: dein Snippet-Code, seine Details und die
Sub-Snippets deiner [Environments](https://docs.ablyft.com/de/developers/installation/environments/).

## Übersicht

| Einstellung                                     | Standard          | Was sie bewirkt                                                                          |
| ----------------------------------------------- | ----------------- | ---------------------------------------------------------------------------------------- |
| [Cache Expiration (ttl)](#cache-expiration-ttl) | 1 minute          | Wie lange das Snippet gecacht werden darf, bevor es erneut abgerufen wird                |
| [Anti-flicker mode](#anti-flicker-mode)         | Use built-in mode | Verhindert, dass Visitors die Original-Seite sehen, bevor eine Variation angewendet wird |
| [Minify JavaScript](#minify-javascript)         | On                | Reduziert die Größe deines eigenen Codes                                                 |
| [Data layer watching](#data-layer-watching)     | Intercept         | Wie das Snippet neue Data-Layer-Events erkennt                                           |
| [Include jQuery](#include-jquery)               | –                 | Deprecated                                                                               |

> Die Einstellungen unter **General Settings** sind in der App als deprecated markiert. Einige davon, wie die Cache
> Expiration, werden vom ABlyft-Support verwaltet und lassen sich im Formular nicht ändern.

## Cache Expiration (ttl)

Legt fest, wie lange das Snippet als aktuell gilt. In dieser Zeit darf der Browser eines Visitors seine gecachte Kopie
verwenden, statt das Snippet erneut abzurufen.

| Option          |                                        |
| --------------- | -------------------------------------- |
| Disable Caching | Das Snippet wird immer vom CDN geladen |
| **1 Minute**    | Empfohlen, Standard                    |
| 2 Minutes       |                                        |
| 5 Minutes       |                                        |

Diese Einstellung ist in der App schreibgeschützt. Wenn du sie ändern möchtest, wende dich an den ABlyft-Support.

> **Änderungen wirken nicht sofort:** Nachdem du eine Änderung veröffentlicht hast, erhalten Visitors, deren Browser ein gecachtes Snippet hat, die neue
> Version erst, wenn die Cache Expiration abgelaufen ist. Mit dem Standardwert von einer Minute dauert das höchstens etwa
> eine Minute.

Solange der [Debug-Modus](https://docs.ablyft.com/de/developers/debugging/preview-and-live-log/#debug-mode) aktiv ist, ist das Caching
ausgeschaltet.

## Anti-flicker mode

Flicker bedeutet, dass Visitors kurz die Original-Seite sehen, bevor eine Variation angewendet wird. Wähle, wie du das
verhindern möchtest:

* **Use built-in mode** (Standard): Das Snippet blendet die Seite aus (`visibility: hidden` auf dem `<html>`-Element),
  gleich nachdem es geladen wurde, und zeigt sie wieder an, sobald alle Experiments angewendet wurden, spätestens aber
  nach 2 Sekunden, je nachdem, was zuerst eintritt.
* **Use your own custom mode:** Das Snippet blendet die Seite nicht aus. Nutze das, wenn du Flicker selbst behandelst, zum
  Beispiel mit einem eigenen Script im `<head>`.

Für das beste Ergebnis lade das Snippet synchron und so früh wie möglich im `<head>`, siehe
[Snippet einbinden](https://docs.ablyft.com/de/developers/installation/snippet/#synchronous-or-asynchronous).

## Minify JavaScript

Wenn aktiviert (Standard), minifiziert ABlyft das JavaScript, das du dem Project hinzugefügt hast: Project-Code,
Helper-Code sowie den Code von Experiments und Variations. Das verringert die Dateigröße deines Snippets.

Den Effekt siehst du unter **Snippet size (before gzip)** auf der rechten Seite.

## Data layer watching

Legt fest, wie das Snippet neue Einträge in deinem Data Layer erkennt. Es gilt für die
[`dataLayer Event`-Audience-Regeln](https://docs.ablyft.com/de/developers/tracking-and-events/datalayer-events/#use-data-layer-events-in-audiences) und für
[`watchDataLayerEntry()`](https://docs.ablyft.com/de/developers/reference/javascript-api/tools/#watchdatalayerentry).

| Methode                  | Verhalten                                                                                              |
| ------------------------ | ------------------------------------------------------------------------------------------------------ |
| **Intercept** (Standard) | Das Snippet umschließt `dataLayer.push` und reagiert sofort auf jeden neuen Eintrag                    |
| **Polling**              | Das Snippet prüft den Data Layer alle 500 ms. Wähle das, wenn andere Scripts `dataLayer.push` ersetzen |

## Include jQuery

Die jQuery-Einstellungen (**Include jQuery**) sind deprecated und werden nicht weiter beschrieben.

## Snippet-Ausgabe

Die rechte Seite zeigt:

* **Implementation (base snippet):** den Code, der auf deiner Site platziert wird. Klicke darauf, um ihn zu kopieren. Siehe [Snippet einbinden](https://docs.ablyft.com/de/developers/installation/snippet/).
* **Project/Snippet ID** und **Snippet version** (die Snippet-Version wird von ABlyft verwaltet)
* **Snippet revision**, **Last published** und **Snippet size (before gzip)**, siehe
  [Zustand deines Snippets prüfen](https://docs.ablyft.com/de/developers/installation/publishing/#check-the-state-of-your-snippet)
* **Sub-Snippets:** ein Snippet für jedes Environment, bei dem **Create a sub-snippet** aktiviert ist, siehe
  [Sub-Snippets](https://docs.ablyft.com/de/developers/installation/environments/#sub-snippets)

## Publishing

ABlyft veröffentlicht dein Snippet automatisch, sobald sich etwas Relevantes ändert, einschließlich der Einstellungen auf
dieser Seite. Siehe [Publishing](https://docs.ablyft.com/de/developers/installation/publishing/). Die neue Version erreicht deine Visitors,
sobald die [Cache Expiration](#cache-expiration-ttl) abgelaufen ist.

## Zugehörige Project-Einstellungen

Weitere Einstellungen mit Auswirkung auf das Snippet befinden sich an anderer Stelle in den Project Settings.

| Einstellung                                                              | Wo                                                         | Auswirkung                                                                                                                                      |
| ------------------------------------------------------------------------ | ---------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| [Debug-Modus](https://docs.ablyft.com/de/developers/debugging/preview-and-live-log/#debug-mode) | Settings → Project Settings                                | Konsolenausgabe, Caching aus                                                                                                                    |
| Use SPA features                                                         | Settings → Project Settings → Project Activations Settings | Aktiviert Reset-JS und Page-Trigger für Single-Page-Apps, siehe [SPA navigation](https://docs.ablyft.com/de/developers/application-integration/spa-navigation/)        |
| Run only on `ablyft.reInit()`                                            | Gleicher Abschnitt                                         | Das Snippet startet nur, wenn dein Code [`ablyft.reInit()`](https://docs.ablyft.com/de/developers/reference/javascript-api/#ablyftreinit) aufruft                      |
| Allow in iFrames                                                         | Gleicher Abschnitt                                         | Lässt das Snippet in iFrames laufen                                                                                                             |
| Automatically clean up bucketing                                         | Gleicher Abschnitt                                         | Entfernt Experiments, die in den letzten 6 Monaten archiviert wurden, aus dem gespeicherten Bucketing des Visitors, damit es nicht zu groß wird |
| [Publication Webhooks](#publication-webhooks)                            | Settings → Project Settings                                | Benachrichtigt deine Systeme nach jedem Publishing                                                                                              |
| External tracking domains                                                | Settings → Project Settings                                | Gibt die Variation-Zuweisung an eine andere Domain weiter, siehe unten                                                                          |
| Prerequisites                                                            | Settings → Prerequisites                                   | Regeln zum Anzeigen von Variations und zum Starten des Trackings, siehe [Consent Manager](https://docs.ablyft.com/de/developers/consent-and-security/consent-manager/) |
| Data Protection & Compliance                                             | Settings → Data Protection & Compliance                    | Browser-Speicher, Do Not Track und Cookie-Einstellungen, siehe [Storage & privacy](https://docs.ablyft.com/de/developers/consent-and-security/storage-and-privacy/)    |

### Publication Webhooks

Mit Publication Webhooks benachrichtigt ABlyft deine Systeme nach jedem Publishing, zum Beispiel um das Snippet zu sichern
oder zu versionieren, eine lokale Kopie auf deinem eigenen Server zu halten oder eine Team-Benachrichtigung zu senden.

Nach jedem Publishing sendet ABlyft einen HTTP-`POST`-Request (Formulardaten) an jede URL, die du konfiguriert hast. Der
Request enthält diese Felder:

| Feld               | Beschreibung                                                                          |
| ------------------ | ------------------------------------------------------------------------------------- |
| `team_id`          | ID deines Teams                                                                       |
| `project_id`       | ID des Projects                                                                       |
| `snippet_revision` | Revisionsnummer des veröffentlichten Snippets                                         |
| `snippet_script`   | Das vollständige JavaScript-Snippet. Nur enthalten, wenn **Include JS** aktiviert ist |

Dein Endpoint sollte innerhalb von 3 Sekunden antworten. Der `User-Agent` des Requests ist `ABlyft Publication Webhook`.

Wie du das Snippet auf deinem eigenen Server empfängst und speicherst, zeigt das Empfänger-Beispiel unter
[Snippet selbst hosten](https://docs.ablyft.com/de/developers/installation/snippet/#self-hosting-the-snippet).

Du kannst die Webhooks auslösen, ohne etwas zu ändern, siehe
[Manuell veröffentlichen: Test webhooks](https://docs.ablyft.com/de/developers/installation/publishing/#publish-manually-test-webhooks).

### External tracking domains

Wenn dein Tracking auf einer anderen Domain stattfindet (nicht nur einer Subdomain), trage sie unter **External tracking
domains** ein. ABlyft gibt die Variation-Zuweisung dann über einen URL-Parameter an diese Domain weiter. Der Name dieses
Parameters ist standardmäßig [`ablyft_set_bucketing`](https://docs.ablyft.com/de/developers/reference/url-parameters/#ablyft_set_bucketing) und
kann unter **Bucketing handover query parameter** geändert werden.

### Advanced settings

Die Felder **custom snippet**, **tracker URL** und **asset URL** (unter Data Protection & Compliance → Custom Settings)
sind schreibgeschützt und können nur vom ABlyft-Support geändert werden.

