Google DAI API ช่วยให้คุณใช้งานสตรีมที่เปิดใช้ Google DAI ได้ในสภาพแวดล้อมที่ไม่รองรับการติดตั้งใช้งาน IMA SDK เราขอแนะนำให้คุณใช้ IMA ในแพลตฟอร์มที่รองรับ IMA SDK ต่อไป
เราขอแนะนำให้ใช้ DAI API ในแพลตฟอร์มต่อไปนี้
- สมาร์ททีวี Samsung (Tizen)
- ทีวี LG
- HbbTV
- Xbox (แอป JavaScript)
- KaiOS
API รองรับความสามารถพื้นฐานจาก IMA DAI SDK หากมีคำถามเฉพาะเกี่ยวกับความเข้ากันได้หรือฟีเจอร์ที่รองรับ โปรดติดต่อผู้จัดการฝ่ายดูแลลูกค้าของ Google
ใช้ DAI API สำหรับสตรีมแบบสด
DAI API รองรับสตรีมเชิงเส้น (LIVE) โดยใช้ทั้งโปรโตคอล HLS และ DASH ขั้นตอนที่อธิบายไว้ในคู่มือนี้ใช้ได้กับโปรโตคอลทั้งสอง
หากต้องการผสานรวม API เข้ากับแอปสำหรับสตรีมแบบสด ให้ทำตามขั้นตอนต่อไปนี้
1. ขอสตรีม
หากต้องการขอสตรีมแบบสดจาก DAI API ให้เรียก POST ไปยังปลายทางของสตรีม การตอบกลับ JSON ประกอบด้วยไฟล์ Manifest ของสตรีม รวมถึงปลายทางและค่า DAI API ที่เกี่ยวข้อง
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream
{
key1 : "value1",
stream_parameter1 : "value2"
}
ตัวอย่างเนื้อหาการตอบกลับ
{
"stream_id":"c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session",
"polling_frequency":10
}
การตอบสนองข้อผิดพลาด
ในกรณีที่เกิดข้อผิดพลาด ระบบจะแสดงรหัสข้อผิดพลาด HTTP มาตรฐานโดยไม่มีเนื้อหาการตอบสนอง JSON
แยกวิเคราะห์การตอบกลับ JSON และเก็บค่าต่อไปนี้
- stream_id
- คุณใช้ค่านี้เพื่อระบุสตรีมที่แสดงผลได้
- stream_manifest
- ระบบจะส่ง URL นี้ไปยังโปรแกรมเล่นสื่อเพื่อเล่นสตรีม
- media_verification_url
- URL นี้คือปลายทางพื้นฐานสำหรับการติดตามเหตุการณ์การเล่น
- metadata_url
- URL นี้ใช้ทำแบบสำรวจข้อมูลตามช่วงเวลาเกี่ยวกับเหตุการณ์ของสตรีมที่กำลังจะเกิดขึ้น
- session_update_url
- URL นี้ใช้เพื่ออัปเดตพารามิเตอร์ของคำขอสตรีมที่ส่งระหว่างคำขอสตรีมเริ่มต้น โปรดทราบว่าพารามิเตอร์ของคำขอนี้จะแทนที่พารามิเตอร์ทั้งหมดที่กำหนดไว้สำหรับสตรีมก่อนหน้านี้
- polling_frequency
- ความถี่เป็นวินาทีเมื่อขอข้อมูลเมตา AdBreak ที่อัปเดตจาก DAI API
2. แบบสำรวจข้อมูลเมตาช่วงพักโฆษณาใหม่
ตั้งค่าตัวจับเวลาในแบบสำรวจสำหรับข้อมูลเมตา AdBreak ใหม่ตามความถี่ในการสำรวจโดยใช้ URL ของข้อมูลเมตา หากไม่ได้ระบุไว้ในการตอบกลับของสตรีม ช่วงเวลาที่แนะนำตามค่าเริ่มต้นคือ 10 วินาที
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata
ตัวอย่างเนื้อหาการตอบกลับ
{
"tags":{
"google_0492266569":{
"ad":"0000229836_ad1",
"ad_break_id":"0000229836",
"type":"firstquartile"
},
"google_1560331148":{
"ad":"0000229836_ad1",
"ad_break_id":"0000229836",
"type":"thirdquartile"
},
"google_1877686714378797835":{
"ad":"0000229836_slate",
"ad_break_id":"0000229836",
"type":"progress"
},
"google_1vRyQBYPw_7Gg3MrZ6S5EjmV9aLje-YpW8QHed1DSlU":{
"ad":"0000229835_ad1",
"ad_break_id":"0000229835",
"type":"progress"
},
"google_2032765498":{
"ad":"0000229835_ad1",
"ad_break_id":"0000229835",
"type":"midpoint"
},......
"google_5646900623":{
"ad":"0000229837_ad1",
"ad_break_id":"0000229837",
"type":"complete"
}
},
"ads":{
"0000229834_ad1":{
"ad_break_id":"0000229834",
"position":1,
"duration":15.01,
"title":"truman-e2e-creativeset4",
"description":"truman-e2e-creativeset4 ad",
"ad_system":"GDFP",
"ad_id":"39066884",
"creative_id":"58092079124",
"clickthrough_url":"https://pubads.g.doubleclick.net/pcs/click?xai=AKAO...\u0026adurl=http://google.com",
"universal_ad_id":{
"id_value":"58092079124",
"id_registry":"GDFP"
}
},
"0000229834_slate":{
"ad_break_id":"0000229834",
"position":-1,
"duration":14.974977777,
"slate":true
},...
},
"ad_breaks":{
"0000229834":{
"type":"mid",
"duration":15.01,
"expected_duration":29.984977776999997,
"ads":1
},....
}
}
3. ฟังเหตุการณ์ ID3 และติดตามเหตุการณ์การเล่น
หากต้องการยืนยันว่ามีเหตุการณ์ที่เฉพาะเจาะจงเกิดขึ้นในสตรีมวิดีโอ ให้ทำตามขั้นตอนต่อไปนี้เพื่อจัดการเหตุการณ์ ID3
- จัดเก็บเหตุการณ์สื่อในคิว โดยบันทึกรหัสสื่อแต่ละรหัสพร้อมกับการประทับเวลา (หากแสดงโดยโปรแกรมเล่น)
- ทุกครั้งที่มีการอัปเดตจากโปรแกรมเล่นหรือตามความถี่ที่ตั้งไว้ (แนะนำที่ 500 มิลลิวินาที) ให้ตรวจสอบคิวเหตุการณ์สื่อสำหรับกิจกรรมที่เล่นล่าสุดโดยเปรียบเทียบการประทับเวลาของเหตุการณ์กับส่วนหัวของตัวควบคุมการเล่น
- สำหรับเหตุการณ์สื่อที่คุณยืนยันว่าได้เล่นไปแล้ว ให้ตรวจสอบประเภทโดยค้นหารหัสสื่อในแท็กช่วงพักโฆษณาที่จัดเก็บไว้ โปรดทราบว่าแท็กที่เก็บไว้ จะมีเฉพาะคำนำหน้ารหัสสื่อเท่านั้น จึงไม่สามารถจับคู่แบบตรงทั้งหมดได้
- ใช้เหตุการณ์ "ความคืบหน้า" เพื่อติดตามว่าผู้ใช้อยู่ในช่วงพักโฆษณาหรือไม่ อย่าส่งเหตุการณ์เหล่านี้ไปยังปลายทางการยืนยันสื่อ สำหรับเหตุการณ์ประเภทอื่นๆ ให้เพิ่มรหัสสื่อต่อท้ายปลายทางการยืนยันสื่อ และส่งคำขอ GET เพื่อติดตามการเล่น
- นำเหตุการณ์สื่อออกจากคิว
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
คำตอบตัวอย่าง
Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict
คุณสามารถตรวจสอบเหตุการณ์การติดตามได้ในเครื่องมือตรวจสอบกิจกรรมการสตรีม
4. อัปเดตพารามิเตอร์เซสชันสตรีมแบบสด
คุณอาจต้องปรับพารามิเตอร์เซสชันหลังจากที่สร้างสตรีมแล้ว โดยส่งคำขอไปยัง URL การอัปเดตเซสชัน
ตัวอย่างเนื้อหาของคำขอ
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session
{
key1 : "value1",
stream_parameter1 : "value2"
}
ตัวอย่างเนื้อหาการตอบกลับ
Successful response would be to look for - HTTP/1.1 200
ข้อจำกัด
หากใช้ API ภายใน WebView การกำหนดเป้าหมายจะมีข้อจำกัดต่อไปนี้
- UserAgent: ระบบจะส่งพารามิเตอร์ User Agent เป็นค่าเฉพาะเบราว์เซอร์แทนแพลตฟอร์มที่สำคัญ
rdid
,idtype
,is_lat
: ไม่มีการส่งรหัสอุปกรณ์อย่างถูกต้อง ซึ่งจำกัดความสามารถของฟีเจอร์ต่อไปนี้- การกำหนดความถี่สูงสุด
- การหมุนเวียนโฆษณาตามลำดับ
- การแบ่งกลุ่มผู้ชมและการกำหนดเป้าหมาย
แนวทางปฏิบัติแนะนำ
โปรดทราบว่าปลายทางข้อมูลเมตาสำหรับดัชนีสตรีมแบบสดจะอิงตามคำนำหน้าของแท็ก ID3 ที่เกี่ยวข้อง เราออกแบบให้ป้องกันไม่ให้ใช้ปลายทางข้อมูลเมตาเพื่อใช้คำสั่ง ping กับโหนดการยืนยันทั้งหมดทันที