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

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

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

นอกเหนือจากช่องที่ต้องกรอกเหล่านี้แล้ว คุณยังส่งพารามิเตอร์การกำหนดเป้าหมายเอง ชื่อเทมเพลตพ็อดโฆษณาที่จะใช้ หรือข้อมูล 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. ค้นหา "DAI API" ในไลบรารี Google 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)