使用 Google DAI 平台時,建議您提供以下項目的指定目標資料: 下個即將開始的直播/線性廣告插播早期廣告插播 Notification (EABN) API 可讓您使用 的鍵/值組合,方便在大量買方方面做出廣告決策 串流。
向 EABN API 發出的呼叫必須包含要指定的資產金鑰,以及預期的 也就是下一個廣告插播的時間長度時間長度必須接近實際廣告 廣告插播長度如果傳送的預期時間長度比 提供的廣告插播時間點 未填入廣告插播供應類型 (預設為空白插入畫面) 用於剩餘的廣告插播時間。如果 傳送的廣告插播時間點超過所規定的廣告時段,廣告時段 請在廣告播放完畢前結束
除了這些必填欄位之外,您也可以傳送自訂指定目標 參數、要套用的廣告連播範本名稱,或 SCTE35 Cue Out 資料 (如果有的話) 廣告。
必要條件
建立服務帳戶
您必須具備 Google 服務帳戶,才能存取 EABN API。
- 如果您有 Google Cloud 帳戶,可以使用 IAM 模組 新建立的服務帳戶若需更多資訊,請參閲 建立及管理服務帳戶。
- 如果您沒有 Google Cloud 帳戶,可以建立服務帳戶。
使用 Google API 控制台,接著
步驟如下:
- 建立新專案或選取現有專案。
- 在「憑證」頁面中,按一下「管理服務帳戶」。
- 在「服務帳戶」頁面中,按一下「建立服務帳戶」。
- 在「Create service account」(建立服務帳戶) 頁面中,輸入帳戶詳細資料。接著 點選「建立」。
成功建立服務帳戶後,請複製該帳戶的 JSON 金鑰,用於驗證。
啟用 EABN API
服務帳戶建立完畢後,請要求客戶經理啟用 該帳戶的 EABN API
啟用 DAI API
為服務帳戶啟用 EABN API 後,請啟用 DAI API 帳戶:
在 Google API 程式庫中 搜尋「DAI API」。
選取並啟用 DAI API。
使用 EABN API
您可以使用 JSON/REST 要求呼叫 EABN API。
驗證
如要對 EABN API 進行驗證呼叫,您必須產生 OAuth2 服務
帳戶憑證
https://www.googleapis.com/auth/video-ads
。若需更多資訊,請參閲
針對伺服器對伺服器應用程式使用 OAuth 2.0。
必須加入產生的驗證權杖,做為每個 呼叫 EABN API。
傳送「即將到來的廣告插播通知」
如要傳送「即將到來的廣告插播通知」,請使用下列指令傳送 POST 要求 網址和要求主體:
POST dai.googleapis.com/v1/adBreaks
要求主體
物件 | ||
---|---|---|
adBreak |
必填 | adBreak 屬性的包裝函式物件 |
assetKey |
必填 | LiveStreamEvent 的專屬 ID,
已建立休息時間 |
expectedDuration |
必填 | 這個廣告插播的時間長度,使用 Google 的標準時間長度格式 (xx.xxx,其中 xx.xxx 為秒數) |
scte35CueOut |
選用 | scte35 提示點的 Base-64 編碼資料。可包含
splice_insert() 或 time_signal() 指令。
示例:
|
custParams |
選用 | 要在這個廣告插播時間點加入廣告請求的鍵/值組合
標準指定目標,以 = 分隔,以
& .範例: key=value&key2=value2,value3
如要進一步瞭解指定目標,請參閱
供應指定目標
新增至串流參數
|
ptpln |
選用 | 廣告連播範本名稱 |
回應標頭
HTTP/1.1 200 OK
回應主體
回應主體會包含 adBreak
物件中傳送的所有參數。
,以及包含內部動態廣告插播的額外 daiBreakId
欄位
附加至串流中已建立的廣告插播 ID。
範例
要求
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"
}
}
回應
HTTP/1.1 200 OK
{
"assetKey": "asset1",
"expectedDuration": "30s",
"custParams": "param1=value1¶m2=value2",
"scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
"ptpln": "podtemplate",
"daiBreakId": 1
}
實作範例 (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)