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
-
MediaTailor reçoit et analyse la réponse ADS principale, puis déclenche le hook du
POST_ADS_RESPONSEcycle de vie. -
Si la réponse principale contient moins de 3 publicités, le serveur publicitaire secondaire
RunConditionest évaluétrueetfetchBackupAdsappelle 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 -
Si la réponse principale contient déjà 3 annonces ou plus, l'extraction est ignorée et n'
temp.backupAdsest pas définie. -
Le bloc de sortie de la séquence écrit la liste d'annonces combinée dans
adsResponse.ads. Lorsque l'extraction a été ignorée, la condition prend laelsebranche et renvoie les annonces d'origine inchangées. Étant donné que les publicités secondaires ont été analysées par uneVAST_REQUESTfonction 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. -
La sélection des annonces se poursuit avec la liste combinée. Si l'extraction secondaire a échoué, un tableau
temp.backupAdsest 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.