API Chèn quảng cáo động cho luồng TRỰC TIẾP

API DAI của Google cho phép bạn triển khai luồng hỗ trợ DAI của Google trong các môi trường trong đó việc triển khai SDK IMA không được hỗ trợ. Bạn vẫn nên sử dụng IMA trên các nền tảng có hỗ trợ SDK IMA.

Bạn nên sử dụng API DAI trên các nền tảng sau:

  • TV thông minh Samsung (Tizen)
  • TV LG
  • HbbTV
  • Xbox (ứng dụng JavaScript)
  • KaiOS

API này hỗ trợ các tính năng cơ bản do SDK IMA DAI cung cấp. Cho câu hỏi cụ thể về khả năng tương thích hoặc các tính năng được hỗ trợ, hãy liên hệ với người quản lý tài khoản Google của bạn.

Triển khai API DAI cho luồng TRỰC TIẾP

API DAI hỗ trợ các luồng tuyến tính (TRỰC TIẾP) bằng cách sử dụng cả giao thức HLS và DASH. Các bước được mô tả trong hướng dẫn này áp dụng cho cả hai giao thức.

Để tích hợp API vào ứng dụng của bạn cho các sự kiện phát trực tiếp, hãy hoàn thành các bước sau các bước:

1. Yêu cầu luồng

Để yêu cầu phát trực tiếp từ API DAI, hãy thực hiện lệnh gọi POST tới luồng điểm cuối. Phản hồi JSON chứa tệp kê khai luồng cũng như tệp kê khai liên kết Điểm cuối và giá trị của API DAI.

Ví dụ về nội dung yêu cầu

https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Ví dụ về nội dung phản hồi

{
"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
}

Phản hồi về lỗi

Trong trường hợp xảy ra lỗi, mã lỗi HTTP tiêu chuẩn sẽ được trả về mà không có phản hồi JSON nội dung.

Phân tích cú pháp phản hồi JSON và lưu trữ các giá trị sau:

stream_id
Giá trị này có thể dùng để xác định luồng được trả về.
stream_manifest
URL này được chuyển đến trình phát nội dung đa phương tiện để phát trực tuyến.
media_verification_url
URL này là điểm cuối cơ sở để theo dõi các sự kiện phát.
metadata_url
URL này được dùng để thăm dò thông tin định kỳ về sự kiện phát trực tiếp sắp tới sự kiện.
session_update_url
URL này dùng để cập nhật các tham số yêu cầu của luồng được gửi trong quá trình ban đầu phát trực tuyến. Xin lưu ý rằng các thông số của yêu cầu này sẽ thay thế tất cả các thông số đặt cho sự kiện phát trực tiếp trước đó.
polling_frequency
Tần suất (tính bằng giây) khi yêu cầu Siêu dữ liệu điểm chèn quảng cáo cập nhật từ API DAI.

2. Cuộc thăm dò ý kiến về Siêu dữ liệu AdBreak mới

Đặt bộ tính giờ để thăm dò Siêu dữ liệu AdBreak mới ở tần suất thăm dò, bằng cách sử dụng URL của siêu dữ liệu. Nếu không được chỉ định trong phản hồi theo luồng, chế độ mặc định nên dùng là 10 giây.

Ví dụ về nội dung yêu cầu

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/metadata

Ví dụ về nội dung phản hồi

{
   "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. Nghe các sự kiện ID3 và theo dõi các sự kiện phát

Để xác minh những sự kiện cụ thể đã xảy ra trong luồng video, hãy làm theo các bước sau các bước xử lý sự kiện ID3:

  1. Lưu trữ sự kiện nội dung đa phương tiện trong hàng đợi, lưu từng mã nội dung đa phương tiện cùng với dấu thời gian (nếu trình phát hiển thị).
  2. Vào mỗi lần cập nhật qua trình phát hoặc theo tần suất cố định (nên dùng 500 mili giây), kiểm tra hàng đợi sự kiện nội dung đa phương tiện để biết các sự kiện đã phát gần đây bằng cách so sánh dấu thời gian của sự kiện với con trỏ vị trí.
  3. Đối với các sự kiện nội dung nghe nhìn mà bạn xác nhận là đã phát, hãy kiểm tra loại bằng cách tra cứu mã nhận dạng nội dung nghe nhìn trong các thẻ điểm chèn quảng cáo đã lưu trữ. Xin lưu ý rằng các thẻ đã lưu trữ chỉ chứa tiền tố của ID phương tiện nên không thể khớp chính xác.
  4. Sử dụng "tiến trình" để theo dõi xem người dùng có ở trong điểm chèn quảng cáo hay không. Đừng gửi những sự kiện này đến điểm cuối xác minh nội dung nghe nhìn. Cho sự kiện khác loại, thêm mã nhận dạng nội dung đa phương tiện vào điểm cuối xác minh nội dung nghe nhìn và thực hiện một GET để theo dõi quá trình phát.
  5. Xoá sự kiện nội dung nghe nhìn khỏi hàng đợi.

Ví dụ về nội dung yêu cầu

https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/

Câu trả lời mẫu

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

Bạn có thể xác minh các sự kiện theo dõi trong mục Hoạt động trên luồng Giám sát.

4. Cập nhật thông số của phiên phát trực tiếp

Có thể bạn muốn điều chỉnh thông số phiên sau khi phát trực tiếp đã tạo. Để làm như vậy, hãy gửi yêu cầu đến URL cập nhật phiên.

Ví dụ về nội dung yêu cầu

https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/session

{
  key1 : "value1",
  stream_parameter1 : "value2"
}

Ví dụ về nội dung phản hồi

Successful response would be to look for - HTTP/1.1 200

Các điểm hạn chế

Nếu bạn sử dụng API trong WebView, thì các giới hạn sau sẽ áp dụng tương ứng với đến nhắm mục tiêu:

  • UserAgent: Thông số tác nhân người dùng được chuyển dưới dạng giá trị cụ thể của trình duyệt thay vì nền tảng cơ bản.
  • rdid! idtype, is_lat: Mã thiết bị không được truyền đúng cách, điều này giới hạn khả năng của các tính năng sau:
    • Giới hạn tần suất
    • Xoay vòng quảng cáo tuần tự
    • Phân khúc và nhắm mục tiêu đối tượng

Các phương pháp hay nhất

Xin lưu ý rằng điểm cuối siêu dữ liệu cho chỉ mục của sự kiện phát trực tiếp sẽ dựa trên của thẻ ID3 tương ứng. Điều này là theo thiết kế để ngăn việc sử dụng điểm cuối siêu dữ liệu để ping ngay lập tức tất cả các nút xác minh.

Tài nguyên khác