Skip to main content

Objectif

Créez un test multivariate (MVT) comportant plusieurs sections et variations, puis définissez une allocation de trafic personnalisée (non égale) entre ces variations.
Lorsque vous créez un test multivariate avec POST /experiments, Kameleoon applique toujours une allocation de trafic égale à chaque variation et réinitialise toute valeur locked envoyée à false, quelles que soient les valeurs que vous envoyez dans mvtAllocationSettings. Pour définir une allocation de trafic personnalisée, suivez le processus en trois étapes de ce tutoriel : créez l’expérience, récupérez les Id générés, puis mettez à jour l’allocation avec une requête PATCH.
Pour un aperçu des concepts MVT (sections, variations et combinaisons) et pour savoir comment configurer l’allocation de trafic dans l’application Kameleoon, consultez Configurer des tests multivariate.

Prérequis

  • access token
L’Automation API nécessite un access token. Récupérez le jeton de manière programmatique en suivant les instructions de la section obtention d’un access token.
  • siteId
Récupérez le siteId directement dans votre code à partir du siteCode en appelant l’endpoint de récupération d’un site par code, ou trouvez-le dans l’application en suivant les étapes de Créer une nouvelle expérience.

Concepts clés

La variation de référence

Kameleoon ajoute automatiquement une variation de référence à chaque section que vous envoyez. Cette référence apparaît dans la réponse sous la forme variationId: "0", au sein des entrées d’allocation de la section correspondante. Si vous envoyez votre propre variation nommée Original, Kameleoon la crée comme une variation supplémentaire distincte. Elle n’identifie ni ne remplace la référence générée. N’envoyez une variation Original explicite que si vous souhaitez tester deux variations de référence distinctes dans la même section.

Les Id envoyés par le client sont temporaires

Les valeurs sectionId et id de variation que vous envoyez dans mvtVariations ne servent qu’à relier les entrées au sein de cette seule requête : elles connectent chaque entrée d’allocation de mvtAllocationSettings à la section et à la variation correspondantes, avant que Kameleoon ne génère des Id permanents. Utilisez les entiers de votre choix. Kameleoon ignore les valeurs envoyées et les remplace par ses propres sectionId et variationId générés. Utilisez les valeurs générées (renvoyées dans la réponse et par une requête GET ultérieure) pour toutes les requêtes suivantes. La réponse ne renvoie pas les noms de variation que vous avez envoyés, uniquement les Id générés. Si vous devez confirmer quel Id généré correspond à quel nom envoyé, vérifiez l’expérience dans l’application Kameleoon.

Id de section et Id de combinaison

Kameleoon génère deux ensembles distincts d’Id pour un test multivariate :
  • Les Id de section et de variation identifient une variation au sein d’une section. Utilisez-les dans mvtAllocationSettings.sectionsAllocations.
  • Les Id de combinaison identifient une combinaison complète de variations, une par section, affichée aux visiteurs exposés. Kameleoon génère toutes les combinaisons possibles selon le produit cartésien des variations de toutes les sections (y compris la référence de chaque section) et renvoie les Id de combinaison dans le tableau variations de premier niveau, ainsi que comme clés dans la map deviations. Utilisez-les dans mvtAllocationSettings.combinationsAllocations.
sectionsAllocations et combinationsAllocations utilisent tous deux la même structure d’entrée d’allocation (allocationPart, checked, locked, sectionId, variationId) : choisissez une seule méthode :
  • Renseignez sectionsAllocations pour allouer le trafic par variation au sein de chaque section. Kameleoon déduit la part de chaque combinaison à partir des valeurs de section.
  • Renseignez combinationsAllocations pour allouer le trafic directement à des combinaisons spécifiques.
Les Id de combinaison n’existant pas avant leur génération par Kameleoon, vous ne pouvez pas renseigner combinationsAllocations dans la requête de création. Récupérez les Id de combinaison générés avec une requête GET, puis définissez combinationsAllocations dans une requête PATCH ultérieure, en suivant le même schéma que celui utilisé pour sectionsAllocations dans ce tutoriel.

Étapes

1. Créer l’expérience

Endpoint :
Exemple :
Réponse (abrégée) :
Remarquez que Kameleoon a généré de nouveaux sectionId et variationId (4451, 4452, 1351293-1351296), a ajouté une variation de référence (variationId: "0") à chaque section, et a remplacé l’allocation envoyée par une part égale de 0.33333334, en réinitialisant locked à false. Kameleoon conserve exposedPart tel qu’envoyé. Passez à l’étape suivante pour définir l’allocation souhaitée.

2. Récupérer les Id générés

Si vous n’avez pas conservé les Id générés à partir de la réponse de création, récupérez-les avec une requête GET. Endpoint :
Exemple :
La réponse contient le même tableau mvtAllocationSettings.sectionsAllocations que celui présenté à l’étape 1, avec les valeurs sectionId et variationId générées dont vous avez besoin pour l’étape suivante.

3. Définir une allocation de trafic personnalisée

Endpoint :
Envoyez à nouveau mvtAllocationSettings, cette fois en utilisant les valeurs sectionId et variationId générées à l’étape 2. Exemple :
Réponse (abrégée) :
L’allocation correspond désormais aux valeurs envoyées, et locked reste true. Une requête GET ultérieure confirme le même résultat.

4. Vérifier l’expérience

Rendez-vous sur le Experiments Dashboard de l’application Kameleoon et ouvrez l’expérience pour vérifier que les sections, variations et allocations de trafic correspondent à votre configuration.

Limites connues

  • La suppression de tests multivariate volumineux peut expirer. DELETE /experiments/{experimentId} peut renvoyer une erreur 504 Gateway Timeout lorsque l’expérience comporte de nombreuses combinaisons. Un délai dépassé ne signifie pas nécessairement que la suppression a échoué : envoyez une requête GET pour ce même Id d’expérience afin de vérifier si elle existe encore avant de retenter la suppression.