Skip to main content

Ziel

Erstellen Sie ein multivariate-Test-Experiment (MVT) mit mehreren Sections und Variationen und legen Sie anschließend eine benutzerdefinierte (ungleiche) Traffic-Allokation für diese Variationen fest.
Wenn Sie ein multivariate-Test-Experiment mit POST /experiments erstellen, wendet Kameleoon immer eine gleichmäßige Traffic-Allokation auf jede Variation an und setzt einen gesendeten locked-Wert auf false zurück, unabhängig von den Werten, die Sie in mvtAllocationSettings senden. Um eine benutzerdefinierte Traffic-Allokation festzulegen, folgen Sie dem dreistufigen Ablauf in diesem Tutorial: Erstellen Sie das Experiment, rufen Sie die generierten IDs ab, und aktualisieren Sie anschließend die Allokation mit einer PATCH-Anfrage.
Einen Überblick über MVT-Konzepte (Sections, Variationen und Kombinationen) und die Konfiguration der Traffic-Allokation in der Kameleoon-App finden Sie unter Multivariate-Tests einrichten.

Voraussetzungen

  • access token
Die Automation API erfordert ein access token. Rufen Sie das Token programmgesteuert ab, indem Sie die Anweisungen im Abschnitt Abrufen eines Access Tokens befolgen.
  • siteId
Rufen Sie die siteId direkt in Ihrem Code über die siteCode ab, indem Sie den Endpoint zum Abrufen einer Site anhand des Codes aufrufen, oder finden Sie sie in der App, indem Sie die Schritte unter Ein neues Experiment erstellen befolgen.

Grundlegende Konzepte

Die Referenzvariation

Kameleoon fügt jeder von Ihnen gesendeten Section automatisch eine Referenzvariation hinzu. Diese Referenz erscheint in der Antwort als variationId: "0" innerhalb der Allokationseinträge der jeweiligen Section. Wenn Sie eine eigene Variation mit dem Namen Original senden, erstellt Kameleoon sie als separate, zusätzliche Variation. Sie identifiziert oder ersetzt die generierte Referenz nicht. Senden Sie nur dann eine explizite Original-Variation, wenn Sie zwei unterschiedliche Baseline-Variationen in derselben Section testen möchten.

Vom Client gesendete IDs sind temporär

Die Werte sectionId und Variation-id, die Sie in mvtVariations senden, verknüpfen Einträge nur innerhalb dieser einen Anfrage: Sie verbinden jeden Allokationseintrag in mvtAllocationSettings mit der richtigen Section und Variation, bevor Kameleoon permanente IDs generiert. Verwenden Sie beliebige Ganzzahlen, die für Sie praktisch sind. Kameleoon verwirft die gesendeten Werte und ersetzt sie durch eigene generierte sectionId- und variationId-Werte. Verwenden Sie die generierten Werte (die in der Antwort und durch eine spätere GET-Anfrage zurückgegeben werden) für alle nachfolgenden Anfragen. Die Antwort enthält nicht die von Ihnen gesendeten Variationsnamen, sondern nur die generierten IDs. Wenn Sie bestätigen müssen, welche generierte ID zu welchem gesendeten Namen gehört, prüfen Sie das Experiment in der Kameleoon-App.

Section-IDs versus Kombinations-IDs

Kameleoon generiert zwei unterschiedliche Gruppen von IDs für ein multivariate-Test-Experiment:
  • Section- und Variation-IDs identifizieren eine Variation innerhalb einer Section. Verwenden Sie diese in mvtAllocationSettings.sectionsAllocations.
  • Kombinations-IDs identifizieren eine vollständige Kombination von Variationen, eine pro Section, die exponierten Besuchern angezeigt wird. Kameleoon generiert jede mögliche Kombination als kartesisches Produkt der Variationen aller Sections (einschließlich der Referenz in jeder Section) und gibt die Kombinations-IDs im Array variations auf oberster Ebene sowie als Schlüssel in der deviations-Map zurück. Verwenden Sie diese in mvtAllocationSettings.combinationsAllocations.
Sowohl sectionsAllocations als auch combinationsAllocations verwenden dieselbe Struktur für Allokationseinträge (allocationPart, checked, locked, sectionId, variationId); wählen Sie daher nur eine Methode:
  • Füllen Sie sectionsAllocations, um den Traffic nach einzelner Variation innerhalb jeder Section zu verteilen. Kameleoon leitet den Anteil jeder Kombination aus den Werten auf Section-Ebene ab.
  • Füllen Sie combinationsAllocations, um den Traffic direkt bestimmten Kombinationen zuzuweisen.
Da Kombinations-IDs erst existieren, nachdem Kameleoon sie generiert hat, können Sie combinationsAllocations nicht in der Erstellungsanfrage befüllen. Rufen Sie die generierten Kombinations-IDs mit einer GET-Anfrage ab und legen Sie combinationsAllocations anschließend in einer nachfolgenden PATCH-Anfrage fest, nach demselben Muster, das in diesem Tutorial für sectionsAllocations verwendet wird.

Schritte

1. Das Experiment erstellen

Endpoint:
Beispiel:
Antwort (gekürzt):
Beachten Sie, dass Kameleoon neue sectionId- und variationId-Werte generiert hat (4451, 4452, 1351293-1351296), jeder Section eine Referenzvariation (variationId: "0") hinzugefügt und die gesendete Allokation durch einen gleichmäßigen Anteil von 0.33333334 ersetzt hat, wobei locked auf false zurückgesetzt wurde. exposedPart bleibt wie gesendet erhalten. Fahren Sie mit dem nächsten Schritt fort, um die gewünschte Allokation festzulegen.

2. Die generierten IDs abrufen

Wenn Sie die generierten IDs aus der Erstellungsantwort nicht erfasst haben, rufen Sie sie mit einer GET-Anfrage ab. Endpoint:
Beispiel:
Die Antwort enthält dasselbe Array mvtAllocationSettings.sectionsAllocations wie in Schritt 1, mit den generierten sectionId- und variationId-Werten, die Sie für den nächsten Schritt benötigen.

3. Benutzerdefinierte Traffic-Allokation festlegen

Endpoint:
Senden Sie mvtAllocationSettings erneut, diesmal mit den generierten sectionId- und variationId-Werten aus Schritt 2. Beispiel:
Antwort (gekürzt):
Die Allokation entspricht nun den gesendeten Werten, und locked bleibt true. Eine nachfolgende GET-Anfrage bestätigt dasselbe Ergebnis.

4. Das Experiment überprüfen

Öffnen Sie das Experiments Dashboard in der Kameleoon-App und öffnen Sie das Experiment, um zu bestätigen, dass Sections, Variationen und Traffic-Allokation Ihrer Konfiguration entsprechen.

Bekannte Einschränkungen

  • Das Löschen großer multivariate-Test-Experimente kann ein Timeout verursachen. DELETE /experiments/{experimentId} kann einen 504 Gateway Timeout-Fehler zurückgeben, wenn das Experiment viele Kombinationen enthält. Ein Timeout bedeutet nicht zwangsläufig, dass das Löschen fehlgeschlagen ist: Senden Sie eine GET-Anfrage für dieselbe Experiment-ID, um zu prüfen, ob sie noch existiert, bevor Sie den Löschvorgang wiederholen.