使用區隔重新導向插入廣告

本指南說明如何設定資訊清單操控工具,使用廣告連播片段方法要求廣告或候選片段。

選取串流通訊協定:

必要條件

如要繼續操作,請先為廣告連播放送重新導向動態廣告插播 (DAI) 類型和編碼設定檔設定直播活動。如要設定直播活動,請選擇下列其中一種方式:

設定直播活動後,請呼叫 DaiEncodingProfileService.getDaiEncodingProfilesByStatement 方法,從 Ad Manager 使用者介面或 API 擷取活動的編碼設定檔。

擷取內容串流

使用者選取直播活動時,用戶端應用程式會向 Google Ad Manager 發出串流請求。在串流回應中,應用程式會擷取 Google DAI 工作階段 ID 和中繼資料,並納入串流資訊清單要求。

以下範例會將 Google DAI 會期 ID 傳遞至資訊清單操控器:

https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY

處理影片內容播放要求時,請儲存要求中的 Google 動態廣告插播工作階段 ID 和 CUSTOM_ASSET_KEY,以便準備縫合廣告。

找出廣告插播片段並插入不連續點

處理每個變體資訊清單時,請找出串流中的 EXT-X-CUE-INEXT-X-CUE-OUT 標記,指出廣告插播的開始和結束時間。

EXT-X-CUE-INEXT-X-CUE-OUT 標記替換為 EXT-X-DISCONTINUITY 元素,讓用戶端影片播放器在內容和廣告之間切換。

下列資訊清單範例會取代 EXT-X-CUE-INEXT-X-CUE-OUT 標記:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

以下範例顯示已取代的資訊清單:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4

Google DAI 廣告片段不會加密。如果內容經過加密,請在每個廣告插播的第一個廣告片段前插入 EXT-X-KEY:METHOD=NONE 元素,移除加密。在廣告插播結束時,插入適當的 EXT-X-KEY,重新啟用加密功能。

追蹤即將到來的廣告插播的開始時間、時間長度和索引。

產生雜湊式訊息驗證碼 (HMAC) 權杖

使用區隔重新導向廣告連播放送功能提出的每個區隔要求,都必須包含經過 HMAC 簽署的權杖,以進行驗證。

每個廣告插播時段計算一次這個權杖,並在所有串流工作階段中共用權杖。

收集權杖參數

如要填入權杖主體,請從目前的廣告插播時間點收集下列資訊:

權杖參數
custom_asset_key 必要 Google Ad Manager 的自訂直播資產金鑰。
cust_params Optional 自訂指定目標參數。詳情請參閱 cust_params
exp 必要 目前權杖的到期時間戳記 (以秒為單位)。
network_code 必要 Ad Manager 360 聯播網代碼。
pod_id 必要 廣告時段的 ID。從 1 開始的整數。每插入一個廣告插播,這個 ID 就會遞增 1。

在目前事件中,如果所有使用者觀看相同的廣告插播,這個值就必須相同。

pd 必填,但啟用無時間長度廣告插播的事件除外。 廣告插播的時間長度 (以毫秒為單位)。推薦人: ad_pod_duration
scte35 Optional Base64 編碼的 SCTE-35 信號。即使訊號不正確,Google DAI 一律會將訊號複製到建立的廣告插播時間點。如果錯誤,您會在回應的 X-Ad-Manager-Dai-Warning HTTP 標頭中收到訊息,且信號仍會繼續建立廣告插播。如要進一步瞭解 DAI 如何使用 SCTE-35 信號,請參閱支援的廣告標記

建立權杖字串

如要建立權杖字串,請依字母順序列出每個參數,格式為 NAME=VALUE,並以 ~ 波浪號字元分隔每個名稱/值配對。

如未使用選用參數,請將值設為空字串,或完全移除參數。

以下範例會格式化權杖字串:

custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE

產生 HMAC 簽章

HMAC 簽章是十六進位格式的權杖字串 SHA-256 雜湊。密鑰是與 Google Ad Manager 直播活動相關聯的 HMAC 驗證金鑰

簽署權杖字串

產生 HMAC 簽章後,請按照下列格式將簽章附加至權杖字串:

~hmac=HMAC_SIGNATURE

編碼權杖字串

如要以網址參數形式傳遞權杖,請對網址進行編碼,確保安全無虞。

以下範例會產生已簽署及編碼的 HMAC 權杖,其中未使用的選用參數為空字串:

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=

Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88

下列範例會產生已簽署及編碼的 HMAC 權杖,且不含未使用的選用參數:

custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5

Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F

HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9

建立廣告區隔網址

EXT-X-DISCONTINUITY 標記之間的每個內容片段,替換成指向廣告插播片段方法的網址。

以下範例會組裝廣告插播片段。請注意,廣告片段使用以零為起始的索引:

https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC

以下範例會在資訊清單中插入廣告連播片段:

#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4

選用:排定廣告插播時間

如要提高填充率,請傳送 Early Ad Break Notification (EABN),並提供廣告插播時間長度、自訂指定目標參數和 SCTE-35 信號資料。詳情請參閱提早傳送廣告插播通知