API การแทรกโฆษณาแบบไดนามิกสําหรับสตรีมแบบสด

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 มีดังนี้

  1. จัดเก็บเหตุการณ์สื่อไว้ในคิว โดยบันทึกรหัสสื่อแต่ละรหัสพร้อมกับ การประทับเวลา (หากโปรแกรมเล่นแสดง)
  2. ทุกครั้งที่มีการอัปเดตจากโปรแกรมเล่นวิดีโอ หรือตามความถี่ที่ตั้งไว้ (แนะนำ 500 มิลลิวินาที) ให้ตรวจสอบคิวเหตุการณ์ของสื่อสำหรับเหตุการณ์ที่เล่นล่าสุดโดย โดยเปรียบเทียบการประทับเวลาเหตุการณ์กับส่วนหัวของตัวควบคุมการเล่น
  3. สำหรับกิจกรรมสื่อที่คุณยืนยันว่าได้เล่นแล้ว ให้ตรวจสอบประเภทโดยค้นหา รหัสสื่อในแท็กช่วงพักโฆษณาที่เก็บไว้ โปรดทราบว่าแท็กที่จัดเก็บไว้ มีคำนำหน้ารหัสสื่อเท่านั้น จึงไม่สามารถจับคู่แบบตรงทั้งหมดได้
  4. ใช้ "ความคืบหน้า" เหตุการณ์เพื่อติดตามว่าผู้ใช้อยู่ในช่วงพักโฆษณาหรือไม่ อย่าส่งเหตุการณ์เหล่านี้ไปยังปลายทางการยืนยันสื่อ สำหรับกิจกรรมอื่น แล้วเพิ่มรหัสสื่อต่อท้ายปลายทางการยืนยันสื่อ แล้วจึงกด "GET" ขอให้ติดตามการเล่น
  5. นำเหตุการณ์สื่อออกจากคิว

ตัวอย่างเนื้อหาของคำขอ

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 กับโหนดการยืนยันทั้งหมดทันที

แหล่งข้อมูลเพิ่มเติม