View a markdown version of this page

Exemple 4 : solution de repli sur un serveur publicitaire secondaire - 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 4 : solution de repli sur un serveur publicitaire secondaire

Scénario

Votre ADS principal renvoie parfois moins d'annonces que ce que la pause publicitaire peut contenir. Dans ce cas, vous souhaitez récupérer des publicités supplémentaires sur un serveur publicitaire secondaire et les ajouter à la liste des annonces, afin que les publicités supplémentaires puissent occuper le temps restant.

Cet exemple utilise le hook du POST_ADS_RESPONSE cycle de vie. Une VAST_REQUEST fonction récupère les publicités secondaires et une SEQUENTIAL_EXECUTOR orchestre le processus. Le bloc de sortie de l'exécuteur ajoute les publicités récupérées à la liste des annonces et RunCondition ignore complètement l'extraction secondaire lorsque la réponse principale contient déjà suffisamment de publicités.

Configuration de la fonction

Fonction de récupération (fetchBackupAds) :

{ "FunctionId": "fetchBackupAds", "FunctionType": "VAST_REQUEST", "VastRequestConfiguration": { "Runtime": "JSONATA", "MethodType": "GET", "Url": "{%'https://backup-ads.example.com/vast?sid=' & session.uuid%}", "Headers": { "Accept": "application/xml" }, "RequestTimeoutMilliseconds": 1000, "Output": { "temp.backupAds": "{%response.parsedAds%}" } } }

Séquence (backupAdsFallback) :

{ "FunctionId": "backupAdsFallback", "FunctionType": "SEQUENTIAL_EXECUTOR", "SequentialExecutorConfiguration": { "Runtime": "JSONATA", "TimeoutMilliseconds": 2000, "FunctionList": [ { "FunctionId": "fetchBackupAds", "RunCondition": "{%$count(adsResponse.ads) < 3%}" } ], "Output": { "adsResponse.ads": "{%$count(adsResponse.ads) < 3 ? $append(adsResponse.ads, temp.backupAds)[] : adsResponse.ads[]%}" } } }

Cartographie des fonctions

{ "FunctionMapping": { "POST_ADS_RESPONSE": "backupAdsFallback" } }

Que se passe-t-il lors de l'exécution

  1. MediaTailor reçoit et analyse la réponse ADS principale, puis déclenche le hook du POST_ADS_RESPONSE cycle de vie.

  2. Si la réponse principale contient moins de 3 publicités, le serveur publicitaire secondaire RunCondition est évalué true et fetchBackupAds appelle le serveur publicitaire secondaire. MediaTailor analyse ensuite la réponse en tant que VAST, résout les redirections de wrapper et écrit les publicités analysées dans. temp.backupAds

  3. Si la réponse principale contient déjà 3 annonces ou plus, l'extraction est ignorée et n'temp.backupAdsest pas définie.

  4. Le bloc de sortie de la séquence écrit la liste d'annonces combinée dansadsResponse.ads. Lorsque l'extraction a été ignorée, la condition prend la else branche et renvoie les annonces d'origine inchangées. Étant donné que les publicités secondaires ont été analysées par une VAST_REQUEST fonction dans le même hook d'invocation, MediaTailor restaure les données VAST complètes de chaque annonce ajoutée avant la sélection de l'annonce.

  5. La sélection des annonces se poursuit avec la liste combinée. Si l'extraction secondaire a échoué, un tableau temp.backupAds est vide et la liste d'annonces d'origine est utilisée telle quelle.

Note

La fin de [] l'expression de sortie est obligatoire. Sans coercition de tableau, une expression qui produit zéro ou une annonce ne produit pas de tableau, et la sortie est ignorée ou mal appliquée. Pour de plus amples informations, veuillez consulter Post-ads réponse.

Pour plus d'informations sur les champs utilisés dans cet exemple, consultez Demande Vaste etPost-ads réponse.