View a markdown version of this page

広告後のレスポンス - AWS Elemental MediaTailor

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

広告後のレスポンス

起動時

MediaTailor は、VAST ラッパーリダイレクトの解決など、ADS からレスポンスを受信して解析POST_ADS_RESPONSEした後、 にマッピングされた関数を実行します。この関数は、MediaTailor が挿入する広告を選択する前に解析された広告を表示するため、ここで行った変更は、どの広告が広告時間枠を満たすかに影響します。

フックは、すべてのストリーミングプロトコル (HLS および DASH) とすべての再生モード (ライブ、VOD、およびプリロール) に対して起動します。通常、広告時間枠ごとに 1 回発生します。複数の広告時間枠を一度にカバーする ADS レスポンス (VMAP レスポンスなど) およびプリフェッチされた広告レスポンスの場合、MediaTailor がレスポンスを処理するとフックが起動し、avail入力名前空間は存在しません。$exists(avail) を使用して、avail フィールドにアクセスする前に を確認します。

Input

event.*、session.*、adsRequest.*、および adsResponse.*に加えて、レスポンスが 1 つの広告時間枠に適用されるavail.*場合。使用可能なすべてのフィールドについては、「」を参照してください入力フィールドリファレンス。

許可される出力名前空間

Namespace 使用できるタイプ 出力の使用方法
adsResponse.ads 広告オブジェクトの配列 このレスポンスの解析済み広告リストを置き換えます。MediaTailor は、返された各広告を によって元の広告と照合adIdし、返されたリストで広告の選択に進みます。
temp.* いずれか エグゼキュターのステップ間で値を渡すための一時的なデータ。永続化されません。

変更された広告リストを に書き戻しますadsResponse.ads。次のようにできます:

  • フィルター — 元の広告のサブセットを返します。省略した広告は挿入対象とは見なされず、その広告が占有した期間が他の広告で埋められるようになります。

  • 並べ替え — 広告を別の順序で返します。順序は、どの広告が最初に広告時間枠を満たすかに影響します。

  • 変更 — 広告trackingEventsの durationSeconds、adSystemadTitle、mediaFiles、、または を変更します。返された広告は変更されず、元の VAST メタデータがすべて保持されます。

  • 挿入 — 元のレスポンスになかった広告を追加します。新しいエントリには、adId、durationSeconds、および を含める必要がありますmediaFiles。同じフック呼び出しのVAST_REQUEST関数でフェッチされた広告は例外です。MediaTailor adId は広告の完全な解析済み VAST データを復元するため、このような広告を で追加するだけで十分です。詳細については、「VAST リクエスト」を参照してください。

重要

フィルタリングするときは、必ず JSONata 配列コンストラクタまたは配列強制を使用してください。などのフィルター式は、1 つの広告が一致すると 1 つのオブジェクトadsResponse.ads[adSystem != 'BLOCKED']を生成します。ゼロ広告が一致すると、まったく値が生成されません。この場合、出力キーは省略され、フィルターは効果がありません。式を角括弧で囲むか、 を追加します[]。

{ "Output": { "adsResponse.ads": "{%adsResponse.ads[adSystem != 'BLOCKED'][]%}" } }

返される広告リストには、次のルールが適用されます。

  • 2 つのエントリが を共有する場合adId、最初の出現が優先されます。

  • 無効なエントリは個別に拒否されます。同じ出力の有効なエントリは引き続き適用されます。

  • 挿入されたエントリの が ADS レスポンスの広告とadId衝突した場合、元の広告がベースとして使用され、その上にフィールドの変更が適用されます。

このフックに表示されないもの

このフックは広告選択の前に実行されるため、後で他の MediaTailor 機能が寄与する広告は表示されず、最終的に挿入される広告は判断できません。これは、トランスコードステータスとフィルの決定が後で行われるためです。プリフェッチされた広告の場合、MediaTailor がプリフェッチレスポンス自体を処理するとフックが起動します。後の広告時間枠では、以前にプリフェッチされた広告は、このフックの実行後にマージされるため、フックには表示されません。最終的な広告セットを操作するには、 を使用しますPRE_MANIFEST_INSERTION。

一般的なユースケース

  • 競合する広告システムから広告を削除して、同じ広告ブレークに表示されないようにするなど、メタデータで広告をフィルタリングします (意図的な分離)。

  • プライマリレスポンスが短い場合は、 VAST_REQUEST関数を使用してセカンダリ広告サーバーから追加の広告を取得し、広告リストに追加します。

  • 優先広告が広告時間枠を埋めるように広告の順序を変更します。

  • 挿入前に追跡イベントまたは広告メタデータを変更します。

失敗動作

にアタッチされた関数がタイムアウト、式エラー、無効な出力などの何らかの理由でPOST_ADS_RESPONSE失敗した場合、MediaTailor は関数の出力を破棄します。リクエストは、関数がアタッチされていないかのように、元の ADS レスポンスで続行されます。シリアル化された入力が入力サイズ制限を超えると、MediaTailor はフック呼び出しを完全にスキップします。適用される制限については、「」を参照してください制限。