DAI Early Ad Break Notification API

Wenn Sie die Google-Plattform für die dynamische Anzeigenbereitstellung verwenden, können Sie die nächste bevorstehende Live-/Linear-Werbeunterbrechung in einem Stream. Die erste Werbeunterbrechung Mit dem Notification API (EABN) können Sie Schlüssel/Wert-Paare, die Skalierbarkeit für die Entscheidungsfindung bei Anzeigen bei hohem Volumen bieten Streams.

Aufrufe an die EABN API müssen den Ziel-Assetschlüssel und den erwarteten Assetschlüssel enthalten Dauer der nächsten Unterbrechung. Die Dauer muss so nah wie die tatsächliche Anzeige sein. wie möglich. Wenn die erwartete Sendedauer kürzer ist als die die Werbeunterbrechung zur Verfügung steht, Fülltyp der Werbeunterbrechung unterfüllen (standardmäßig ein leeres Slate) wird für den Rest der Unterbrechung verwendet. Wenn die die erwartete Sendedauer länger als die bereitgestellte Werbeunterbrechung ist, wird die Werbeunterbrechung möglicherweise bevor die Anzeige komplett abgespielt wird.

Neben diesen Pflichtfeldern können Sie auch benutzerdefiniertes Targeting Parameter, den Namen einer anzuwendenden Anzeigen-Pod-Vorlage SCTE35-Cue-out-Daten, wenn verfügbar.

Vorbereitung

Dienstkonto erstellen

Für den Zugriff auf die EABN API benötigen Sie ein Google-Dienstkonto.

  • Wenn Sie ein Google Cloud-Konto haben, können Sie mit dem IAM-Modul ein Dienstkonto. Weitere Informationen finden Sie unter Dienstkonten erstellen und verwalten.
  • Wenn Sie kein Google Cloud-Konto haben, können Sie ein Dienstkonto erstellen. über die Google API Console indem Sie die folgenden Schritte ausführen: <ph type="x-smartling-placeholder">
      </ph>
    1. Erstellen Sie ein neues Projekt oder wählen Sie ein vorhandenes Projekt aus.
    2. Klicken Sie auf der Seite Anmeldedaten auf Dienstkonten verwalten.
    3. Klicken Sie auf der Seite Dienstkonten auf DIENSTKONTO ERSTELLEN.
    4. Geben Sie auf der Seite Dienstkonto erstellen die Kontodetails ein. Dann Klicken Sie auf ERSTELLEN.

Nachdem Sie ein Dienstkonto erstellt haben, kopieren Sie die JSON-Datei des Kontos. -Schlüssel, der für die Authentifizierung verwendet wird.

EABN API aktivieren

Bitten Sie Ihren Account Manager, das Dienstkonto zu aktivieren, die EABN API für dieses Konto.

DAI API aktivieren

Nachdem die EABN API für Ihr Dienstkonto aktiviert wurde, aktivieren Sie die DAI API. für das Konto:

  1. Führen Sie in der Google API-Bibliothek folgende Schritte aus: suchen Sie nach „DAI API“.

  2. Wählen Sie die DAI API aus und aktivieren Sie sie.

EABN API verwenden

Sie können die EABN API mit JSON-/REST-Anfragen aufrufen.

Authentifizierung

Für authentifizierte Aufrufe an die EABN API müssen Sie den OAuth2-Dienst generieren. Kontoanmeldedaten unter Verwendung des JSON-Schlüssels aus Ihrem Dienstkonto und dem Bereich https://www.googleapis.com/auth/video-ads Weitere Informationen finden Sie unter OAuth 2.0 für Server-zu-Server-Anwendungen verwenden.

Das muss das resultierende Authentifizierungstoken als Auth-Header für jede an die EABN API senden.

Frühzeitige Benachrichtigung zur Werbeunterbrechung senden

Wenn du eine frühzeitige Benachrichtigung zu einer Werbeunterbrechung senden möchtest, musst du eine POST-Anfrage mit folgendem Befehl senden: URL und Anfragetext:

POST dai.googleapis.com/v1/adBreaks

Anfragetext

Object
adBreak Erforderlich Das Wrapper-Objekt für adBreak-Attribute
assetKey Erforderlich Eine eindeutige Kennung für die LiveStreamEvent, für die der Werbeunterbrechung wird erstellt
expectedDuration Erforderlich Die Dauer dieser Werbeunterbrechung im Standardformat von Google (xx.xxxs, wobei xx.xxx für die Anzahl der Sekunden steht)
scte35CueOut Optional Base-64-codierte Daten aus dem scte35-Cue-out. Kann Folgendes enthalten: splice_insert()- oder time_signal()-Befehl.
Beispiele: <ph type="x-smartling-placeholder">
    </ph>
  • time_signal():
    /DA0AAAAAAAA///wBQb+cr0AUAAeAhxDVUVJSAAAjn/PAAGlmbAICAAAAAAsoKGKNAIAmsnRfg==
  • splice_insert(): /DAvAAAAAAAA///wFAVIAACPf+/+c2nALv4AUsz1AAAAAAAKAAhDVUVJAAABNWLbowo=
custParams Optional Schlüssel/Wert-Paare, die in Anzeigenanfragen für diese Werbeunterbrechung für benutzerdefinierte Kriterien-Targeting in AM360, getrennt durch = und verbunden durch &.
Beispiel:

key=value&key2=value2,value3 Weitere Informationen zum Targeting finden Sie unter Liefer-Targeting zu Ihrem Stream hinzufügen.
ptpln Optional Name der Anzeigen-Pod-Vorlage

Antwortheader

HTTP/1.1 200 OK

Antworttext

Der Antworttext enthält alle Parameter, die im adBreak-Objekt gesendet wurden. sowie ein zusätzliches daiBreakId-Feld, das die interne dynamische Anzeigenbereitstellung enthält. ID der erstellten Werbeunterbrechung im Stream.

Beispiel

Anfrage

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

Antwort

HTTP/1.1 200 OK

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

Beispielimplementierung (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)