API Notifikasi Jeda Iklan Awal DAI

Saat menggunakan platform Google DAI, sebaiknya berikan data penargetan untuk jeda iklan live/linear mendatang berikutnya dalam streaming. Early Ad Break Notification (EABN) API memungkinkan Anda menerapkan penargetan khusus jeda iklan menggunakan key-value pair, yang memberikan skalabilitas untuk pengambilan keputusan iklan dalam streaming bervolume tinggi.

Panggilan yang dilakukan ke EABN API harus menyertakan kunci aset yang akan ditargetkan dan durasi jeda berikutnya yang diharapkan. Durasi harus sedekat mungkin dengan durasi jeda iklan yang sebenarnya. Jika perkiraan durasi yang dikirim lebih pendek dari jeda iklan yang diberikan, Jenis pengisian jeda iklan tidak terisi (default-nya adalah slate kosong) digunakan untuk sisa jeda iklan. Jika durasi yang diharapkan yang dikirim lebih lama daripada jeda iklan yang diberikan, jeda iklan Anda mungkin berakhir sebelum iklan selesai.

Selain kolom wajib diisi tersebut, Anda juga dapat mengirim parameter penargetan kustom, nama template pod iklan yang akan diterapkan, atau data SCTE35 Cue Out, jika tersedia.

Prasyarat

Membuat akun layanan

Untuk mengakses EABN API, Anda memerlukan akun layanan Google.

  • Jika memiliki akun Google Cloud, Anda dapat menggunakan modul IAM untuk membuat akun layanan. Untuk informasi selengkapnya, lihat Membuat dan mengelola akun layanan.
  • Jika tidak memiliki akun Google Cloud, Anda dapat membuat akun layanan dari Konsol API Google, dengan mengikuti langkah-langkah berikut:
    1. Buat project baru atau pilih project yang ada.
    2. Di halaman Credentials, klik Manage service accounts.
    3. Di halaman Service accounts, klik CREATE SERVICE ACCOUNT.
    4. Di halaman Create service account, masukkan detail akun. Lalu klik BUAT.

Setelah berhasil membuat akun layanan, salin kunci JSON akun yang akan digunakan untuk autentikasi.

Mengaktifkan EABN API

Setelah akun layanan dibuat, minta Account Manager Anda untuk mengaktifkan EABN API untuk akun tersebut.

Mengaktifkan DAI API

Setelah EABN API diaktifkan untuk akun layanan Anda, aktifkan DAI API di akun:

  1. Di library Google API, telusuri "DAI API".

  2. Pilih dan aktifkan DAI API.

Menggunakan EABN API

Anda dapat memanggil EABN API menggunakan permintaan JSON/REST.

Autentikasi

Untuk melakukan panggilan yang diautentikasi ke EABN API, Anda perlu membuat kredensial akun layanan OAuth2 menggunakan kunci JSON dari akun layanan Anda dan cakupan https://www.googleapis.com/auth/video-ads. Untuk informasi selengkapnya, lihat Menggunakan OAuth 2.0 untuk Aplikasi Server ke Server.

Panggilan tersebut harus menyertakan token autentikasi yang dihasilkan sebagai header Auth untuk setiap panggilan ke EABN API.

Mengirim notifikasi jeda iklan awal

Untuk mengirim notifikasi jeda iklan awal, kirim permintaan POST menggunakan URL dan isi permintaan berikut:

POST dai.googleapis.com/v1/adBreaks

Isi permintaan

Object
adBreak Wajib Objek wrapper untuk properti adBreak
assetKey Wajib ID unik untuk LiveStreamEvent yang digunakan untuk membuat jeda
expectedDuration Wajib Durasi jeda iklan ini, menggunakan format durasi standar Google (xx.xxxs dengan xx.xxx adalah jumlah detik)
scte35CueOut Opsional Data yang dienkode base-64 dari cue out scte35. Dapat menyertakan perintah splice_insert() atau time_signal().
Contoh:
  • time_signal().
    /DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==
  • splice_insert(): /DAvAAAAAAAA///wFAVIAACPf+/+c2nALv4AUsz1AAAAAAAKAAhDVUVJAAABNWLbowo=
custParams Opsional Pasangan nilai kunci yang akan disertakan dalam permintaan iklan untuk jeda ini bagi penargetan kriteria kustom di AM360, yang dipisahkan dengan = dan digabungkan dengan &.
Contoh:
key=value&key2=value2,value3
Untuk informasi selengkapnya tentang penargetan, lihat Menyediakan parameter penargetan ke streaming Anda.
ptpln Opsional Nama template pod iklan

Header respons

HTTP/1.1 200 OK

Isi respons

Isi respons berisi semua parameter yang dikirim dalam objek adBreak, serta kolom daiBreakId tambahan, yang berisi ID DAI internal untuk jeda iklan yang dibuat dalam aliran.

Contoh

Permintaan

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"
  }
}

Respons

HTTP/1.1 200 OK

{
  "assetKey": "asset1",
  "expectedDuration": "30s",
  "custParams": "param1=value1&param2=value2",
  "scte35CueOut": "/DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==",
  "ptpln": "podtemplate",
  "daiBreakId": 1
}

Contoh implementasi (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)