Das Szenario
Angenommen, Sie möchten drei sich gegenseitig ausschließende Experimente ausführen:- Zwei Experimente werden clientseitig mit Kameleoon Web Experimentation (JavaScript-basiert) ausgelöst.
- Ein Experiment wird serverseitig mit Kameleoon Feature Experimentation (z. B. über ein Backend-SDK) ausgelöst.
Diesen Anwendungsfall handhaben
Um die gegenseitige Ausschließlichkeit über Client-Side- und Server-Side-Experimente hinweg sicherzustellen, befolgen Sie diese Schritte:1. Beginnen Sie mit dem Feature-Experiment
Da das Feature-Experiment serverseitig ausgelöst wird und ein frühes Targeting (vor dem Laden der Seite) erfordert, ist es am besten, ihm zuerst Traffic zuzuweisen.- Erstellen Sie Ihr Feature Experiment.
- Weisen Sie diesem Experiment 33 % des Gesamtverkehrs zu (oder einen anderen Prozentsatz, der zu Ihrem Testplan passt).
2. Erstellen Sie eine sich gegenseitig ausschließende Gruppe für Web-Experimente
Erstellen Sie als Nächstes eine Mutually Exclusive Group für die beiden Web-Experimente. 👉 Folgen Sie dieser Dokumentation: Verhindern Sie sich überschneidende Kampagnen mit Mutually Exclusive Groups. Das Verhindern von Überschneidungen stellt sicher, dass Besucher nur eines der beiden Web-Experimente sehen können – niemals beide.3. Fügen Sie Targeting-Bedingungen hinzu, um Teilnehmer am Feature-Experiment auszuschließen
Um sicherzustellen, dass Benutzer, die in das Feature-Experiment gebucketed wurden, in keines der Web-Experimente eintreten, wenden Sie auf beide Web-Experimente die folgende Targeting-Bedingung an:- Targeting-Bedingung:
Campaigns → Feature Flag→ Besucher ausschließen, die einer beliebigen Variation Ihres „feature_experiment_name” ausgesetzt wurden.
4. Technische Überlegungen
Standardmäßig führt Kameleoon Web Experimentation bei jedem Seitenladevorgang einen Remote-Synchronisationsaufruf durch, um zu prüfen, ob der Benutzer einem Feature-Experiment ausgesetzt wurde. Über diesen Aufruf weiß Kameleoon, ob ein Benutzer in ein Web-Experiment einbezogen oder davon ausgeschlossen werden soll. Wenn die drei Experimente auf derselben Seite ausgeführt werden, kann diese Einrichtung knifflig sein, da die Web-Engine auf den serverseitigen Expositionsstatus warten muss, bevor sie entscheidet, ob der Benutzer in ein Web-Experiment aufgenommen wird, was zu Flickering oder verzögertem Inhalt führen kann.Wenn das Feature Experiment und die Web Experiments zu unterschiedlichen Zeitpunkten in der Customer Journey ausgelöst werden (z. B. auf verschiedenen Seiten), müssen Sie auch im Feature Experiment eine Ausschluss-Targeting-Bedingung hinzufügen, um Besucher auszuschließen, die bereits einem der Web Experiments ausgesetzt wurden.
Empfohlene Lösung
Um Flickering zu eliminieren und Echtzeit-Entscheidungen zu gewährleisten, geben Sie den Feature-Experiment-Status des Benutzers direkt im Frontend aus, ohne auf einen Remote-Aufruf zu warten.- Verwenden Sie die SDK-Methode:
getEngineTrackingCode(). - Fügen Sie die Ausgabe in das HTML der Seite ein, idealerweise im
<head>-Abschnitt.
Zusammenfassung
Sich gegenseitig ausschließendes Testen über Client-Side- und Server-Side-Experimente hinweg ist komplex – wird aber vollständig unterstützt von Kameleoon, wenn es korrekt implementiert wird. Hier eine kurze Zusammenfassung:- Beginnen Sie mit dem Feature-Experiment und weisen Sie zuerst seinen Traffic-Anteil zu.
- Verwenden Sie sich gegenseitig ausschließende Gruppen, um die Überschneidung zwischen Web-Experimenten zu verwalten.
- Schließen Sie Feature-Experiment-Teilnehmer mithilfe von Kampagnenbedingungen vom Targeting der Web-Experimente aus.
- Verwenden Sie die Tracking-Code-Methode, um Verzögerungen und Flickering zu eliminieren, wenn Experimente sich auf derselben Seite überschneiden.