View a markdown version of this page

Exemple 2 : répartition A/B du trafic - AWS Elemental MediaTailor

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple 2 : répartition A/B du trafic

Scénario

Un service de streaming souhaite utiliser une fonction CUSTOM_OUTPUT pour répartir de manière aléatoire le trafic de demandes publicitaires entre deux URL de serveur de décision publicitaire (ADS) à des fins de test. A/B La moitié des demandes publicitaires sont destinées au point de terminaison v1 et l'autre moitié au point de terminaison v2.

Configuration

A/B répartition du trafic (CUSTOM_OUTPUT) :

{ "FunctionId": "abTestAdsUrl", "FunctionType": "CUSTOM_OUTPUT", "CustomOutputConfiguration": { "Runtime": "JSONATA", "Output": { "adsRequest.url": "{%$random() < 0.5 ? 'https://ads.example.com/v1/decision?session=' & session.id : 'https://ads.example.com/v2/decision?session=' & session.id%}" } } }

Dans cette configuration :

  • FunctionId— Nom unique pour cette fonction.

  • FunctionTypeCUSTOM_OUTPUT évalue les expressions sans effectuer d'appels HTTP.

  • Output— Correspond adsRequest.url à une expression qui sélectionne de manière aléatoire l'une des deux URL ADS.

Cartographie des fonctions

{ "FunctionMapping": { "PRE_ADS_REQUEST": "abTestAdsUrl" } }

Que se passe-t-il lorsque la fonction s'exécute

  1. Une interruption publicitaire se produit lors de la diffusion.

  2. MediaTailor exécute le hook PRE_ADS_REQUEST du cycle de vie et s'exécuteabTestAdsUrl.

  3. La $random() fonction renvoie une valeur comprise entre 0 et 1. Si la valeur est inférieure à 0,5, la fonction définit l'URL ADS sur le point de terminaison v1. Sinon, il définit l'URL du point de terminaison v2.

La $random() fonction est évaluée à chaque pause publicitaire, de sorte que la répartition se fait par demande publicitaire, et non par session.

Astuce

Pour ajuster le ratio de répartition du trafic, modifiez la valeur du seuil. Par exemple, $random() < 0.8 envoie 80 % du trafic vers la première URL et 20 % vers la seconde.

Note

L'écriture vers adsRequest.url remplace l'URL ADS par défaut configurée dans la configuration de diffusion pour la pause publicitaire en cours.

Pour plus d’informations, consultez SORTIE_PERSONNALISÉE, DEMANDE PRÉALABLE AUX ANNONCES et Référence d'expression JSonata.