API Chèn quảng cáo động cho các luồng VOD

API Google DAI cho phép bạn triển khai các luồng được bật DAI của Google trong các môi trường không hỗ trợ việc triển khai SDK IMA. Bạn vẫn nên sử dụng IMA trên các nền tảng 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. Nếu bạn có thắc mắc 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 của Google.

Triển khai API DAI cho luồng VOD

API DAI hỗ trợ các luồng VOD 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 đối với luồng VOD, hãy hoàn tất các bước sau:

  1. Yêu cầu truyền trực tuyến bằng cách thực hiện lệnh gọi POST đến điểm cuối của luồng:

    Nội dung yêu cầu mẫu:

    https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream
    
      {
        key1 : "value1",
        stream_parameter1 : "value2"
      }
    

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

    {
       "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85",
       "total_duration":636.458,
       "content_duration":596.458,
       "valid_for":"8h0m0s",
       "valid_until":"2020-06-04T20:39:41.274707306-07:00",
       "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd",
       "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/",
       "ad_breaks":[
          {
             "type":"pre",
             "start":0,
             "duration":10,
             "ads":[
                {
                   "seq":1,
                   "duration":10,
                   "title":"External NCA1C1L1 Preroll",
                   "description":"External NCA1C1L1 Preroll ad",
                   "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365",
                   "events":[
                      {
                         "time":0.1,
                         "type":"start"
                      },
                      {
                         "time":2.5,
                         "type":"firstquartile"
                      },
                      {
                         "time":4.75,
                         "type":"midpoint"
                      },
                      {
                         "time":7.5,
                         "type":"thirdquartile"
                      },
                      {
                         "time":9,
                         "type":"complete"
                      }
                   ]
                }
             ]
          },
          {
             "type":"mid",
             "start":45,
             "duration":10,
             "ads":[
                {.... }
                   ]
                }
             ]
          },
          {
             "type":"post",
             "start":626.458,
             "duration":10,
             "ads":[...]
          }
       ]
    }
    

    Phản hồi 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ó nội dung phản hồi JSON.

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

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Để xác minh nội dung nghe nhìn, hãy theo dõi các sự kiện ID3:

    1. Lưu trữ các sự kiện nội dung đa phương tiện trong hàng đợi, lưu từng mã nhận dạng 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. Trong mỗi lần cập nhật từ trình phát hoặc tại một tần suất đã đặt (500 mili giây), hãy kiểm tra hàng đợi sự kiện nội dung đa phương tiện cho các sự kiện được 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 đa phương tiện mà bạn xác nhận đã phát, hãy theo dõi lượt phát bằng cách 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 rồi đưa ra yêu cầu GET.

    Nội dung yêu cầu mẫu:

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

    Ví dụ về câu trả lời:

    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 Giám sát hoạt động phát trực tuyến.

  4. Không bắt buộc: Sử dụng dữ liệu ad_breaks từ luồng tạo phản hồi để tra cứu loại sự kiện đã được kích hoạt.

  5. Xoá sự kiện nội dung đa phương tiện khỏi hàng đợi.

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 đây sẽ áp dụng cho việc nhắm mục tiêu:

  • UserAgent: Tham số tác nhân người dùng được chuyển dưới dạng giá trị dành riêng cho 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 sẽ hạn chế 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 đối tượng và nhắm mục tiêu

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

Việc liên kết các thẻ ID3 với loại sự kiện thích hợp sẽ rất khó khăn trên VOD. Sử dụng thông tin ad_breaks được trả về trong JSON để tra cứu sự kiện trực tiếp, giống như cách bạn thực hiện với nội dung phát trực tiếp.

Tài nguyên khác