เมื่อใช้แพลตฟอร์ม Google DAI คุณอาจต้องระบุข้อมูลการกำหนดเป้าหมาย ช่วงพักโฆษณาสด/เชิงเส้นถัดไป ที่จะเกิดขึ้นในสตรีม ช่วงพักโฆษณาตอนต้น Notifications (EABN) API ช่วยให้คุณสามารถใช้การกำหนดเป้าหมายแบบเจาะจงช่วงพักโฆษณาได้โดยใช้ คู่คีย์-ค่า ซึ่งมอบความสามารถในการปรับขนาดสำหรับการตัดสินใจด้านโฆษณาในปริมาณมาก สตรีม
การเรียก EABN API ต้องมีคีย์ของชิ้นงานที่จะกําหนดเป้าหมายและ URL ที่คาดไว้ ของช่วงพักครั้งต่อไป ระยะเวลาต้องใกล้เคียงกับโฆษณาจริง ให้เว้นระยะเวลานานที่สุด หากระยะเวลาที่คาดไว้ส่งสั้นกว่า ช่วงพักโฆษณาที่มีอยู่ ประเภทโฆษณาที่ใช้เติมในเวลาที่เหลือของช่วงพักโฆษณา (ค่าเริ่มต้นคือแถบสเลทว่าง) ใช้สำหรับช่วงเวลาที่เหลือของช่วงพัก หาก ระยะเวลาที่คาดไว้ส่งนานกว่าช่วงพักโฆษณาที่ระบุ ช่วงพักโฆษณาอาจ สิ้นสุดก่อนที่โฆษณาจะสมบูรณ์
นอกจากช่องที่ต้องกรอกเหล่านี้แล้ว คุณยังส่งการกำหนดเป้าหมายเองได้ด้วย ชื่อของเทมเพลตพ็อดโฆษณาที่จะใช้ หรือ ข้อมูล SCTE35 Cue Out หาก พร้อมใช้งาน
ข้อกำหนดเบื้องต้น
สร้างบัญชีบริการ
คุณต้องมีบัญชีบริการของ Google เพื่อเข้าถึง EABN API
- หากคุณมีบัญชี Google Cloud คุณสามารถใช้โมดูล IAM เพื่อสร้าง บัญชีบริการ สำหรับข้อมูลเพิ่มเติม โปรดดู การสร้างและจัดการบัญชีบริการ
- หากไม่มีบัญชี Google Cloud คุณสร้างบัญชีบริการได้
จากคอนโซล Google API
โดยทำตามขั้นตอนต่อไปนี้
- สร้างโปรเจ็กต์ใหม่หรือเลือกโปรเจ็กต์ที่มีอยู่
- คลิกจัดการบัญชีบริการในหน้าข้อมูลเข้าสู่ระบบ
- ในหน้าบัญชีบริการ ให้คลิกสร้างบัญชีบริการ
- ป้อนรายละเอียดบัญชีในหน้าสร้างบัญชีบริการ จากนั้น คลิกสร้าง
เมื่อสร้างบัญชีบริการเรียบร้อยแล้ว ให้คัดลอก JSON ของบัญชี ซึ่งจะใช้สำหรับการตรวจสอบสิทธิ์
เปิดใช้ EABN API
เมื่อสร้างบัญชีบริการแล้ว โปรดขอให้ผู้จัดการเปิดใช้ EABN API สำหรับบัญชีนั้น
เปิดใช้ DAI API
เมื่อเปิดใช้ EABN API สำหรับบัญชีบริการแล้ว ให้เปิดใช้ DAI API ในบัญชี:
ในไลบรารี Google API ให้ค้นหา “DAI API”
เลือกและเปิดใช้ DAI API
การใช้ EABN API
คุณเรียกใช้ EABN API ได้โดยใช้คำขอ JSON/REST
การตรวจสอบสิทธิ์
หากต้องการเรียก EABN API ที่มีการตรวจสอบสิทธิ์ คุณต้องสร้างบริการ OAuth2
ข้อมูลเข้าสู่ระบบของบัญชีโดยใช้คีย์ JSON จากบัญชีบริการและขอบเขต
https://www.googleapis.com/auth/video-ads
สำหรับข้อมูลเพิ่มเติม โปรดดู
การใช้ OAuth 2.0 สำหรับแอปพลิเคชันระหว่างเซิร์ฟเวอร์กับเซิร์ฟเวอร์
ต้องมีโทเค็นการตรวจสอบสิทธิ์ที่ได้เป็นส่วนหัวการตรวจสอบสิทธิ์สำหรับแต่ละรายการ ไปยัง EABN API
การส่งการแจ้งเตือนช่วงพักโฆษณาล่วงหน้า
หากต้องการส่งการแจ้งเตือนช่วงพักโฆษณาล่วงหน้า ให้ส่งคำขอ POST โดยใช้คำสั่งต่อไปนี้ URL และเนื้อหาคำขอ:
POST dai.googleapis.com/v1/adBreaks
เนื้อหาของคำขอ
ออบเจ็กต์ | ||
---|---|---|
adBreak |
ต้องระบุ | ออบเจ็กต์ Wrapper สำหรับพร็อพเพอร์ตี้ adBreak |
assetKey |
ต้องระบุ | ตัวระบุที่ไม่ซ้ำกันสำหรับ LiveStreamEvent ซึ่ง
สร้างช่วงพักแล้ว |
expectedDuration |
ต้องระบุ | ระยะเวลาของช่วงพักโฆษณานี้โดยใช้รูปแบบระยะเวลามาตรฐานของ Google (xx.xxxs โดยที่ xx.xxx คือจำนวนวินาที) |
scte35CueOut |
ไม่บังคับ | ข้อมูลที่เข้ารหัสฐาน 64 จากข้อความสุดท้าย SCTE-35 อาจมี
คำสั่ง splice_insert() หรือ time_signal()
ตัวอย่าง:
|
custParams |
ไม่บังคับ | คู่คีย์-ค่าจะรวมอยู่ในคำขอโฆษณาสำหรับช่วงพักโฆษณานี้สำหรับที่กำหนดเอง
เกณฑ์ที่กำหนดเป้าหมายใน AM360 คั่นด้วย = และเข้าร่วมโดย
& เช่น key=value&key2=value2,value3
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดเป้าหมายได้ที่
การกำหนดเป้าหมายซัพพลาย
ไปยังสตรีมของคุณ
|
ptpln |
ไม่บังคับ | ชื่อเทมเพลตพ็อดโฆษณา |
ส่วนหัวการตอบกลับ
HTTP/1.1 200 OK
เนื้อหาการตอบกลับ
เนื้อหาการตอบกลับมีพารามิเตอร์ทั้งหมดที่ส่งในออบเจ็กต์ adBreak
รวมถึงช่อง daiBreakId
เพิ่มเติมที่มี DAI ภายใน
สำหรับช่วงพักโฆษณาที่สร้างขึ้นภายในสตรีม
ตัวอย่าง
ส่งคำขอ
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)