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 des demandes d'annonces entre deux URL de serveur de décision publicitaire (ADS) à des fins A/B de test. La moitié des demandes d'annonces sont destinées au terminal v1 et l'autre moitié au terminal 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.

  • FunctionType— CUSTOM_OUTPUT évalue les expressions sans passer 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 de publicité se produit pendant la lecture.

  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 vers le point de terminaison v2.

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

Astuce

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

Note

Writing to adsRequest.url remplace l'URL ADS par défaut configurée dans la configuration de lecture pour la pause publicitaire en cours.

Pour plus d’informations, consultez Sortie personnalisée, Pre-ads demande et JSONataréférence d'expression.