本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
廣告自助式
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 回應,兩者共同形成一個自助式群組。
重要概念
下列術語說明廣告自助式服務的核心概念:
-
循序廣告 –
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.fallbackOnNoAd和 Wrapper.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_SEQUENCE和 IGNORE_AD_SEQUENCE。透過中繼組態設定 VOD 前導的廣告自助式。
廣告自助式服務的運作方式
廣告替換條件
如果排序廣告遇到下列其中一個失敗案例,MediaTailor 會嘗試將排序廣告取代為來自相同自助式群組的合格獨立廣告。如果同一個自助式群組中沒有可用的獨立廣告,MediaTailor 會使用來自其他自助式群組的獨立廣告,如果可用的話。
| 失敗案例 | 說明 |
|---|---|
| VAST 剖析失敗 | 由於缺少必要的 VAST 元素 (例如, MediaFiles、 Creatives或 Impression遺失或 MediaFile VASTAdTagURI 無效),排序廣告無法剖析。 |
| VAST 包裝函式解析失敗 | 重新導向逾時、失敗或傳回空的回應。 |
| VPAID 廣告已捨棄 | 排序廣告是 VPAID,工作階段使用伺服器端報告或未設定 Slate。 |
| 廣告轉碼未就緒 | 排序廣告的轉碼狀態不是 SUCCESS (例如 IN_PROGRESS 或 ERROR)。 |
| 超過可用持續時間 | 排序廣告的持續時間超過剩餘時段持續時間 (即時工作流程)。 |
獨立廣告資格
若要符合替代資格,獨立廣告必須符合下列條件:
-
不是 VPAID 廣告
-
完成轉碼
-
持續時間符合剩餘時段持續時間
獨立廣告選擇
當序列化廣告失敗時,MediaTailor 會使用下列優先順序從合格的獨立廣告中選取替換項目:
-
首先是相同的自助式群組 – MediaTailor 偏好來自失敗廣告本身自助式群組的獨立廣告。
-
其他自助式群組 – 僅在相同自助式群組中沒有符合資格的廣告時使用。
如果找不到符合資格的獨立廣告,則不會填充該位置並SkippedReason發出適當的 。
VAST 包裝函式行為
MediaTailor 處理包裝函式重新導向回應的方式取決於兩個包裝函式變數的值: Wrapper.fallbackOnNoAd和 Wrapper.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>
播放順序:
-
seqAd1
-
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>
播放順序:
-
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>
播放順序:
-
seqAd1
-
redirectSeqAd1
-
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>
播放順序:
-
seqAd1
-
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>
播放順序:
-
seqAd1
-
redirectSeqAd1
-
redirectSeqAd2
-
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>
播放順序:
-
seqAd1
-
seqAd3
-
redirectSeqAd1
-
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_PROGRESS或 VPAID_AD) 為 SkippedReason。
錯誤信標
MediaTailor 會處理廣告自助式廣告的錯誤信標,如下所示:
-
失敗的序列廣告 – 觸發錯誤信標 (現有行為)。
-
尚未就緒的獨立廣告 (廣告轉碼狀態不是 SUCCESS) – 會觸發錯誤信標 (與序列廣告相同)。
-
未使用且符合插入資格但不需要的獨立廣告 – 不會觸發錯誤信標。
ADS 事件變更
啟用廣告自助式服務時,MediaTailor 會將下列欄位新增至兩個 ADS 事件:
VAST_RESPONSE 事件
VAST_RESPONSE 事件VastAd中的每個 都包含下列欄位。
| 欄位 | Type | Description |
|---|---|---|
buffetGroup |
String | MediaTailor 產生的字串,定義廣告所屬的自助式群組。 |
sequence |
Int | 元素的序列值Ad。 |
FILLED_AVAIL 事件
creativeAds 和 FILLED_AVAIL事件skippedAds中的每個項目都包含下列欄位。
| 欄位 | Type | Description |
|---|---|---|
buffetGroup |
String | MediaTailor 產生的字串,定義廣告所屬的自助式群組。 |
sequence |
Int | 元素的序列值Ad。 |
這些欄位可讓您判斷:
-
哪些廣告剖析為排序式與獨立式
-
插入哪些廣告及其類型
-
為什麼略過排序廣告,以及獨立廣告是否取代它
-
為什麼獨立廣告無法使用
另請參閱
如需 PutPlaybackConfiguration API 和 IAB VAST 規格的詳細資訊,請參閱下列內容:
-
PutPlaybackConfiguration API 參考 – 用於設定
AdSequencingMode和相關設定的完整參數參考。 -
IAB VAST 4.x Specification
IAB Tech Lab網站上的 – 定義廣告 Pod、排序廣告和獨立廣告的業界標準。 -
AWS Elemental MediaTailor 使用 Amazon CloudWatch 指標進行監控 – 所有 MediaTailor CloudWatch 指標的完整參考,包括新的廣告自助式指標。