翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
例 4: セカンダリ広告サーバーのフォールバック
シナリオ
プライマリ ADS が返す広告は、広告時間枠が保持できる数よりも少なくなることがあります。その場合は、セカンダリ広告サーバーから追加の広告を取得し、広告リストに追加して、余分な広告が残りの時間を埋められるようにします。
この例では、POST_ADS_RESPONSEライフサイクルフックを使用します。VAST_REQUEST 関数はセカンダリ広告を取得し、プロセスをSEQUENTIAL_EXECUTORオーケストレーションします。エグゼキュターの出力ブロックは、フェッチされた広告を広告リストに追加し、プライマリレスポンスに十分な広告がすでにある場合、そのセカンダリフェッチを完全にRunConditionスキップします。
関数の設定
フェッチ関数 (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%}" } } }
シーケンス (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[]%}" } } }
関数マッピング
{ "FunctionMapping": { "POST_ADS_RESPONSE": "backupAdsFallback" } }
実行時の処理
-
MediaTailor はプライマリ ADS レスポンスを受信して解析し、
POST_ADS_RESPONSEライフサイクルフックを起動します。 -
プライマリレスポンスに含まれる広告が 3 つ未満の場合、 は
RunConditionを評価しtrue、セカンダリ広告サーバーをfetchBackupAds呼び出します。次に、MediaTailor はレスポンスを VAST として解析し、ラッパーリダイレクトを解決して、解析された広告を に書き込みますtemp.backupAds。 -
プライマリレスポンスに既に 3 つ以上の広告がある場合、フェッチはスキップされ
temp.backupAds、設定されません。 -
シーケンスの出力ブロックは、結合された広告リストを に書き込みます
adsResponse.ads。フェッチがスキップされると、条件はelseブランチを受け取り、元の広告を変更せずに返します。セカンダリ広告は同じフック呼び出しのVAST_REQUEST関数によって解析されたため、MediaTailor は、広告を選択する前に、追加された各広告の完全な VAST データを復元します。 -
広告の選択は、結合されたリストに進みます。セカンダリフェッチが失敗した場合、
temp.backupAdsは空の配列であり、元の広告リストは変更されずに使用されます。
注記
[] 出力式の末尾は必須です。配列強制がない場合、ゼロまたは 1 つの広告を生成する式は配列を生成せず、出力は破棄または誤適用されます。詳細については、「広告後のレスポンス」を参照してください。
この例で使用されるフィールドの詳細については、VAST リクエスト「」および「」を参照してください広告後のレスポンス。