本指南說明如何設定資訊清單操控工具,使用廣告連播片段方法要求廣告或候選片段。
選取串流通訊協定:
必要條件
如要繼續操作,請先為廣告連播放送重新導向動態廣告插播 (DAI) 類型和編碼設定檔設定直播活動。如要設定直播活動,請選擇下列其中一種方式:
- Ad Manager 使用者介面: 為 DAI 設定直播活動。
- Ad Manager API:使用用戶端程式庫呼叫
LiveStreamEventService.createLiveStreamEvents方法。將LiveStreamEvent.dynamicAdInsertionType參數設為POD_SERVING_REDIRECT。
設定直播活動後,請呼叫 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-IN 和 EXT-X-CUE-OUT 標記,指出廣告插播的開始和結束時間。
將 EXT-X-CUE-IN 和 EXT-X-CUE-OUT 標記替換為 EXT-X-DISCONTINUITY 元素,讓用戶端影片播放器在內容和廣告之間切換。
下列資訊清單範例會取代 EXT-X-CUE-IN 和 EXT-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 信號資料。詳情請參閱提早傳送廣告插播通知。