API การแจ้งเตือนช่วงพักโฆษณาตอนต้นของ DAI

เมื่อใช้แพลตฟอร์ม Google DAI คุณอาจต้องระบุข้อมูลการกำหนดเป้าหมาย ช่วงพักโฆษณาสด/เชิงเส้นถัดไป ที่จะเกิดขึ้นในสตรีม ช่วงพักโฆษณาตอนต้น Notifications (EABN) API ช่วยให้คุณสามารถใช้การกำหนดเป้าหมายแบบเจาะจงช่วงพักโฆษณาได้โดยใช้ คู่คีย์-ค่า ซึ่งมอบความสามารถในการปรับขนาดสำหรับการตัดสินใจด้านโฆษณาในปริมาณมาก สตรีม

การเรียก EABN API ต้องมีคีย์ของชิ้นงานที่จะกําหนดเป้าหมายและ URL ที่คาดไว้ ของช่วงพักครั้งต่อไป ระยะเวลาต้องใกล้เคียงกับโฆษณาจริง ให้เว้นระยะเวลานานที่สุด หากระยะเวลาที่คาดไว้ส่งสั้นกว่า ช่วงพักโฆษณาที่มีอยู่ ประเภทโฆษณาที่ใช้เติมในเวลาที่เหลือของช่วงพักโฆษณา (ค่าเริ่มต้นคือแถบสเลทว่าง) ใช้สำหรับช่วงเวลาที่เหลือของช่วงพัก หาก ระยะเวลาที่คาดไว้ส่งนานกว่าช่วงพักโฆษณาที่ระบุ ช่วงพักโฆษณาอาจ สิ้นสุดก่อนที่โฆษณาจะสมบูรณ์

นอกจากช่องที่ต้องกรอกเหล่านี้แล้ว คุณยังส่งการกำหนดเป้าหมายเองได้ด้วย ชื่อของเทมเพลตพ็อดโฆษณาที่จะใช้ หรือ ข้อมูล SCTE35 Cue Out หาก พร้อมใช้งาน

ข้อกำหนดเบื้องต้น

สร้างบัญชีบริการ

คุณต้องมีบัญชีบริการของ Google เพื่อเข้าถึง EABN API

  • หากคุณมีบัญชี Google Cloud คุณสามารถใช้โมดูล IAM เพื่อสร้าง บัญชีบริการ สำหรับข้อมูลเพิ่มเติม โปรดดู การสร้างและจัดการบัญชีบริการ
  • หากไม่มีบัญชี Google Cloud คุณสร้างบัญชีบริการได้ จากคอนโซล Google API โดยทำตามขั้นตอนต่อไปนี้
    1. สร้างโปรเจ็กต์ใหม่หรือเลือกโปรเจ็กต์ที่มีอยู่
    2. คลิกจัดการบัญชีบริการในหน้าข้อมูลเข้าสู่ระบบ
    3. ในหน้าบัญชีบริการ ให้คลิกสร้างบัญชีบริการ
    4. ป้อนรายละเอียดบัญชีในหน้าสร้างบัญชีบริการ จากนั้น คลิกสร้าง

เมื่อสร้างบัญชีบริการเรียบร้อยแล้ว ให้คัดลอก JSON ของบัญชี ซึ่งจะใช้สำหรับการตรวจสอบสิทธิ์

เปิดใช้ EABN API

เมื่อสร้างบัญชีบริการแล้ว โปรดขอให้ผู้จัดการเปิดใช้ EABN API สำหรับบัญชีนั้น

เปิดใช้ DAI API

เมื่อเปิดใช้ EABN API สำหรับบัญชีบริการแล้ว ให้เปิดใช้ DAI API ในบัญชี:

  1. ในไลบรารี Google API ให้ค้นหา “DAI API”

  2. เลือกและเปิดใช้ 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()
ตัวอย่าง:
  • time_signal():
    /DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==
  • splice_insert(): /DAvAAAAAAAA///wFAVIAACPf+/+c2nALv4AUsz1AAAAAAAKAAhDVUVJAAABNWLbowo=
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&param2=value2",
    "ptpln": "podtemplate"
  }
}

คำตอบ

HTTP/1.1 200 OK

{
  "assetKey": "asset1",
  "expectedDuration": "30s",
  "custParams": "param1=value1&param2=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&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)