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:
- Tạo dự án mới hoặc chọn dự án hiện có.
- 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ụ.
- Trong trang Tài khoản dịch vụ, hãy nhấp vào TẠO TÀI KHOẢN DỊCH VỤ.
- 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:
Trong thư viện API của Google, hãy tìm "API DAI".
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ụ:
|
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¶m2=value2",
"ptpln": "podtemplate"
}
}
Phản hồi
HTTP/1.1 200 OK
{
"assetKey": "asset1",
"expectedDuration": "30s",
"custParams": "param1=value1¶m2=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¶m2=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)