DAI 조기 광고 시점 알림 API

Google DAI 플랫폼을 사용하는 경우 스트림에서 다음 실시간/선형 광고 시점의 타겟팅 데이터를 제공하는 것이 좋습니다. Early Ad Break Notification (EABN) API를 사용하면 키-값 쌍을 사용하여 광고 시점별 타겟팅을 구현할 수 있으므로 대용량 스트림에서 광고 결정을 위한 확장성을 제공합니다.

EABN API 호출에는 타겟팅할 애셋 키와 다음 광고의 예상 지속 시간이 포함되어야 합니다. 재생 시간은 실제 광고 시점 길이에 최대한 가까워야 합니다. 전송되는 예상 시간이 제공된 광고 시간보다 짧으면 미달 광고 시점 채우기 유형(기본값 빈 슬레이트)이 남은 광고 시간 동안 사용됩니다. 전송 예상 시간이 제공된 광고 시점보다 긴 경우 광고가 완료되기 전에 광고 시점이 종료될 수 있습니다.

이러한 필수 필드 외에도 맞춤 타겟팅 매개변수, 적용할 광고 모음 템플릿의 이름 또는 SCTE35 Cue Out 데이터(있는 경우)를 전송할 수도 있습니다.

기본 요건

서비스 계정 만들기

EABN API에 액세스하려면 Google 서비스 계정이 필요합니다.

  • 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 사용

JSON/REST 요청을 사용하여 EABN API를 호출할 수 있습니다.

인증

EABN API에 인증된 호출을 수행하려면 서비스 계정의 JSON 키와 https://www.googleapis.com/auth/video-ads 범위를 사용하여 OAuth2 서비스 계정 사용자 인증 정보를 생성해야 합니다. 자세한 내용은 서버 간 애플리케이션에서 OAuth 2.0 사용하기를 참고하세요.

는 EABN API를 호출할 때마다 결과 인증 토큰을 인증 헤더로 포함해야 합니다.

광고 시점 조기 알림 전송

광고 시점 조기 알림을 보내려면 다음 URL 및 요청 본문을 사용하여 POST 요청을 보냅니다.

POST dai.googleapis.com/v1/adBreaks

요청 본문

객체
adBreak 필수 adBreak 속성의 래퍼 객체
assetKey 필수 광고 시점이 생성되는 LiveStreamEvent의 고유 식별자입니다.
expectedDuration 필수 Google의 표준 재생 시간 형식을 사용하는 이 광고 시점의 길이(xx.xxx 여기서 xx.xxx는 초임)
scte35CueOut 선택사항 scte35 큐 아웃의 Base64 인코딩 데이터 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 객체에서 전송된 모든 매개변수와 스트림 내에서 생성된 광고 시점의 내부 DAI 식별자가 포함된 추가 daiBreakId 필드가 포함됩니다.

요청

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)