Interfejs API Early Ad Break Notification API

Jeśli korzystasz z platformy DAI, możesz podać dane kierowania na następną przerwę na reklamę na żywo lub linearną w strumieniu. Interfejs Early Ad Break Notification (EABN) API umożliwia wdrożenie kierowania specyficznego dla przerwy za pomocą par klucz-wartość, co zapewnia skalowalność przy podejmowaniu decyzji o reklamach w dużych strumieniach.

Wywołania interfejsu EABN API muszą zawierać klucz pliku, na który chcesz ustawić kierowanie, oraz oczekiwany czas trwania następnej przerwy. Czas trwania przerwy na reklamę musi być jak najbardziej zbliżony do rzeczywistego. Jeśli oczekiwany czas trwania wysyłanej przerwy na reklamę jest krótszy niż podana przerwa na reklamę, do pozostałej części przerwy używany jest niedostatecznie wypełniony typ wypełnienia przerwy na reklamę (domyślnie jest to pusta plansza). Jeśli oczekiwany czas trwania wysyłanych reklam jest dłuższy niż podana przerwa na reklamę, przerwa może zakończyć się przed zakończeniem wyświetlania reklamy.

Oprócz tych wymaganych pól możesz też wysyłać parametry kierowania niestandardowego, nazwę szablonu bloku reklamowego do zastosowania lub dane SCTE35 Cue Out (jeśli są dostępne).

Wymagania wstępne

Tworzenie konta usługi

Aby uzyskać dostęp do interfejsu EABN API, musisz mieć konto usługi Google.

  • Jeśli masz konto Google Cloud, możesz utworzyć konto usługi za pomocą modułu uprawnień. Więcej informacji znajdziesz w artykule o tworzeniu kont usługi i zarządzaniu nimi.
  • Jeśli nie masz konta Google Cloud, możesz je utworzyć w Konsoli interfejsów API Google, wykonując te czynności:
    1. Utwórz nowy projekt lub wybierz już istniejący.
    2. Na stronie Dane logowania kliknij Zarządzaj kontami usługi.
    3. Na stronie Konta usługi kliknij UTWÓRZ KONTO USŁUGI.
    4. Na stronie Utwórz konto usługi wpisz szczegóły konta. Potem kliknij UTWÓRZ.

Po utworzeniu konta usługi skopiuj jego klucz JSON, który będzie używany do uwierzytelniania.

Włącz interfejs EABN API

Po utworzeniu konta usługi poproś menedżera konta o włączenie dla niego interfejsu EABN API.

Włączanie interfejsu DAI API

Gdy włączysz interfejs EABN API na swoim koncie usługi, włącz interfejs DAI API na tym koncie:

  1. W bibliotece interfejsów API Google wyszukaj „DAI API”.

  2. Wybierz i włącz interfejs DAI API.

Korzystanie z interfejsu EABN API

Interfejs EABN API możesz wywoływać za pomocą żądań JSON/REST.

Uwierzytelnianie

Aby wykonywać uwierzytelnione wywołania interfejsu EABN API, musisz wygenerować dane logowania do konta usługi OAuth2 za pomocą klucza JSON z konta usługi i zakresu https://www.googleapis.com/auth/video-ads. Więcej informacji znajdziesz w artykule o używaniu OAuth 2.0 w aplikacjach międzyserwerowych.

Przy każdym wywołaniu interfejsu EABN API musi on zawierać otrzymany token uwierzytelniania jako nagłówek uwierzytelniania.

Wysyłanie wcześniejszego powiadomienia o przerwie na reklamę

Aby wysłać wcześniejsze powiadomienie o przerwie na reklamę, wyślij żądanie POST, używając tego adresu URL i treści żądania:

POST dai.googleapis.com/v1/adBreaks

Treść żądania

Obiekt
adBreak Wymagane Obiekt kodu dla właściwości adBreak
assetKey Wymagane Unikalny identyfikator elementu LiveStreamEvent, dla którego tworzona jest przerwa
expectedDuration Wymagane Czas trwania przerwy na reklamę w standardowym formacie Google (xx.xxxs, gdzie xx.xxx to liczba sekund)
scte35CueOut Opcjonalnie Dane zakodowane w formacie Base-64 ze sygnału SCTE35. Może zawierać polecenie splice_insert() lub time_signal().
Przykłady:
  • time_signal():
    /DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==
  • splice_insert(): /DAvAAAAAAAA///wFAVIAACPf+/+c2nALv4AUsz1AAAAAAAKAAhDVUVJAAABNWLbowo=
custParams Opcjonalnie Pary klucz-wartość uwzględniane w żądaniach reklamy w ramach tej przerwy na potrzeby kierowania według kryteriów niestandardowych w AM360 rozdzielone znakiem = i połączonym znakiem &.
Przykład:
key=value&key2=value2,value3
Więcej informacji o kierowaniu znajdziesz w artykule Dodawanie parametrów kierowania do strumienia.
ptpln Opcjonalnie Nazwa szablonu bloku reklamowego

Nagłówek odpowiedzi

HTTP/1.1 200 OK

Treść odpowiedzi

Treść odpowiedzi zawiera wszystkie parametry wysłane w obiekcie adBreak, a także dodatkowe pole daiBreakId, które zawiera wewnętrzny identyfikator DAI dla utworzonej przerwy na reklamę w strumieniu.

Przykład

Prośba

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

Odpowiedź

HTTP/1.1 200 OK

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

Przykładowa implementacja (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)