動態廣告插播 VOD API

動態廣告插播 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 串流。

POST /ondemand/v1/dash/content/{content-source}/vid/{video-id}/stream

為指定的內容來源和影片 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 選用

將其設為 true 即可建立伺服器端信標串流。預設值為 false。預設串流的追蹤功能是由用戶端啟動,並在伺服器端進行 ping。

DFP 指定目標參數 選用 Additional targeting parameters.
覆寫串流參數 選用 覆寫串流建立參數的預設值。
HMAC 驗證 選用 使用 HMAC 型權杖進行驗證。

回應主體

如果成功,回應主體會包含新的 Stream。對於伺服器端信標串流,這個 Stream 只包含 stream_idstream_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 string

Duration 串流格式為「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 string

TTML 副檔案的選用網址。
webvtt string

選填:WebVTT 副檔案的網址。

SkipMetadata

SkipMetadata 會提供用戶端處理可略過廣告的略過事件所需的資訊。
JSON 表示法
{
  "offset": number,
  "tracking_url": string,
}
欄位
offset number

「Offset」代表播放器應等待多久的時間 (以秒為單位),才能在廣告中顯示略過按鈕。如果未在 VAST 中提供,則會省略。
tracking_url string

TrackingURL 包含應在略過事件中連線偵測的網址。

圖示

圖示包含 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 string

JavaScript 酬載的 URI。
api_framework string

APIFramework 是執行驗證碼的影片架構名稱。
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 string

VAST 中的 <AdParameters> 節點值。