Kameleoon im HTML-Quellcode implementieren
Fuegen Sie das Kameleoon-Tag fuer Web Experimentation immer im<head>-Abschnitt Ihres HTML-Quellcodes hinzu. Das Platzieren des Tags im <body>-Abschnitt, insbesondere am Ende der Seite, erhoeht das Risiko von Flackern. Fuegen Sie das Tag so weit oben wie moeglich im <head>-Abschnitt ein, idealerweise unmittelbar nach dem oeffnenden <head>-Tag. Diese Position ermoeglicht es dem Browser, die Kameleoon-Anwendungsdatei vor anderen Ressourcen zu laden. CSS oder andere Skripte, die vor dem Kameleoon-Tag platziert werden, erhoehen das Risiko von Flackern.
Wenn Sie den Hybridmodus verwenden (sowohl ein SDK als auch das JavaScript-Installations-Tag), koennen Sie das Tag spaeter im Body platzieren, beispielsweise direkt vor dem schliessenden
</body>-Tag. Bei Verwendung eines Web-SDK tritt kein Flackern auf.Das Hinzufuegen eines Skripts oder einer Ressource zu Ihrer Website erhoeht die Last. Kameleoon legt Wert auf Leistung und optimiert seinen Code, um bestmoegliche Ergebnisse zu erzielen.
Asynchrones Tag mit Anti-Flicker
Diese Methode laedt das Kameleoon-Skript asynchron und enthaelt Anti-Flicker-Code. Kameleoon verwendet eine “blockierende CSS-Regel”, um den Seiteninhalt zu verbergen, und entfernt sie, sobald der Anwendungscode geladen wird (normalerweise unter 50 ms) oder wenn das angegebene Timeout (Standard 750 ms) abgelaufen ist. Dieser Schutzmechanismus stellt sicher, dass Kameleoon nie dazu fuehrt, dass Ihre Website abstuerzt oder unbegrenzt leer bleibt. Passen Sie das Timeout mit der JavaScript-VariablekameleoonLoadingTimeout im Installations-Snippet an.
SITE_CODE durch den Site-Code Ihres Projekts.
Die Domains der Kameleoon-Skripte variieren je nach Projekt. Projekte verwenden je nach Erstellungsdatum entweder
kameleoon.eu oder kameleoon.io. Verwenden Sie die in der Kameleoon App fuer Ihr Projekt angezeigte Domain.Der Timeout-Zaehler startet, wenn der Browser den Code ausfuehrt, nicht wenn er beginnt,
engine.js herunterzuladen. Ein zu niedrig eingestellter Timeout (z. B. 100 ms) bietet dem Browser moeglicherweise nicht genug Zeit, die Datei herunterzuladen und auszufuehren, insbesondere bei langsamen Verbindungen oder wenn andere Skripte in der Warteschlange stehen.Synchrones Tag
Diese Methode laedt das Kameleoon-Skript synchron, um Flackern zu verhindern. Dieser Ansatz blockiert jedoch das Laden der Seite, bis der Browser den Kameleoon-Code heruntergeladen und ausgefuehrt hat, was die Leistung beeintraechtigen kann.SITE_CODE durch den Site-Code Ihres Projekts.
Die Domains der Kameleoon-Skripte variieren je nach Projekt. Projekte verwenden je nach Erstellungsdatum entweder
kameleoon.eu oder kameleoon.io. Verwenden Sie die in der Kameleoon App fuer Ihr Projekt angezeigte Domain.Asynchrones Tag ohne Anti-Flicker
Dieses Tag installiert die Kameleoon-Anwendungsdatei asynchron ohne Anti-Flicker-Schutz. Verwenden Sie dieses Tag, wenn Flackern kein Problem darstellt, beispielsweise bei Verwendung des Hybridmodus.SITE_CODE durch den Site-Code Ihres Projekts.
Die Domains der Kameleoon-Skripte variieren je nach Projekt. Projekte verwenden je nach Erstellungsdatum entweder
kameleoon.eu oder kameleoon.io. Verwenden Sie die in der Kameleoon App fuer Ihr Projekt angezeigte Domain.Kameleoon in einem Tag Manager implementieren
Kameleoon unterstuetzt alle wichtigen Tag-Management-Systeme (TMS). Um Flackern zu vermeiden, installieren Sie Kameleoon direkt im Quellcode Ihrer Seite. Die Verwendung eines TMS verzoegert das Laden, was haeufig zu spuerbarem Flackern fuehrt, insbesondere wenn das TMS am Ende der HTML-Seite geladen wird. Kameleoon bietet keinen technischen Support fuer Flackerprobleme, die durch TMS-Implementierungen verursacht werden. TMS-Umgebungen erlauben kein synchrones Laden von externem JavaScript. Verwenden Sie fuer TMS-Implementierungen das asynchrone JavaScript-Tag.Die Domains der Kameleoon-Skripte variieren je nach Projekt. Projekte verwenden je nach Erstellungsdatum entweder
kameleoon.eu oder kameleoon.io. Verwenden Sie die in der Kameleoon App fuer Ihr Projekt angezeigte Domain.Den richtigen Trigger waehlen
Wenn Sie Kameleoon ueber ein TMS implementieren, verwenden Sie einen bestimmten Trigger, um sicherzustellen, dass das Skript so frueh wie moeglich ausgefuehrt wird. Waehlen Sie fuer Ihr spezifisches TMS den Trigger, der auf jeder Seite am fruehesten ausgeloest wird.FAQ
Welche Kameleoon-Domains muss ich auf die Whitelist setzen?
Welche Kameleoon-Domains muss ich auf die Whitelist setzen?
Wenn Ihre Website das Laden von Ressourcen (Skripte, Bilder, Medien, CSS) über den standardmäßigen HTTP-Header Content-Security-Policy (CSP) einschränkt, aktualisieren Sie die CSP Ihrer Website, damit Kameleoon-Ressourcen geladen werden dürfen. Dieselbe Richtlinie gilt für die Kameleoon-Anwendungsdatei und die clientseitigen SDKs.Jede URL in der CSP-Richtlinie erfüllt einen bestimmten Zweck:
Einfache Einrichtung (mit Wildcards)
Fügen Sie Ihrer CSP-Header-Konfiguration den folgenden Inhalt hinzu:Vollständige Einrichtung (vollständig detailliert)
Ersetzen Sie[your-site-code] durch Ihren Kameleoon-Site-Code in jeder Zeile, in der er erscheint, und fügen Sie Folgendes Ihrer Konfiguration hinzu:Web Experimentation
https://[your-site-code].kameleoon.xx: Lädt das Anwendungsskript von Kameleoon Web Experimentation,engine.js(früherkameleoon.jsgenannt).https://(eu|na)-data.kameleoon.(eu|io): Wird für das Tracking verwendet.https://logger.kameleoon.io: Sendet Tracking-Daten zur Protokollierung.https://data.kameleoon.net: Erforderlich, wenn Sie das Kameleoon-Simulationstool zum QA von Experimenten über mehrere Subdomains hinweg verwenden.
Feature Experimentation (clientseitige SDKs)
https://client-config.kameleoon.com: Erforderlich für SDK-Versionen < 2.1.0.https://sdk-config.kameleoon.eu: Erforderlich für SDK-Versionen >= 2.1.0.https://events.kameleoon.com:8110: Erforderlich für Echtzeit-Streaming, eine Premium-Option.https://api.kameleoon.com: Authentifiziert SDK-Anfragen (/oauth/token).https://(eu|na)-data.kameleoon.(eu|io): Wird für das Tracking verwendet.https://logger.kameleoon.io: Sendet Tracking-Daten zur Protokollierung.
Grafische Editoren
https://static.kameleoon.com: (veraltet) Lädt statische Ressourcen für den alten grafischen Editor.https://editor.kameleoon.com: (veraltet) Wird vom alten grafischen Editor verwendet.https://graphical-editor.kameleoon.com: Wird vom neuen grafischen Editor verwendet.https://storage.kameleoon.(eu|io): Lädt Bilder, die in Experimenten verwendet werden, die mit den grafischen Editoren erstellt wurden.
Prompt-Based Experimentation (PBX)
https://aibuilder.kameleoon.com: Wird vom Prompt-basierten Editor verwendet.https://electra.kameleoon.com: Wird vom Prompt-basierten Editor verwendet.https://storage.kameleoon.(eu|io): Lädt Bilder im Prompt-basierten Editor.https://api.kameleoon.com: Lädt kontobezogene Informationen.https://sdk-config.kameleoon.eu: Steuert die im Prompt-basierten Editor aktivierten Kameleoon-Feature-Flags.wss://electra.kameleoon.com: Wird für den Datenaustausch verwendet.
Simulation
https://api.kameleoon.com: Wird von der alten Simulation verwendet.https://simulation.kameleoon.com: Wird von der neuen Simulation verwendet.
Produktempfehlung
https://static.products.kameleoon.com: Lädt Ressourcen für das Modul Produktempfehlung.https://api.products.kameleoon.com: API, die vom Modul Produktempfehlung verwendet wird.https://images.products.kameleoon.com: Lädt Produktbilder für Empfehlungen.
APIs und Integrationen
https://api.kameleoon.com: Erforderlich, wenn Sie die Automation API zum Testen direkt im Browser verwenden möchten.https://customers.kameleoon.com: Erforderlich, wenn Sie die SDK API oder eine von Kameleoon entwickelte benutzerdefinierte Integration verwenden.
Interne Ressourcen
Standardmäßig enthält
engine.js keine Simulationspfade oder anwendungsspezifischen Informationen, um die Skriptgröße zu minimieren. Um diese Details bereitzustellen, laden Sie das vollständige Skript kameleoonFull.js, das engine.js mit den notwendigen Daten zu internen Ressourcen und Ladeanweisungen versorgt.https://static.kameleoon.com: Lädt interne Ressourcen.https://static.experimentation.dev: Lädt interne Ressourcen.https://sdk-config.experimentation.dev: Steuert die im Kameleoon-Produkt aktivierten Kameleoon-Feature-Flags.https://eu-data.experimentation.dev: Sendet Tracking-Daten zu Protokollierungszwecken.
Warum verwendet die Kameleoon-Engine (Anwendungsdatei engine.js) die eval()-Funktion?
Warum verwendet die Kameleoon-Engine (Anwendungsdatei engine.js) die eval()-Funktion?
Die Kameleoon-JavaScript-Engine benötigt die Funktion Der grafische Editor von Kameleoon (einschließlich des Simulationspanels) benötigt ebenfalls die Funktion
Einige Funktionen von Kameleoon sind nicht verfügbar, wenn eine CSP-Direktive die Funktion 
eval(), um benutzerdefinierten Code zu Kameleoon hinzuzufügen, etwa benutzerdefinierte Daten und benutzerdefiniertes JavaScript, wenn Variationen einer Seite implementiert werden. Die Funktion eval() ermöglicht es Kameleoon, diesen benutzerdefinierten Code zur Laufzeit dynamisch auszuführen.Wenn Sie eine Content-Security-Policy-(CSP)-Direktive verwenden, die die Verwendung der Funktion eval() verhindert, implementieren Sie das folgende JavaScript-Snippet vor dem Kameleoon-Installations-Tag:Wenn Ihre CSP
eval() blockiert, heben Sie diese Einschränkungen durch die Implementierung des Code-Snippets nicht auf. Um die volle Funktionalität sicherzustellen, passen Sie die entsprechende CSP-Direktive an, sodass eval() oder ähnliche Funktionen zugelassen sind. Andernfalls bleiben bestimmte erweiterte Targeting- oder Anpassungsfunktionen in Kameleoon aufgrund der Durchsetzung von Browser-Sicherheitsmechanismen unzugänglich.eval(). Sie können diese Anforderung jedoch umgehen, indem Sie die Kameleoon-Chrome-Erweiterung installieren und die Einstellung Dev Tools > Tag injection > Bypass policies aktivieren, um die Richtlinien lokal zu überschreiben. Außerdem müssen Sie Ihren Sitecode angeben. Mit der Einstellung Bypass policies können Sie den grafischen Editor in einem Chrome-Browser verwenden.
eval() blockiert. Diese Einschränkungen gelten auch dann, wenn Sie eines der in dieser Antwort genannten Code-Snippets oder Workarounds verwenden. Die folgenden Funktionen bleiben nicht verfügbar, sofern Ihre CSP eval() nicht ausdrücklich zulässt:- Ansprechen eines Segments mit einer benutzerdefinierten JavaScript-Bedingung (nur unterstützt, wenn die Bedingung asynchron ausgeführt wird).

- Verwendung benutzerdefinierter Daten mit benutzerdefiniertem JavaScript-Code.
- Verwendung von Akquisitionskanälen mit benutzerdefiniertem JavaScript-Code.
eval(). Sie können die Vereinheitlichung von Sitzungsdaten unabhängig von Ihrer CSP-Richtlinie für eval() implementieren.Kann ich Subresource Integrity (SRI) mit der Kameleoon-Anwendungsdatei verwenden?
Kann ich Subresource Integrity (SRI) mit der Kameleoon-Anwendungsdatei verwenden?
Leider nein. Obwohl SRI eine nützliche Sicherheitsfunktion bietet, ändert sich die Kameleoon-Anwendungsdatei im Laufe der Zeit. Andernfalls wären Funktionen wie das sofortige Starten und Stoppen von Experimenten ohne erneute Bereitstellung unmöglich. Da sich der Dateiinhalt ändert, ändert sich auch der Ressourcen-Hash, was bedeutet, dass SRI nicht verwendet werden kann. Andernfalls würde der Browser die Ressource blockieren, sobald sie auf den Servern aktualisiert wird.
Kann ich das von Kameleoon bereitgestellte Installations-Tag ändern?
Kann ich das von Kameleoon bereitgestellte Installations-Tag ändern?
Ändern Sie keine Installations-Tags. Der Code der Installations-Tags ist umfassend getestet und optimiert. Eine Änderung kann zu einer nicht funktionierenden Einrichtung führen. Wenn ein Installations-Tag geändert werden muss, wenden Sie sich an Ihren Customer Success Manager, um die Änderung mit den Entwicklern abzustimmen. Versuchen Sie keine eigenständigen Änderungen.
Kann ich das Installations-Tag in einem separaten externen Skript hinzufügen?
Kann ich das Installations-Tag in einem separaten externen Skript hinzufügen?
Schließen Sie kein Installations-Tag in ein eigenes, separates externes Skript ein. Tun Sie zum Beispiel niemals Folgendes:Auch wenn dies technisch funktionieren kann, beeinträchtigt es die Leistung von Kameleoon erheblich und verursacht einen deutlich wahrnehmbaren Flackereffekt. Diese Einrichtung bringt die Probleme eines Tag Managers mit sich, ohne dass damit Vorteile verbunden sind.