您可以使用動態廣告插播 API,要求及追蹤動態廣告插播隨選影片串流。支援 HTTP 即時串流和 DASH 串流。
服務:dai.google.com
stream 方法的路徑是相對於 https://dai.google.com
方法:stream
| 方法 | |
|---|---|
stream |
POST /ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
為指定內容來源和影片 ID 建立 HLS DAI 串流。
為指定內容來源和影片 ID 建立 DASH DAI 串流。 |
HTTP 要求
POST https://dai.google.com/ondemand/v1/hls/content/{content-source}/vid/{video-id}/stream
POST https://dai.google.com/ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream
要求標頭
| 參數 | |
|---|---|
api‑key |
string建立串流時提供的 API 金鑰必須適用於發布商的聯播網。 API 金鑰可以透過下列格式,在 HTTP 授權標頭中傳遞,不必在要求主體中提供: Authorization: DCLKDAI key="<api-key>" |
路徑參數
| 參數 | |
|---|---|
content-source |
string串流的 CMS ID。 |
video-id |
string串流的影片 ID。 |
要求主體
要求主體為 application/x-www-form-urlencoded 類型,並包含下列參數:
| 參數 | ||
|---|---|---|
dai-ssb |
選用 | 設為 |
| DFP 指定目標參數 | 選用 | 其他指定目標參數。 |
| 覆寫串流參數 | 選用 | 覆寫串流建立參數的預設值。 |
| HMAC 驗證 | 選用 | 使用 HMAC 型權杖進行驗證。 |
回應主體
如果成功,回應主體會包含新的 Stream。如果是伺服器端信號傳送串流,這個 Stream 只會包含 stream_id 和 stream_manifest 欄位。
Open Measurement
Verifications 欄位包含非伺服器端信標串流的 Open Measurement 驗證資訊。Verifications 包含一或多個 Verification 元素,列出您需要使用第三方評估程式碼驗證廣告素材播放的資源和中繼資料。系統僅支援 JavaScriptResource。詳情請參閱 IAB Tech Lab 和 VAST 4.1 規格。
方法:媒體驗證
在播放期間遇到廣告媒體 ID 後,請立即使用 stream 端點的 media_verification_url 提出要求。media_verification_url 是絕對路徑。
伺服器會啟動媒體驗證,因此伺服器端信號傳送串流不需要媒體驗證要求。
對 media verification 端點提出的要求是等冪。
| 方法 | |
|---|---|
media verification |
GET {media_verification_url}/{ad_media_id}
將媒體驗證事件通知 API。 |
HTTP 要求
GET {media-verification-url}/{ad-media-id}
回應主體
media verification
會傳回下列回應:
HTTP/1.1 204 No Content媒體驗證成功,且所有 Ping 都已傳送。HTTP/1.1 404 Not Found如果要求因網址格式錯誤或過期而無法驗證媒體。HTTP/1.1 404 Not Found如果先前已成功驗證這個 ID。HTTP/1.1 409 Conflict如果其他要求已在傳送 Ping。
廣告媒體 ID (HLS)
廣告媒體 ID 會使用保留給「使用者定義文字資訊」影格的金鑰 TXXX,編碼為 HLS 時間碼中繼資料。影格內容不會經過加密,且一律以 "google_" 開頭。
每個廣告驗證要求都應將影格的完整文字內容附加至 media_verification_url。
廣告媒體 ID (DASH)
系統會使用 DASH 的 EventStream 元素,將廣告媒體 ID 插入資訊清單。
每個 EventStream 的配置 ID URI 都是 urn:google:dai:2018。
這些事件的 messageData 屬性會包含以 "google_" 開頭的廣告媒體 ID。messageData屬性的所有內容應附加至每個廣告驗證要求的 media_verification_url。
回覆資料
串流
Stream 用於以 JSON 格式,為新建立的串流算繪所有資源的清單。| JSON 表示法 |
|---|
{
"stream_id": string,
"total_duration": number,
"content_duration": number,
"valid_for": string,
"valid_until": string,
"subtitles": [object(Subtitle)],
"hls_master_playlist": string,
"stream_manifest": string,
"media_verification_url": string,
"apple_tv": object(AppleTV),
"ad_breaks": [object(AdBreak)],
} |
| 欄位 | |
|---|---|
stream_id |
string串流 ID。 |
total_duration |
number串流時間長度 (以秒為單位)。 |
content_duration |
number不含廣告的內容長度 (以秒為單位)。 |
valid_for |
string串流的有效時間長度,格式為「00h00m00s」。 |
valid_until |
string串流的有效期限,採用 RFC 3339 格式。 |
subtitles |
[object(Subtitle)]字幕清單。如果為空值,則會省略。僅限 HTTP 即時串流。 |
hls_master_playlist |
string(已淘汰) HLS 主要播放清單網址。使用 stream_manifest。僅限 HLS。 |
stream_manifest |
string串流的資訊清單。對應至 HLS 中的主要播放清單和 DASH 中的 MPD。 這是建立伺服器端信號傳送串流時,回應中除了「stream_id」以外的唯一欄位。 |
media_verification_url |
string媒體驗證網址。 |
apple_tv |
object(AppleTV)AppleTV 裝置專屬的選用資訊。僅限 HLS。 |
ad_breaks |
[object(AdBreak)]AdBreaks 清單。如果為空白,則會省略。 |
AppleTV
AppleTV 包含 Apple TV 裝置專屬資訊。| JSON 表示法 |
|---|
{
"interstitials_url": string,
} |
| 欄位 | |
|---|---|
interstitials_url |
string插頁式廣告網址。 |
AdBreak
AdBreak 說明串流中的單一廣告插播。其中包含位置、時間長度、類型 (片中/片頭/片尾) 和廣告清單。| JSON 表示法 |
|---|
{ "type": string, "start": number, "duration": number, "ads": [object(Ad)], } |
| 欄位 | |
|---|---|
type |
string有效的中斷類型包括:mid、pre 和 post。 |
start |
number廣告插播在串流中的開始位置 (以秒為單位)。 |
duration |
number廣告插播長度 (以秒為單位)。 |
ads |
[object(Ad)]廣告清單。如果為空白,則會省略。 |
廣告
Ad 會說明串流中的廣告。其中包含廣告在插播中的位置、廣告長度,以及一些選用的中繼資料。| JSON 表示法 |
|---|
{
"seq": number,
"start": number,
"duration": number,
"title": string,
"description": string,
"advertiser": string,
"ad_system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
"clickthrough_url": string,
"icons": [object(Icon)],
"wrappers": [object(Wrapper)],
"events": [object(Event)],
"verifications": [object(Verification)],
"universal_ad_id": object(UniversalAdID),
"companions": [object(Companion)],
"interactive_file": object(InteractiveFile),
"skip_metadata": object(SkipMetadata),
"extensions": [],
} |
| 欄位 | |
|---|---|
seq |
number廣告在插播中的位置。 |
start |
number廣告在串流中的開始位置 (以秒為單位)。 |
duration |
number廣告時間長度 (秒)。 |
title |
string廣告的選用標題。 |
description |
string廣告說明 (選填)。 |
advertiser |
string選填的廣告主 ID。 |
ad_system |
string選用廣告系統。 |
ad_id |
string廣告 ID (選用)。 |
creative_id |
string選填廣告素材 ID。 |
creative_ad_id |
string選填的廣告素材廣告 ID。 |
deal_id |
string選填交易 ID。 |
clickthrough_url |
string選用的到達網址。 |
icons |
[object(Icon)]圖示清單,如果為空白則省略。 |
wrappers |
[object(Wrapper)]包裝函式清單。如果為空白,則會省略。 |
events |
[object(Event)]廣告中的事件清單。 |
verifications |
[object(Verification)]Optional Open Measurement verification entries which list the resources and metadata required to execute third-party measurement code to verify creative playback. |
universal_ad_id |
object(UniversalAdID)選用通用廣告 ID。 |
companions |
[object(Companion)]可與此廣告一併顯示的選用隨播廣告。 |
interactive_file |
object(InteractiveFile)選用互動式廣告素材 (SIMID),應在廣告播放期間顯示。 |
skip_metadata |
object(SkipMetadata)可略過廣告的選用中繼資料。如果已設定,表示廣告可略過,並包含如何處理略過使用者介面和追蹤事件的說明。 |
extensions |
stringVAST 中所有 <Extension> 節點的選用清單。 |
事件
事件包含事件類型和事件的呈現時間。| JSON 表示法 |
|---|
{ "time": number, "type": string, } |
| 欄位 | |
|---|---|
time |
number這場活動的呈現時間。 |
type |
string這個事件的類型。 |
副標題
子標題說明影片串流的 Sidecar 字幕軌。這個檔案會儲存兩種字幕格式:TTML 和 WebVTT。TTMLPath 屬性包含 TTML 附檔的網址,WebVTTPath 屬性則包含 WebVTT 附檔的網址。| JSON 表示法 |
|---|
{
"language": string,
"language_name": string,
"ttml": string,
"webvtt": string,
} |
| 欄位 | |
|---|---|
language |
string語言代碼,例如「en」或「de」。 |
language_name |
string語言的描述性名稱。如果同一種語言有多組字幕,這項屬性可區分特定字幕組 |
ttml |
stringTTML 補充資訊檔案的選用網址。 |
webvtt |
stringWebVTT 補充資訊檔案的選用網址。 |
SkipMetadata
SkipMetadata 提供用戶處理可略過廣告略過事件所需的資訊。| JSON 表示法 |
|---|
{
"offset": number,
"tracking_url": string,
} |
| 欄位 | |
|---|---|
offset |
number「Offset」表示播放器應等待多少秒,才會顯示略過按鈕。如果 VAST 中未提供,則會省略。 |
tracking_url |
stringTrackingURL contains a URL that should be pinged on the skip event. |
圖示
Icon 包含 VAST 圖示的相關資訊。| JSON 表示法 |
|---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
| 欄位 | |
|---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData 包含圖示點擊的相關資訊。| JSON 表示法 |
|---|
{
"url": string,
} |
| 欄位 | |
|---|---|
url |
string |
FallbackImage
FallbackImage 包含 VAST 備用圖片的相關資訊。| JSON 表示法 |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| 欄位 | |
|---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
Wrapper
Wrapper 包含包裝廣告的相關資訊。如果沒有交易 ID,就不會顯示。| JSON 表示法 |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| 欄位 | |
|---|---|
system |
string廣告系統 ID。 |
ad_id |
string用於包裝廣告的廣告 ID。 |
creative_id |
string用於包裝函式廣告的廣告素材 ID。 |
creative_ad_id |
string用於包裝函式廣告的廣告素材廣告 ID。 |
deal_id |
string包裝函式廣告的選填交易 ID。 |
驗證
驗證包含 Open Measurement 的資訊,可協助進行第三方可視度和驗證評估。目前僅支援 JavaScript 資源。 請參閱 https://iabtechlab.com/standards/open-measurement-sdk/| JSON 表示法 |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| 欄位 | |
|---|---|
vendor |
string驗證服務供應商。 |
java_script_resources |
[object(JavaScriptResource)]驗證用的 JavaScript 資源清單。 |
tracking_events |
[object(TrackingEvent)]驗證的追蹤事件清單。 |
parameters |
string傳遞至啟動程序驗證碼的不透明字串。 |
JavaScriptResource
JavaScriptResource 包含透過 JavaScript 驗證的資訊。| JSON 表示法 |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| 欄位 | |
|---|---|
script_url |
stringJavaScript 酬載的 URI。 |
api_framework |
stringAPIFramework 是執行驗證碼的影片架構名稱。 |
browser_optional |
boolean這個指令碼是否可在瀏覽器外執行。 |
TrackingEvent
TrackingEvent 包含用戶端應在特定情況下 Ping 的網址。| JSON 表示法 |
|---|
{
"event": string,
"uri": string,
} |
| 欄位 | |
|---|---|
event |
string追蹤事件的類型。 |
uri |
string要 Ping 的追蹤事件。 |
UniversalAdID
UniversalAdID 可提供廣告素材專屬 ID,並在各個廣告系統中維持不變。| JSON 表示法 |
|---|
{ "id_value": string, "id_registry": string, } |
| 欄位 | |
|---|---|
id_value |
string所選廣告素材的通用廣告 ID。 |
id_registry |
string這個字串用於識別註冊資料庫網站的網址,所選廣告素材的通用廣告 ID 會編目於該網站。 |
Companion
隨播廣告包含可能與廣告一起顯示的隨播廣告資訊。| JSON 表示法 |
|---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
| 欄位 | |
|---|---|
click_data |
object(ClickData)這個隨播廣告的點擊資料。 |
creative_type |
string如果這是靜態類型的隨播廣告,VAST 中 <StaticResource> 節點的 CreativeType 屬性。 |
height |
int32這個隨播廣告的高度 (以像素為單位)。 |
width |
int32這個隨播廣告的寬度 (以像素為單位)。 |
resource |
string如果是靜態和 iframe 隨播廣告,這就是要載入及顯示的網址。如果是 HTML 隨播廣告,這會是應顯示為隨播廣告的 HTML 程式碼片段。 |
type |
string這個配對裝置的類型。可以是靜態、iframe 或 HTML。 |
ad_slot_id |
string這個配對裝置的版位 ID。 |
api_framework |
string這個輔助裝置的 API 架構。 |
tracking_events |
[object(TrackingEvent)]這個同伴的追蹤事件清單。 |
InteractiveFile
InteractiveFile 包含互動式廣告素材 (即 SIMID) 的資訊,應在廣告播放期間顯示。| JSON 表示法 |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| 欄位 | |
|---|---|
resource |
string互動式廣告素材的網址。 |
type |
string做為資源提供的檔案 MIME 類型。 |
variable_duration |
boolean這個廣告素材是否可以要求延長時間。 |
ad_parameters |
stringVAST 中 <AdParameters> 節點的值。 |