View a markdown version of this page

廣告自助式 - AWS Elemental MediaTailor

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

廣告自助式

Interactive Advertising Bureau (IAB) Video Ad Serving Template(VAST) 規格定義廣告 Pod 和廣告自助式。此機制支援有序廣告插入,並在廣告插入失敗時自動回復。在廣告 Pod 中,排序廣告會依序播放。獨立廣告做為自助式廣告,MediaTailor 會在排序廣告失敗時選取替代廣告。

AWS Elemental MediaTailor 透過 的 中的 AdDecisionServerConfiguration AdSequencingMode設定支援此規格PlaybackConfiguration。設為 時FOLLOW_AD_SEQUENCE,MediaTailor 會依序插入排序廣告,並只在排序廣告無法插入時使用獨立廣告做為替代。

VAST 回應範例

下列範例顯示包含排序廣告和獨立廣告的 VAST 回應:

<VAST> <Ad sequence="1" id="sequencedAd1">...</Ad> <!-- Sequenced Ad 1 --> <Ad sequence="2" id="sequencedAd2">...</Ad> <!-- Sequenced Ad 2 --> <Ad id="standAloneAd1">...</Ad> <!-- Standalone Ad 1 --> <Ad id="standAloneAd2">...</Ad> <!-- Standalone Ad 2 --> <Ad id="standAloneAd3">...</Ad> <!-- Standalone Ad 3 --> </VAST>

在此範例中,兩個排序廣告會形成廣告 Pod。這三個獨立廣告組成廣告自助式。它們共同構成一個自助式群組。如果sequencedAd1失敗,MediaTailor 會先嘗試將其取代為來自相同自助式群組的合格獨立廣告。如果該群組中沒有符合資格的獨立廣告,MediaTailor 會從其他自助式群組中的獨立廣告中選取。

下圖顯示具有廣告 Pod (序列廣告) 和廣告自助式 (獨立廣告) 的 VAST 回應,兩者共同形成一個自助式群組。

包含廣告 Pod (兩個序列廣告) 和廣告自助式 (三個獨立廣告) 的 VAST 回應圖表,形成一個自助式群組。

重要概念

下列術語說明廣告自助式服務的核心概念:

  • 循序廣告sequence <Ad>元素中具有屬性的廣告。這些會形成排序廣告 Pod,並以遞增的順序插入。

  • 獨立 (儲存貯體) 廣告sequence 沒有屬性的廣告。這些只會在序列化廣告無法插入時做為替代。

  • 自助式群組 – MediaTailor 在單一 VAST 回應中將廣告 Pod 與其獨立廣告配對。當排序廣告是包裝函式時,其重新導向的 VAST 會形成自己的獨立自助式群組。取代失敗的排序廣告時,MediaTailor 會優先考慮來自相同自助式群組的獨立廣告。如果同一個自助式群組中沒有符合資格的獨立廣告,MediaTailor 會回到來自其他自助式群組的獨立廣告。

注意

sequence 是指<Ad>元素層級屬性,而不是在<Creative>元素中找到的sequence屬性。

廣告自助式的優勢

如果沒有廣告自助式,MediaTailor 會以相同的方式處理所有廣告,這可能會導致下列問題:

  • VOD – 即使沒有失敗,也會插入獨立廣告,中斷商定的廣告休息位置和過度填滿廣告休息時間。

  • 即時 – 較低收入的獨立廣告可以在排序廣告之前插入,並佔用時段持續時間,因此沒有空間容納較高收入的排序廣告。

在啟用廣告自助式服務的情況下,MediaTailor 只會插入排序廣告,並只在排序廣告無法插入時使用獨立廣告做為替代。這可確保先播放最高收入的廣告。

警告

如果您的廣告決策伺服器 (ADS) 回應不包含任何序列廣告 (沒有 sequence <Ad>元素具有 屬性),則啟用廣告自助式會導致沒有廣告插入。

啟用廣告自助式

廣告自助式是一種選擇加入功能,您可以使用 PutPlaybackConfiguration API 為每個播放組態設定此功能。

AdSequencingMode 值

下表說明可用的AdSequencingMode值。

Value 說明
IGNORE_AD_SEQUENCE (default) MediaTailor 會依照在 VAST 回應中顯示的順序插入廣告,無論序列屬性為何。
FOLLOW_AD_SEQUENCE MediaTailor 會插入排序廣告,以便即時和 VOD 工作流程。失敗的序列廣告會取代為獨立廣告。
FOLLOW_AD_SEQUENCE_ONLY_LIVE 廣告自助式行為僅針對即時工作流程啟用。
FOLLOW_AD_SEQUENCE_ONLY_VOD 廣告自助式行為僅針對 VOD 工作流程啟用。
注意

當您啟用廣告自助式服務時,MediaTailor 會遵守 Wrapper.fallbackOnNoAdWrapper.allowMultipleAds 屬性。

中繼組態

下列範例為即時和 VOD 工作流程啟用廣告自助式:

{ "PlaybackConfiguration": { "AdDecisionServerConfiguration": { "VastResponse": { "AdSequencingMode": "FOLLOW_AD_SEQUENCE" } } } }

下列範例僅針對即時工作流程啟用廣告自助式:

{ "PlaybackConfiguration": { "AdDecisionServerConfiguration": { "VastResponse": { "AdSequencingMode": "FOLLOW_AD_SEQUENCE_ONLY_LIVE" } } } }

下列範例僅針對 VOD 工作流程啟用廣告自助式:

{ "PlaybackConfiguration": { "AdDecisionServerConfiguration": { "VastResponse": { "AdSequencingMode": "FOLLOW_AD_SEQUENCE_ONLY_VOD" } } } }

即時前導組態

下列範例會啟用即時預導廣告的廣告自助式廣告:

{ "PlaybackConfiguration": { "LivePrerollConfiguration": { "AdDecisionServerConfiguration": { "VastResponse": { "AdSequencingMode": "FOLLOW_AD_SEQUENCE" } } } } }
注意

LivePrerollConfiguration 僅支援 FOLLOW_AD_SEQUENCEIGNORE_AD_SEQUENCE。透過中繼組態設定 VOD 前導的廣告自助式。

廣告自助式服務的運作方式

廣告替換條件

如果排序廣告遇到下列其中一個失敗案例,MediaTailor 會嘗試將排序廣告取代為來自相同自助式群組的合格獨立廣告。如果同一個自助式群組中沒有可用的獨立廣告,MediaTailor 會使用來自其他自助式群組的獨立廣告,如果可用的話。

失敗案例 說明
VAST 剖析失敗 由於缺少必要的 VAST 元素 (例如, MediaFilesCreativesImpression遺失或 MediaFile VASTAdTagURI 無效),排序廣告無法剖析。
VAST 包裝函式解析失敗 重新導向逾時、失敗或傳回空的回應。
VPAID 廣告已捨棄 排序廣告是 VPAID,工作階段使用伺服器端報告或未設定 Slate。
廣告轉碼未就緒 排序廣告的轉碼狀態不是 SUCCESS (例如 IN_PROGRESS 或 ERROR)。
超過可用持續時間 排序廣告的持續時間超過剩餘時段持續時間 (即時工作流程)。

獨立廣告資格

若要符合替代資格,獨立廣告必須符合下列條件:

  • 不是 VPAID 廣告

  • 完成轉碼

  • 持續時間符合剩餘時段持續時間

獨立廣告選擇

當序列化廣告失敗時,MediaTailor 會使用下列優先順序從合格的獨立廣告中選取替換項目:

  1. 首先是相同的自助式群組 – MediaTailor 偏好來自失敗廣告本身自助式群組的獨立廣告。

  2. 其他自助式群組 – 僅在相同自助式群組中沒有符合資格的廣告時使用。

如果找不到符合資格的獨立廣告,則不會填充該位置並SkippedReason發出適當的 。

VAST 包裝函式行為

MediaTailor 處理包裝函式重新導向回應的方式取決於兩個包裝函式變數的值: Wrapper.fallbackOnNoAdWrapper.allowMultipleAds

  • fallbackOnNoAd 當重新導向回應為空、逾時或在 ADS 請求期間發生錯誤時, 就會生效。

  • allowMultipleAds 如果 ADS 回應包含一或多個廣告, 就會生效。

空白 VAST、請求錯誤或請求逾時

下表說明重新導向回應為空、逾時或發生錯誤時的 MediaTailor 行為。

fallbackOnNoAd MediaTailor 行為
true (default) MediaTailor 會選取獨立廣告來取代失敗的包裝函式,偏好相同的自助式群組。如果沒有符合資格的相同群組廣告,MediaTailor 會從其他自助式群組中選取。
false MediaTailor 會捨棄廣告位置,並移至 Pod 中的下一個廣告。不會發生取代。
範例 fallbackOnNoAd=true (重新導向失敗)

父系 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad sequence="2"> <Wrapper fallbackOnNoAd="true"> <VASTAdTagURI>https://ads.example.com/vast</VASTAdTagURI> </Wrapper> </Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

包裝函式重新導向回應:空白 VAST、逾時或錯誤。

已解決的 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <!-- standAloneAd1 replaced failed Wrapper Ad and now has the Wrapper's sequence (2) --> <Ad sequence="2" id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

播放順序:

  1. seqAd1

  2. standAloneAd1

範例 fallbackOnNoAd=false (重新導向失敗)

父系 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad sequence="2"> <Wrapper fallbackOnNoAd="false"> <VASTAdTagURI>https://ads.example.com/vast</VASTAdTagURI> </Wrapper> </Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

包裝函式重新導向回應:空白 VAST、逾時或錯誤。

已解決的 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <!-- sequence 2 is not replaced --> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

播放順序:

  1. seqAd1

回應包含一或多個廣告

下表說明重新導向回應包含一或多個廣告時的 MediaTailor 行為。

allowMultipleAds MediaTailor 行為
false (default) MediaTailor 從重新導向回應中選取一個廣告,並捨棄剩餘的廣告。選取的廣告會繼承父系包裝函式廣告的序列值。選擇策略:MediaTailor 會在重新導向回應中選取最低序列的廣告。如果沒有可用的排序廣告,MediaTailor 會挑選可用的獨立廣告。
true 當包裝函式具有序列屬性時,MediaTailor 會將重新導向廣告插入包裝函式的位置。當包裝函式沒有序列屬性時,MediaTailor 會在父項的序列廣告之後插入重新導向廣告。解析的廣告會形成自己的自助式群組。
範例 allowMultipleAds=false,包裝函式的序列=2

父系 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad sequence="2"> <Wrapper allowMultipleAds="false"> <VASTAdTagURI>https://ads.example.com/vast</VASTAdTagURI> </Wrapper> </Ad> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

包裝函式重新導向回應:

<VAST> <Ad sequence="1" id="redirectSeqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd2">...</Ad> <Ad id="redirectStandAloneAd1">...</Ad> </VAST>

已解決的 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd1">...</Ad> <!-- redirectSeqAd1 selected, inherits Wrapper's sequence (2) --> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

播放順序:

  1. seqAd1

  2. redirectSeqAd1

  3. seqAd3

範例 allowMultipleAds=false,包裝函式沒有序列

父系 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad> <Wrapper allowMultipleAds="false"> <VASTAdTagURI>https://ads.example.com/vast</VASTAdTagURI> </Wrapper> </Ad> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

包裝函式重新導向回應:

<VAST> <Ad sequence="1" id="redirectSeqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd2">...</Ad> <Ad id="redirectStandAloneAd1">...</Ad> </VAST>

已解決的 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad id="redirectSeqAd1">...</Ad> <!-- redirectSeqAd1 selected, inherits Wrapper's sequence (UNDEFINED) --> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

播放順序:

  1. seqAd1

  2. seqAd3

注意

不會播放 redirectSeqAd1,因為它未定義序列。

範例 allowMultipleAds=true,包裝函式的序列=2

父系 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad sequence="2"> <Wrapper allowMultipleAds="true"> <VASTAdTagURI>https://ads.example.com/vast</VASTAdTagURI> </Wrapper> </Ad> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

包裝函式重新導向回應:

<VAST> <Ad sequence="1" id="redirectSeqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd2">...</Ad> <Ad id="redirectStandAloneAd1">...</Ad> </VAST>

已解決的 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <!-- Redirect response merged at sequence 2 --> <Ad sequence="1" id="redirectSeqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd2">...</Ad> <Ad id="redirectStandAloneAd1">...</Ad> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

播放順序:

  1. seqAd1

  2. redirectSeqAd1

  3. redirectSeqAd2

  4. seqAd3

範例 allowMultipleAds=true,包裝函式沒有序列

父系 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad> <Wrapper allowMultipleAds="true"> <VASTAdTagURI>https://ads.example.com/vast</VASTAdTagURI> </Wrapper> </Ad> <Ad sequence="3" id="seqAd3">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

包裝函式重新導向回應:

<VAST> <Ad sequence="1" id="redirectSeqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd2">...</Ad> <Ad id="redirectStandAloneAd1">...</Ad> </VAST>

已解決的 VAST:

<VAST> <Ad sequence="1" id="seqAd1">...</Ad> <Ad sequence="3" id="seqAd3">...</Ad> <!-- Redirect response merged after sequenced ads --> <Ad sequence="1" id="redirectSeqAd1">...</Ad> <Ad sequence="2" id="redirectSeqAd2">...</Ad> <Ad id="redirectStandAloneAd1">...</Ad> <Ad id="standAloneAd1">...</Ad> <Ad id="standAloneAd2">...</Ad> </VAST>

播放順序:

  1. seqAd1

  2. seqAd3

  3. redirectSeqAd1

  4. redirectSeqAd2

指標和日誌監控

現有指標的變更

啟用廣告自助式服務時,下列現有指標會變更行為。

指標 廣告自助式的行為
AdDecisionServer.Ads 從 ADS 回應剖析的序列廣告計數。
AdDecisionServer.Duration 僅排序廣告的總持續時間。
AdDecisionServer.FillRate 僅使用序列廣告計算的填滿率。

新指標

啟用廣告自助式服務時,可使用下列新指標。

指標 說明
AdNotReady.SequencedAd 尚未準備好插入的序列廣告數量。
AdNotReady.StandaloneAd 尚未準備好插入的獨立廣告數量 (不包括略過 的廣告StandaloneAdNotNeeded)。
Avail.FillRate.SequencedAd 依排序廣告填入的時段百分比。
Avail.FillRate.StandaloneAd 由獨立廣告填入的時段百分比。
Avail.FilledDuration.SequencedAd 以序列廣告填滿的時段持續時間。
Avail.FilledDuration.StandaloneAd 填滿獨立廣告的時段持續時間。
AdsBilled.SequencedAd 排序的計費廣告數量。
AdsBilled.StandaloneAd 獨立計費廣告的數量。
SkippedReason.StandaloneAdNotNeeded 因為已成功插入所有序列廣告,所以不需要獨立廣告時發出。

新的略過廣告原因

啟用廣告自助式時,可使用下列新的略過廣告原因。

Reason 說明
STANDALONE_AD_NOT_NEEDED 獨立廣告符合資格,但不需要,因為已成功插入所有序列廣告。不會觸發任何錯誤信標。

對於不符合插入資格的獨立廣告 (例如,VPAID 或轉碼未就緒),實際失敗原因會發出 (例如, TRANSCODE_IN_PROGRESSVPAID_AD) 為 SkippedReason

錯誤信標

MediaTailor 會處理廣告自助式廣告的錯誤信標,如下所示:

  • 失敗的序列廣告 – 觸發錯誤信標 (現有行為)。

  • 尚未就緒的獨立廣告 (廣告轉碼狀態不是 SUCCESS) – 會觸發錯誤信標 (與序列廣告相同)。

  • 未使用且符合插入資格但不需要的獨立廣告 – 不會觸發錯誤信標。

ADS 事件變更

啟用廣告自助式服務時,MediaTailor 會將下列欄位新增至兩個 ADS 事件:

VAST_RESPONSE 事件

VAST_RESPONSE 事件VastAd中的每個 都包含下列欄位。

欄位 Type Description
buffetGroup String MediaTailor 產生的字串,定義廣告所屬的自助式群組。
sequence Int 元素的序列值Ad

FILLED_AVAIL 事件

creativeAdsFILLED_AVAIL事件skippedAds中的每個項目都包含下列欄位。

欄位 Type Description
buffetGroup String MediaTailor 產生的字串,定義廣告所屬的自助式群組。
sequence Int 元素的序列值Ad

這些欄位可讓您判斷:

  • 哪些廣告剖析為排序式與獨立式

  • 插入哪些廣告及其類型

  • 為什麼略過排序廣告,以及獨立廣告是否取代它

  • 為什麼獨立廣告無法使用

另請參閱

如需 PutPlaybackConfiguration API 和 IAB VAST 規格的詳細資訊,請參閱下列內容: