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 ขั้นตอนที่อธิบายไว้ในคู่มือนี้มีผลกับโปรโตคอลทั้ง 2 รายการ
หากต้องการผสานรวม 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 กับโหนดการยืนยันทั้งหมดทันที