動態廣告插播 API 可讓您要求及追蹤 DAI 隨選影片 (VOD) 串流。支援 HLS 和 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 金鑰,必須是發布商網路的有效金鑰。 您可以使用下列格式,在 HTTP 授權標頭中傳遞 API 金鑰,而非在要求主體中提供金鑰: Authorization: DCLKDAI key="<api-key>" |
路徑參數
| 參數 | |
|---|---|
content-source |
string串流的 CMS ID。 |
video-id |
string串流的影片 ID。 |
要求主體
要求主體的類型為 application/x-www-form-urlencoded,並包含下列參數:
| 參數 | ||
|---|---|---|
dai-ssb |
選用 | 將其設為 |
| DFP 指定目標參數 | 選用 | Additional targeting parameters. |
| 覆寫串流參數 | 選用 | 覆寫串流建立參數的預設值。 |
| HMAC 驗證 | 選用 | 使用 HMAC 型權杖進行驗證。 |
回應主體
如果成功,回應主體會包含新的 Stream。對於伺服器端信標串流,這個 Stream 只包含 stream_id 和 stream_manifest 欄位。
Open Measurement
Verifications 欄位包含非伺服器端信標串流的 Open Measurement 驗證資訊。Verifications 包含一或多個 Verification 元素,列出您需要透過第三方評估程式碼驗證廣告素材播放情況的資源和中繼資料。系統僅支援 JavaScriptResource。詳情請參閱 互動廣告局科技實驗室和 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)
廣告媒體 ID 會透過 DASH 的 EventStream 元素插入資訊清單。
每個 EventStream 都會有 urn:google:dai:2018 的配置 ID URI。這些事件會包含 messageData 屬性,其中包含開頭為 “google_” 的廣告媒體 ID。messageData 屬性的完整內容應附加至每項廣告驗證要求的 media_verification_url。
回應資料
串流
串流用於以 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 |
stringDuration 串流格式為「00h00m00s」。 |
valid_until |
string串流有效日期,採用 RFC 3339 格式。 |
subtitles |
[object(Subtitle)]字幕清單。如果空白,則會省略。僅限 HTTP 即時串流。 |
hls_master_playlist |
string(已淘汰) HLS 主播放清單網址。使用 stream_manifest。僅限 HTTP 即時串流。 |
stream_manifest |
string直播資訊清單。對應至 HLS 中的主播放清單,以及 DASH 中的 MPD。建立伺服器端信標串流時,這個欄位是回應中除了「stream_id」以外唯一會出現的欄位。 |
media_verification_url |
string媒體驗證網址。 |
apple_tv |
object(AppleTV)AppleTV 裝置專屬選填資訊。僅限 HTTP 即時串流。 |
ad_breaks |
[object(AdBreak)]廣告插播時間點清單。如果空白,則省略。 |
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有效的插播類型為:中插、前置和後置。 |
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)]選用的開放式評估驗證項目,列出執行第三方評估程式碼所需的資源和中繼資料,用於驗證廣告素材的播放情形。 |
universal_ad_id |
object(UniversalAdID)選填通用廣告 ID。 |
companions |
[object(Companion)]選用的隨播廣告,可能會與這則廣告一併顯示。 |
interactive_file |
object(InteractiveFile)選用的互動式廣告素材 (SIMID),應在廣告播放期間顯示。 |
skip_metadata |
object(SkipMetadata)可選填中繼資料,適用於可略過的廣告。如果已設為此值,表示廣告可略過,並包含如何處理略過 UI 和追蹤事件的操作說明。 |
extensions |
string可選清單,列出 VAST 中的所有 <Extension> 節點。 |
活動
事件包含事件類型和事件的呈現時間。| JSON 表示法 |
|---|
{ "time": number, "type": string, } |
| 欄位 | |
|---|---|
time |
number這項活動的簡報時間。 |
type |
string此事件的類型。 |
副標題
字幕會說明影片串流的側載字幕軌。它會儲存兩種字幕格式: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 |
string選填:WebVTT 副檔案的網址。 |
SkipMetadata
SkipMetadata 會提供用戶端處理可略過廣告的略過事件所需的資訊。| JSON 表示法 |
|---|
{
"offset": number,
"tracking_url": string,
} |
| 欄位 | |
|---|---|
offset |
number「Offset」代表播放器應等待多久的時間 (以秒為單位),才能在廣告中顯示略過按鈕。如果未在 VAST 中提供,則會省略。 |
tracking_url |
stringTrackingURL 包含應在略過事件中連線偵測的網址。 |
圖示
圖示包含 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用於識別註冊網站的網址,該網站收錄所選廣告素材的 Universal Ad ID。 |
夥伴
隨播廣告資訊包含可能與廣告一併顯示的隨播廣告資訊。| 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> 節點值。 |