คู่มือนี้ครอบคลุมการกำหนดค่าโปรแกรมจัดการไฟล์ Manifest เพื่อขอโฆษณาหรือ กลุ่มสเลตโดยใช้วิธีพ็อด กลุ่ม โฆษณา
เลือกโปรโตคอลการสตรีม
ข้อกำหนดเบื้องต้น
ก่อนดำเนินการต่อ คุณต้องตั้งค่ากิจกรรมไลฟ์สดสำหรับประเภทการแทรกโฆษณาแบบไดนามิก (DAI) และโปรไฟล์การเข้ารหัสการเปลี่ยนเส้นทาง การแสดงโฆษณาพ็อด หากต้องการตั้งค่า กิจกรรมสตรีมแบบสด ให้เลือกวิธีใดวิธีหนึ่งต่อไปนี้
- UI ของ Ad Manager: ตั้งค่าไลฟ์สดสำหรับ DAI
- Ad Manager API: ใช้ไลบรารีของไคลเอ็นต์เพื่อเรียกใช้
LiveStreamEventService.createLiveStreamEventsเมธอด ตั้งค่าพารามิเตอร์LiveStreamEvent.dynamicAdInsertionTypeเป็นPOD_SERVING_REDIRECT
หลังจากตั้งค่ากิจกรรมไลฟ์สดแล้ว ให้ดึงโปรไฟล์การเข้ารหัสของกิจกรรม
จาก UI หรือ API ของ Ad Manager โดยการเรียกใช้เมธอด
DaiEncodingProfileService.getDaiEncodingProfilesByStatement
เรียกข้อมูลสตรีมเนื้อหา
เมื่อผู้ใช้เลือกกิจกรรมไลฟ์สด แอปไคลเอ็นต์จะส่งคำขอสตรีม ไปยัง Google Ad Manager ในการตอบกลับสตรีม แอปจะดึง รหัสเซสชัน Google DAI และข้อมูลเมตาเพื่อรวมไว้ในคำขอไฟล์ Manifest ของสตรีม
ตัวอย่างต่อไปนี้จะส่งรหัสเซสชัน DAI ของ Google ไปยังเครื่องมือจัดการไฟล์ Manifest
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
เมื่อประมวลผลคำขอเล่นเนื้อหาวิดีโอ ให้จัดเก็บรหัสเซสชัน Google DAI และ CUSTOM_ASSET_KEY จากคำขอเพื่อเตรียมพร้อมสำหรับ การต่อโฆษณา
ระบุช่วงพักโฆษณาและแทรกความไม่ต่อเนื่อง
ขณะประมวลผลไฟล์ Manifest ของแต่ละเวอร์ชัน ให้ระบุแท็ก EXT-X-CUE-IN และ EXT-X-CUE-OUT ในสตรีม ซึ่งระบุจุดเริ่มต้นและจุดสิ้นสุดของช่วงพักโฆษณา
แทนที่แท็ก EXT-X-CUE-IN และ EXT-X-CUE-OUT ด้วยองค์ประกอบ
EXT-X-DISCONTINUITY เพื่อให้วิดีโอเพลเยอร์ของไคลเอ็นต์สลับระหว่างเนื้อหากับโฆษณาได้
ไฟล์ Manifest ตัวอย่างต่อไปนี้จะแทนที่แท็ก 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
ตัวอย่างต่อไปนี้แสดงไฟล์ Manifest ที่แทนที่
#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
กลุ่มโฆษณา DAI ของ Google ไม่ได้เข้ารหัส หากเนื้อหาของคุณได้รับการเข้ารหัส ให้นำการเข้ารหัสออกโดยแทรกองค์ประกอบ EXT-X-KEY:METHOD=NONE ก่อนช่วงโฆษณาแรกของช่วงพักโฆษณาแต่ละช่วง เมื่อสิ้นสุดช่วงพักโฆษณา ให้เพิ่มการเข้ารหัสอีกครั้งโดย
แทรก EXT-X-KEY ที่เหมาะสม
ติดตามเวลาเริ่มต้น ระยะเวลา และดัชนีของช่วงพักโฆษณาที่กำลังจะมาถึง
สร้างโทเค็นรหัสการตรวจสอบสิทธิ์ข้อความแฮช (HMAC)
คำขอกลุ่มแต่ละรายการที่สร้างขึ้นโดยใช้การแสดงพ็อดเปลี่ยนเส้นทางของกลุ่มต้องมีโทเค็นที่ลงนามด้วย HMAC สำหรับการตรวจสอบสิทธิ์
คำนวณโทเค็นนี้ 1 ครั้งต่อช่วงพักโฆษณา และแชร์โทเค็นในเซสชันสตรีมทั้งหมด
รวบรวมพารามิเตอร์โทเค็น
หากต้องการสร้างเนื้อหาโทเค็น ให้รวบรวมข้อมูลต่อไปนี้จากช่วงพักโฆษณาปัจจุบัน
| พารามิเตอร์โทเค็น | ||
|---|---|---|
custom_asset_key
|
ต้องระบุ | คีย์ชิ้นงานไลฟ์สดที่กำหนดเองจาก Google Ad Manager |
cust_params
|
ไม่บังคับ | พารามิเตอร์การกำหนดเป้าหมายเอง ดูcust_params
|
exp
|
ต้องระบุ | การประทับเวลาการหมดอายุของโทเค็นปัจจุบันเป็นวินาที |
network_code
|
ต้องระบุ | รหัสเครือข่าย Ad Manager 360 |
pod_id
|
ต้องระบุ | ตัวระบุสำหรับช่วงพักโฆษณา จำนวนเต็มเริ่มต้นที่
1 สำหรับช่วงพักโฆษณาแต่ละช่วง ตัวระบุนี้จะเพิ่มขึ้นทีละ 1
ค่านี้ต้องเหมือนกันในผู้ใช้ทุกคนที่ดูช่วงพักโฆษณาเดียวกันใน เหตุการณ์ปัจจุบัน |
pd
|
ต้องระบุ ยกเว้นกิจกรรมที่เปิดใช้ช่วงพักโฆษณาแบบไม่ระบุระยะเวลา | ระยะเวลาของช่วงพักโฆษณาเป็นมิลลิวินาที อ้างอิงถึง
ad_pod_duration
|
scte35
|
ไม่บังคับ | สัญญาณ SCTE-35 ที่เข้ารหัส Base64 DAI ของ Google จะคัดลอกสัญญาณไปยัง
ช่วงพักโฆษณาที่สร้างขึ้นเสมอ แม้ว่าสัญญาณจะไม่ถูกต้องก็ตาม
หากไม่ถูกต้อง คุณจะได้รับข้อความใน
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 ของสตริงโทเค็นในรูปแบบ HEX คีย์ลับคือคีย์การตรวจสอบสิทธิ์ HMAC ที่เชื่อมโยงกับ กิจกรรมไลฟ์สดใน Google Ad Manager
สตริงโทเค็นการลงนาม
หลังจากสร้างลายเซ็น HMAC แล้ว ให้ต่อท้ายลายเซ็นกับสตริงโทเค็น ในรูปแบบต่อไปนี้
~hmac=HMAC_SIGNATURE
เข้ารหัสสตริงโทเค็น
หากต้องการส่งโทเค็นเป็นพารามิเตอร์ของ URL ให้เข้ารหัส URL เพื่อความปลอดภัย
ตัวอย่างต่อไปนี้สร้างโทเค็น 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
สร้าง URL ของกลุ่มโฆษณา
แทนที่กลุ่มเนื้อหาแต่ละกลุ่มระหว่างแท็ก EXT-X-DISCONTINUITY ด้วย URL
ที่ชี้ไปยังเมธอดกลุ่มพ็อดโฆษณา
ตัวอย่างต่อไปนี้จะประกอบกลุ่มพ็อดโฆษณา โปรดทราบว่ากลุ่มโฆษณาใช้ดัชนีที่เริ่มต้นด้วย 0 ดังนี้
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
ตัวอย่างต่อไปนี้จะแทรกกลุ่มพ็อดโฆษณาลงในไฟล์ Manifest
#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
ไม่บังคับ: ตั้งเวลาช่วงพักโฆษณา
หากต้องการเพิ่มอัตราการแสดงโฆษณา ให้ส่งการแจ้งเตือนช่วงพักโฆษณาล่วงหน้า (EABN) พร้อม ระยะเวลาพ็อดโฆษณา พารามิเตอร์การกำหนดเป้าหมายที่กำหนดเอง และข้อมูลสัญญาณ SCTE-35 ดูรายละเอียดเพิ่มเติมได้ที่ส่งการแจ้งเตือน ช่วงพักโฆษณาเร็วขึ้น