API thông báo điểm chèn quảng cáo sớm của DAI

Khi sử dụng nền tảng DAI của Google, bạn có thể muốn cung cấp dữ liệu nhắm mục tiêu cho điểm chèn quảng cáo tuyến tính/trực tiếp sắp tới trong luồng. API Thông báo điểm chèn quảng cáo sớm (EABN) cho phép bạn triển khai tiêu chí nhắm mục tiêu theo điểm chèn cụ thể bằng cách sử dụng các cặp khoá-giá trị, cung cấp khả năng mở rộng để quyết định quảng cáo trong các luồng có khối lượng lớn.

Các lệnh gọi đến API EABN phải bao gồm khoá tài sản để nhắm mục tiêu và thời lượng dự kiến của điểm chèn tiếp theo. Thời lượng cần phải càng gần với thời lượng của điểm chèn quảng cáo thực tế càng tốt. Nếu thời lượng dự kiến được gửi ngắn hơn điểm chèn quảng cáo được cung cấp, thì Loại lấp đầy điểm chèn quảng cáo còn trống (mặc định là phương tiện chặn trống) sẽ được dùng cho phần còn lại của điểm chèn quảng cáo. Nếu thời lượng dự kiến được gửi dài hơn điểm chèn quảng cáo đã cung cấp, thì điểm chèn quảng cáo của bạn có thể kết thúc trước khi quảng cáo hoàn tất.

Ngoài các trường bắt buộc này, bạn cũng có thể gửi thông số nhắm mục tiêu tuỳ chỉnh, tên của mẫu nhóm quảng cáo để áp dụng hoặc dữ liệu SCTE35 Cue Out (nếu có).

Điều kiện tiên quyết

Tạo một tài khoản dịch vụ

Để truy cập vào API EABN, bạn cần có tài khoản dịch vụ của Google.

  • Nếu có tài khoản Google Cloud, bạn có thể sử dụng mô-đun IAM để tạo tài khoản dịch vụ. Để biết thêm thông tin, hãy xem phần Tạo và quản lý tài khoản dịch vụ.
  • Nếu không có tài khoản Google Cloud, bạn có thể tạo tài khoản dịch vụ trong Google API Console bằng cách làm theo các bước sau:
    1. Tạo dự án mới hoặc chọn dự án hiện có.
    2. Trên trang Thông tin xác thực, hãy nhấp vào Quản lý tài khoản dịch vụ.
    3. Trong trang Tài khoản dịch vụ, hãy nhấp vào TẠO TÀI KHOẢN DỊCH VỤ.
    4. Trong trang Tạo tài khoản dịch vụ, hãy nhập thông tin chi tiết tài khoản. Sau đó, nhấp vào TẠO.

Sau khi bạn tạo thành công tài khoản dịch vụ, hãy sao chép khoá JSON của tài khoản đó. Khoá JSON sẽ được dùng để xác thực.

Bật API EABN

Sau khi tạo tài khoản dịch vụ, hãy yêu cầu người quản lý tài khoản của bạn bật API EABN cho tài khoản đó.

Bật API DAI

Sau khi bật API EABN cho tài khoản dịch vụ, bạn có thể bật API DAI trên tài khoản:

  1. Trong thư viện API của Google, hãy tìm "API DAI".

  2. Chọn và bật API DAI.

Sử dụng API EABN

Bạn có thể gọi API EABN bằng cách sử dụng các yêu cầu JSON/REST.

Xác thực

Để thực hiện các lệnh gọi được xác thực đến API EABN, bạn cần tạo thông tin xác thực tài khoản dịch vụ OAuth2 bằng khoá JSON trong tài khoản dịch vụ của bạn và phạm vi https://www.googleapis.com/auth/video-ads. Để biết thêm thông tin, hãy xem phần Sử dụng OAuth 2.0 cho ứng dụng từ máy chủ đến máy chủ.

Phải bao gồm mã thông báo xác thực kết quả dưới dạng tiêu đề Xác thực cho mỗi lệnh gọi đến API EABN.

Gửi thông báo chèn quảng cáo sớm

Để gửi thông báo chèn quảng cáo sớm, hãy gửi yêu cầu POST bằng URL sau và nội dung yêu cầu:

POST dai.googleapis.com/v1/adBreaks

Nội dung yêu cầu

Đối tượng
adBreak Bắt buộc Đối tượng trình bao bọc cho các thuộc tính adBreak
assetKey Bắt buộc Giá trị nhận dạng duy nhất của LiveStreamEvent dùng để tạo điểm chèn quảng cáo
expectedDuration Bắt buộc Thời lượng của điểm chèn quảng cáo này, sử dụng định dạng thời lượng chuẩn của Google (xx.xxxs, trong đó xx.xxx là số giây)
scte35CueOut Không bắt buộc Dữ liệu được mã hoá dưới dạng base-64 từ tín hiệu ra scte35. Có thể bao gồm lệnh splice_insert() hoặc time_signal().
Ví dụ:
  • time_signal():
    /DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==
  • splice_insert(): /DAvAAAAAAAA///wFAVIAACPf+/+c2nALv4AUsz1AAAAAAAKAAhDVUVJAAABNWLbowo=
custParams Không bắt buộc Cặp khoá-giá trị cần được đưa vào yêu cầu quảng cáo cho điểm chèn này để nhắm mục tiêu theo tiêu chí tuỳ chỉnh trong AM360, được phân tách bằng = và kết hợp bằng &.
Ví dụ:
key=value&key2=value2,value3
Để biết thêm thông tin về tính năng nhắm mục tiêu, hãy xem phần Cung cấp thông số nhắm mục tiêu cho luồng của bạn.
ptpln Không bắt buộc Tên mẫu nhóm quảng cáo

Tiêu đề phản hồi

HTTP/1.1 200 OK

Nội dung phản hồi

Nội dung phản hồi chứa tất cả thông số được gửi trong đối tượng adBreak, cũng như một trường daiBreakId bổ sung chứa giá trị nhận dạng DAI nội bộ cho điểm chèn quảng cáo đã tạo trong luồng.

Ví dụ:

Yêu cầu

POST /v1/adBreaks HTTP/1.1
Content-Type: application/json

{
  "adBreak": {
    "assetKey": "asset1",
    "expectedDuration": "30s",
    "scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
    "custParams": "param1=value1&param2=value2",
    "ptpln": "podtemplate"
  }
}

Phản hồi

HTTP/1.1 200 OK

{
  "assetKey": "asset1",
  "expectedDuration": "30s",
  "custParams": "param1=value1&param2=value2",
  "scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
  "ptpln": "podtemplate",
  "daiBreakId": 1
}

Triển khai mẫu (Python)

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

from absl import app

from google.auth.transport.requests import AuthorizedSession
from google.oauth2 import service_account

SERVICE_ACCOUNT_KEY_FILE = "~/eabn_key.json"
ASSET_KEY = "asset1"

SCOPES = ['https://www.googleapis.com/auth/video-ads']
EABN_API_URL = 'https://dai.googleapis.com/v1/adBreaks'


def main():
  credentials = service_account.Credentials.from_service_account_file(
      SERVICE_ACCOUNT_KEY_FILE, scopes=SCOPES)

  authed_session = AuthorizedSession(credentials)

  data = {
      'assetKey': ASSET_KEY,
      'expectedDuration': '120s',
      'custParams': 'param1=value1&param2=value2',
      'scte35CueOut': '/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==',
  }

  r = authed_session.post(EABN_API_URL, json={'adBreak': data})
  print(r.status_code)
  print(r.headers)
  print(r.text)

if __name__ == '__main__':
  app.run(main)