동적 광고 삽입 API를 사용하면 DAI 선형 (라이브) 스트림을 요청하고 추적할 수 있습니다.
서비스: dai.google.com
모든 URI는 https://dai.google.com을 기준으로 합니다.
메서드: stream
| 메서드 | |
|---|---|
stream |
POST /linear/v1/hls/event/{assetKey}/stream
지정된 이벤트 ID의 DAI 스트림을 만듭니다. |
HTTP 요청
POST https://dai.google.com/linear/v1/hls/event/{assetKey}/stream
요청 헤더
| 매개변수 | |
|---|---|
api‑key |
string스트림을 만들 때 제공된 API 키는 게시자의 네트워크에서 유효해야 합니다. 요청 본문에 제공하는 대신 API 키를 다음 형식으로 HTTP 승인 헤더에 전달할 수 있습니다. Authorization: DCLKDAI key="<api-key>" |
경로 매개변수
| 매개변수 | |
|---|---|
assetKey |
string스트림의 이벤트 ID입니다. |
요청 본문
요청 본문은 application/x-www-form-urlencoded 유형이며 다음 매개변수를 포함합니다.
| 매개변수 | ||
|---|---|---|
dai-ssb |
선택사항 | 서버 측 비콘 스트림을 만들려면 |
| DFP 타겟팅 매개변수 | 선택사항 | 추가 타겟팅 매개변수입니다. |
| 스트림 매개변수 재정의 | 선택사항 | 스트림 생성 매개변수의 기본값을 재정의합니다. |
| HMAC 인증 | 선택사항 | HMAC 기반 토큰을 사용하여 인증합니다. |
응답 본문
성공한 경우 응답 본문에 새 Stream이 포함됩니다. 서버 측 비콘 스트림의 경우 이 Stream에는 stream_id 및 stream_manifest 필드만 포함됩니다.
Open Measurement
DAI API에는 Verifications 필드에 Open Measurement 확인 정보가 포함되어 있습니다. 이 필드에는 광고 소재 재생을 확인하기 위해 서드 파티 측정 코드를 실행하는 데 필요한 리소스와 메타데이터를 나열하는 하나 이상의 Verification 요소가 포함됩니다. JavaScriptResource만 지원됩니다. 자세한 내용은 IAB Tech Lab 및 VAST 4.1 사양을 참고하세요.
방법: 미디어 확인
재생 중에 광고 미디어 식별자를 발견한 후 스트림 엔드포인트에서 가져온 media_verification_url을 사용하여 즉시 요청합니다. 서버에서 미디어 확인을 시작하는 서버 측 비콘 스트림에는 이러한 요청이 필요하지 않습니다.
media verification 엔드포인트에 대한 요청은 멱등적입니다.
| 메서드 | |
|---|---|
media verification |
GET /{media_verification_url}/{ad_media_id}
API에 미디어 확인 이벤트를 알립니다. |
HTTP 요청
GET https://{media-verification-url}/{ad-media-id}
응답 본문
media verification는 다음 응답을 반환합니다.
- 미디어 확인이 성공하고 모든 핑이 전송된 경우
HTTP/1.1 204 No Content - 잘못된 URL 형식 또는 만료로 인해 요청에서 미디어를 확인할 수 없는 경우
HTTP/1.1 404 Not Found HTTP/1.1 404 Not Found이 ID에 대한 이전 인증 요청이 성공한 경우HTTP/1.1 409 Conflict다른 요청이 현재 핑을 전송하고 있는 경우
광고 미디어 ID (HLS)
광고 미디어 식별자는 '사용자 정의 텍스트 정보' 프레임용으로 예약된 키 TXXX를 사용하여 HLS Timed Metadata에 인코딩됩니다. 프레임의 콘텐츠는 암호화되지 않으며 항상 "google_" 텍스트로 시작합니다.
프레임의 전체 텍스트 콘텐츠는 각 광고 확인 요청을 하기 전에 광고 확인 URL에 추가되어야 합니다.
메서드: metadata
metadata_url의 메타데이터 엔드포인트는 광고 UI를 빌드하는 데 사용되는 정보를 반환합니다. 서버가 광고 미디어 확인을 시작하는 서버 측 비콘 스트림에는 메타데이터 엔드포인트를 사용할 수 없습니다.
| 메서드 | |
|---|---|
metadata |
GET /{metadata_url}/{ad-media-id}GET /{metadata_url}
광고 메타데이터 정보를 가져옵니다. |
HTTP 요청
GET https://{metadata_url}/{ad-media-id}
GET https://{metadata_url}
쿼리 매개변수
| 매개변수 | ||
|---|---|---|
delta_token |
선택사항 |
string
클라이언트의 현재 동기화 상태를 나타내는 불투명 토큰입니다.
제공된 경우 서버는 토큰이 생성된 이후 변경된 메타데이터만 응답에 새 |
응답 본문
성공하면 응답에서 PodMetadata 인스턴스를 반환합니다.
메타데이터 작업
메타데이터에는 tags, ads, 광고 breaks의 세 가지 개별 섹션이 있습니다. 데이터의 진입점은 tags 섹션입니다. 여기에서 태그를 반복하고 이름이 동영상 스트림에서 찾은 광고 미디어 ID의 접두사인 첫 번째 항목을 찾습니다. 예를 들어 다음과 같은 광고 미디어 ID가 있을 수 있습니다.
google_1234567890
그러면 google_12345라는 태그 객체가 표시됩니다. 이 경우 광고 미디어 ID와 일치합니다. 올바른 광고 미디어 접두사 객체를 찾으면 광고 ID, 광고 시점 ID, 이벤트 유형을 조회할 수 있습니다. 그런 다음 광고 ID는 ads 객체를 색인화하는 데 사용되고 광고 시점 ID는 breaks 객체를 색인화하는 데 사용됩니다.
응답 데이터
스트림
스트림은 새로 생성된 스트림의 리소스 목록을 JSON 형식으로 렌더링하는 데 사용됩니다.| JSON 표현 |
|---|
{
"stream_id": string,
"stream_manifest": string,
"hls_master_playlist": string,
"media_verification_url": string,
"metadata_url": string,
"session_update_url": string,
"polling_frequency": number,
} |
| 필드 | |
|---|---|
stream_id |
stringGAM 스트림 식별자입니다. |
stream_manifest |
string스트림의 매니페스트 URL입니다. HLS의 다중 변형 재생목록이나 DASH의 MPD를 가져오는 데 사용됩니다. |
hls_master_playlist |
string(지원 중단됨) HLS 다중 변형 재생목록 URL입니다. 대신 'stream_manifest'를 사용하세요. |
media_verification_url |
string재생 이벤트를 추적하는 데 기준 엔드포인트로 사용되는 미디어 인증 URL입니다. |
metadata_url |
string예정된 스트림 광고 이벤트에 관한 주기적 정보를 폴링하는 데 사용되는 메타데이터 URL입니다. |
session_update_url |
string이 스트림의 타겟팅 매개변수를 업데이트하는 데 사용되는 세션의 업데이트 URL입니다. 타겟팅 매개변수의 원래 값은 초기 스트림 생성 요청 중에 캡처됩니다. |
polling_frequency |
numbermetadata_url 또는 heartbeat_url을 요청할 때의 폴링 빈도(초)입니다. |
PodMetadata
PodMetadata에는 광고, 광고 시점, 미디어 ID 태그에 관한 메타데이터 정보가 포함되어 있습니다.| JSON 표현 |
|---|
{
"tags": map[string, object(TagSegment)],
"ads": map[string, object(Ad)],
"ad_breaks": map[string, object(AdBreak)],
"next_delta_token": string,
"obsolete_ad_break_ids": [],
} |
| 필드 | |
|---|---|
tags |
map[string, object(TagSegment)]태그 접두사로 색인이 생성된 태그 세그먼트의 맵입니다. |
ads |
map[string, object(Ad)]광고 ID로 색인이 생성된 광고의 맵입니다. |
ad_breaks |
map[string, object(AdBreak)]광고 시점 ID로 색인이 생성된 광고 시점의 맵입니다. |
next_delta_token |
string클라이언트가 다음 폴링에서 사용할 불투명 토큰입니다. |
obsolete_ad_break_ids |
string지원 중단되어 클라이언트의 캐시에서 삭제해야 하는 광고 시점 ID 목록입니다. |
TagSegment
TagSegment에는 광고, 광고 시점, 이벤트 유형에 대한 참조가 포함됩니다. type="progress"가 있는 TagSegment는 광고 미디어 확인 엔드포인트로 핑해서는 안 됩니다.| JSON 표현 |
|---|
{ "ad": string, "ad_break_id": string, "type": string, } |
| 필드 | |
|---|---|
ad |
string이 태그의 광고 ID입니다. |
ad_break_id |
string이 태그의 광고 시점 ID입니다. |
type |
string이 태그의 이벤트 유형입니다. |
AdBreak
AdBreak는 스트림의 단일 광고 시점을 설명합니다. 재생 시간, 유형 (미드/프리/포스트), 광고 수를 포함합니다.| JSON 표현 |
|---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
| 필드 | |
|---|---|
type |
string유효한 광고 유형은 pre, mid, post입니다. |
duration |
number이 광고 시간의 총 광고 시간(초)입니다. |
expected_duration |
number모든 광고와 슬레이트를 포함한 광고 시점의 예상 재생 시간 (초)입니다. |
ads |
number광고 시점의 광고 수입니다. |
광고
Ad는 스트림의 광고를 설명합니다.| JSON 표현 |
|---|
{
"ad_break_id": string,
"position": number,
"duration": number,
"title": string,
"description": string,
"advertiser": string,
"ad_system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
"clickthrough_url": string,
"click_tracking_urls": [],
"verifications": [object(Verification)],
"slate": boolean,
"icons": [object(Icon)],
"wrappers": [object(Wrapper)],
"universal_ad_id": object(UniversalAdID),
"extensions": [],
"companions": [object(Companion)],
"interactive_file": object(InteractiveFile),
} |
| 필드 | |
|---|---|
ad_break_id |
string이 광고의 광고 시점 ID입니다. |
position |
number광고 시점 내 광고의 위치입니다(1부터 시작). |
duration |
number광고 길이(초)입니다. |
title |
string광고의 제목(선택사항)입니다. |
description |
string광고에 대한 설명(선택사항)입니다. |
advertiser |
string선택적 광고주 식별자입니다. |
ad_system |
string선택사항인 광고 시스템입니다. |
ad_id |
string선택적 광고 ID입니다. |
creative_id |
string선택사항인 광고 소재 ID입니다. |
creative_ad_id |
string선택적 광고 소재 광고 ID입니다. |
deal_id |
string선택적 거래 ID입니다. |
clickthrough_url |
string선택사항인 클릭연결 URL입니다. |
click_tracking_urls |
string선택적 클릭 추적 URL입니다. |
verifications |
[object(Verification)]서드 파티 측정 코드를 실행하여 광고 소재 재생을 확인하는 데 필요한 리소스와 메타데이터를 나열하는 선택적 공개 측정 확인 항목 |
slate |
boolean현재 항목이 슬레이트임을 나타내는 선택적 불리언입니다. |
icons |
[object(Icon)]아이콘 목록입니다. 비어 있으면 생략됩니다. |
wrappers |
[object(Wrapper)]래퍼 목록입니다. 비어 있으면 생략됩니다. |
universal_ad_id |
object(UniversalAdID)선택적 범용 광고 ID입니다. |
extensions |
stringVAST의 모든 <Extension> 노드의 선택적 목록입니다. |
companions |
[object(Companion)]이 광고와 함께 표시될 수 있는 선택적 컴패니언입니다. |
interactive_file |
object(InteractiveFile)광고 재생 중에 표시되어야 하는 선택적 양방향 광고 소재 (SIMID)입니다. |
아이콘
아이콘에는 VAST 아이콘에 관한 정보가 포함됩니다.| JSON 표현 |
|---|
{ "click_data": object(ClickData), "creative_type": string, "click_fallback_images": [object(FallbackImage)], "height": int32, "width": int32, "resource": string, "type": string, "x_position": string, "y_position": string, "program": string, "alt_text": string, } |
| 필드 | |
|---|---|
click_data |
object(ClickData) |
creative_type |
string |
click_fallback_images |
[object(FallbackImage)] |
height |
int32 |
width |
int32 |
resource |
string |
type |
string |
x_position |
string |
y_position |
string |
program |
string |
alt_text |
string |
ClickData
ClickData에는 아이콘 클릭연결에 관한 정보가 포함됩니다.| JSON 표현 |
|---|
{
"url": string,
} |
| 필드 | |
|---|---|
url |
string |
FallbackImage
FallbackImage에는 VAST 대체 이미지에 관한 정보가 포함됩니다.| JSON 표현 |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| 필드 | |
|---|---|
creative_type |
string |
height |
int32 |
width |
int32 |
resource |
string |
alt_text |
string |
래퍼
래퍼에는 래퍼 광고에 관한 정보가 포함됩니다. 존재하지 않는 경우 거래 ID는 포함되지 않습니다.| JSON 표현 |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| 필드 | |
|---|---|
system |
string광고 시스템 식별자입니다. |
ad_id |
string래퍼 광고에 사용되는 광고 ID입니다. |
creative_id |
string래퍼 광고에 사용된 광고 소재 ID입니다. |
creative_ad_id |
string래퍼 광고에 사용되는 광고 소재 광고 ID입니다. |
deal_id |
string래퍼 광고의 선택적 거래 ID입니다. |
인증
인증에는 서드 파티 조회가능성 및 인증 측정을 용이하게 하는 Open Measurement 정보가 포함되어 있습니다. 현재 JavaScript 리소스만 지원됩니다. https://iabtechlab.com/standards/open-measurement-sdk/를 참고하세요.| JSON 표현 |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| 필드 | |
|---|---|
vendor |
string인증 공급업체입니다. |
java_script_resources |
[object(JavaScriptResource)]확인을 위한 JavaScript 리소스 목록입니다. |
tracking_events |
[object(TrackingEvent)]인증을 위한 추적 이벤트 목록입니다. |
parameters |
string부트스트랩 인증 코드에 전달되는 불투명한 문자열입니다. |
자바스크립트 리소스
JavaScriptResource에는 JavaScript를 통한 확인 정보가 포함됩니다.| JSON 표현 |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| 필드 | |
|---|---|
script_url |
stringJavaScript 페이로드의 URI |
api_framework |
stringAPIFramework는 인증 코드를 실행하는 동영상 프레임워크의 이름입니다. |
browser_optional |
boolean이 스크립트를 브라우저 외부에서 실행할 수 있는지 여부입니다. |
TrackingEvent
TrackingEvent에는 특정 상황에서 클라이언트가 핑해야 하는 URL이 포함되어 있습니다.| JSON 표현 |
|---|
{
"event": string,
"uri": string,
} |
| 필드 | |
|---|---|
event |
string추적 이벤트의 유형입니다. |
uri |
string핑할 추적 이벤트입니다. |
UniversalAdID
UniversalAdID는 광고 시스템 전반에서 유지되는 고유한 광고 소재 식별자를 제공하는 데 사용됩니다.| JSON 표현 |
|---|
{ "id_value": string, "id_registry": string, } |
| 필드 | |
|---|---|
id_value |
string광고에 대해 선택된 광고 소재의 범용 광고 ID입니다. |
id_registry |
string선택한 광고 소재의 범용 광고 ID가 카탈로그화된 등록처 웹사이트의 URL을 식별하는 데 사용되는 문자열입니다. |
컴패니언
컴패니언에는 광고와 함께 표시될 수 있는 컴패니언 광고에 관한 정보가 포함되어 있습니다.| JSON 표현 |
|---|
{ "click_data": object(ClickData), "creative_type": string, "height": int32, "width": int32, "resource": string, "type": string, "ad_slot_id": string, "api_framework": string, "tracking_events": [object(TrackingEvent)], } |
| 필드 | |
|---|---|
click_data |
object(ClickData)이 컴패니언의 클릭 데이터입니다. |
creative_type |
string정적 유형의 컴패니언인 경우 VAST의 <StaticResource> 노드에 있는 CreativeType 속성 |
height |
int32이 컴패니언의 높이(픽셀)입니다. |
width |
int32이 동반 광고의 너비(픽셀)입니다. |
resource |
string정적 및 iframe 동반 광고의 경우 로드되고 표시될 URL입니다. HTML 컴패니언의 경우 컴패니언으로 표시되어야 하는 HTML 스니펫입니다. |
type |
string이 컴패니언의 유형입니다. 정적, iframe 또는 HTML일 수 있습니다. |
ad_slot_id |
string이 컴패니언의 슬롯 ID입니다. |
api_framework |
string이 컴패니언의 API 프레임워크입니다. |
tracking_events |
[object(TrackingEvent)]이 컴패니언의 추적 이벤트 목록입니다. |
InteractiveFile
InteractiveFile에는 광고 재생 중에 표시되어야 하는 인터랙티브 광고 소재 (예: SIMID)에 관한 정보가 포함되어 있습니다.| JSON 표현 |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| 필드 | |
|---|---|
resource |
string대화형 광고 소재의 URL입니다. |
type |
string리소스에 제공된 파일의 MIME 유형입니다. |
variable_duration |
boolean이 광고 소재가 재생 시간 연장을 요청할 수 있는지 여부 |
ad_parameters |
stringVAST의 <AdParameters> 노드 값입니다. |