API динамической вставки рекламы позволяет запрашивать и отслеживать прямые трансляции DAI.
Сервис: dai.google.com
Все URI являются относительными по отношению к https://dai.google.com .
Метод: поток
| Методы | |
|---|---|
stream | POST /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/streamРегистрирует DAI-под, обслуживающий сессию прямой трансляции. |
HTTP-запрос
POST https://dai.google.com/ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
Текст запроса
Тело запроса имеет тип application/x-www-form-urlencoded и содержит следующие параметры:
| Параметры | ||
|---|---|---|
| Параметры таргетинга DFP | Необязательный | Дополнительные параметры наведения. |
| Переопределение параметров потока | Необязательный | Переопределить значения по умолчанию параметра создания потока. |
| Аутентификация HMAC | Необязательный | Аутентификация осуществляется с помощью токена на основе HMAC. |
Ответный текст
В случае успеха тело ответа будет содержать новый объект Stream .
Открытое измерение
API DAI содержит информацию для проверки Open Measurement в поле Verifications . Это поле содержит один или несколько элементов Verification , в которых перечислены ресурсы и метаданные, необходимые для выполнения стороннего кода измерения с целью проверки воспроизведения креативов. Поддерживается только JavaScriptResource . Для получения дополнительной информации см. IAB Tech Lab и спецификацию VAST 4.1 .
Метод: сегмент стручка
| Методы | |
|---|---|
pod segment | GET /linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format}Создает поток DAI для заданного идентификатора события. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format}
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
pod_identifier | Поддерживаются следующие форматы: pod/{integer} Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков присваиваются последовательно для каждого события рекламной паузы, начиная с ad_break_id/{string}Строковый идентификатор текущей рекламной паузы. Любой неизвестный идентификатор рекламной паузы, предоставленный этому адресу, создаст новую рекламную паузу для прямой трансляции. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
profile_name | stringНазвание запрашиваемого профиля кодирования DAI в Google Ad Manager . Профиль кодирования должен быть одним из настроенных профилей кодирования для выбранного события. |
segment_number | integerИндекс запрошенного сегмента в текущем рекламном блоке, начинающийся с нуля. |
segment_format | string Расширение файла, связанное с запрошенным форматом сегмента. Допустимые расширения: |
Параметры запроса
| Параметры | ||||||
|---|---|---|---|---|---|---|
stream_id | необходимый | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке | ||||
sd | required 1 | integerДлительность запрошенного сегмента в миллисекундах. | ||||
so | необязательный | Смещение запрошенного сегмента внутри рекламного блока в миллисекундах. Если параметр | ||||
pd | требуется 2 | integerДлительность рекламного блока в миллисекундах. | ||||
auth-token | необходимый | string
| ||||
last | необязательный | booleanУказывает последний сегмент в рекламной паузе. Для всех остальных сегментов этот параметр следует опустить. | ||||
scte35 | необязательный | stringДля этой рекламной паузы использован SCTE-35-сигнал, закодированный в Base64. | ||||
cust_params | необязательный | stringНабор пар «ключ-значение», используемых для таргетинга рекламных кампаний в Ad Manager. Эти пары должны быть представлены в виде строки запроса, закодированной в формате URL. Пример:
| ||||
Сноски
-
sdне требуется для сегментов инициализации. ↩ - Для событий с включенными рекламными паузами без указания продолжительности
pdне требуется. ↩
Пример
GET https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/ad_break_id/adbreak-2/profile/8b8888cf79ad43f0800482ffc035a1ac_ts_a/1.ts?so=0&sd=10000&pd=30000&stream_id=8e19cbc6-850b-404c-99d7-860aa4a674cb:TEST
GET https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profile/8b8888cf79ad43f0800482ffc035a1ac_ts_a/1.ts?so=0&sd=10000&pd=30000&stream_id=8e19cbc6-850b-404c-99d7-860aa4a674cb:TEST
Ответный текст
В случае успеха, ответ будет представлять собой воспроизводимый сегмент потока, соответствующий формату и параметрам, указанным в запросе.
Метод: манифест HLS-пода
Получает манифест рекламного блока HLS для потокового видео, готового к загрузке и воспроизведению клиентским видеоплеером.
| Методы | |
|---|---|
GET | GET /linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset}/{pod_identifier}.m3u8;API для получения многовариантного плейлиста HLS для рекламного блока. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}.m3u8?stream_id={stream_id}&pd={pod_duration}
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
pod_identifier | Поддерживаются следующие форматы: pod/{integer} Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков присваиваются последовательно для каждого события рекламной паузы, начиная с ad_break_id/{string}Строковый идентификатор текущей рекламной паузы. Любой неизвестный идентификатор рекламной паузы, предоставленный этому адресу, создаст новую рекламную паузу для прямой трансляции. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
Параметры запроса
| Параметры | ||||||
|---|---|---|---|---|---|---|
stream_id | Необходимый | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке | ||||
pd | Необходимый | integerДлительность рекламного блока в миллисекундах. | ||||
scte35 | необязательный | stringДля этой рекламной паузы использован SCTE-35-сигнал, закодированный в Base64. | ||||
cust_params | необязательный | stringНабор пар «ключ-значение», используемых для таргетинга рекламных кампаний в Ad Manager. Эти пары должны быть представлены в виде строки запроса, закодированной в формате URL. Пример:
| ||||
auth-token | необходимый | string
| ||||
Ответный текст
В случае успеха, ответ будет представлять собой многовариантный плейлист HLS.
Метод: манифест DASH-пода
Получает манифест рекламного блока MPEG-DASH для потокового видео, готового к загрузке и воспроизведению клиентским видеоплеером.
| Методы | |
|---|---|
GET | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/{pod_identifier}/manifest.mpdAPI для получения плейлиста MPEG-DASH mpd для рекламного блока. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/stream/{stream_id}/pod/{pod_id}/manifest.mpd?pd={pod_duration}
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
stream_id | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке |
pod_identifier | Поддерживаются следующие форматы: pod/{integer} Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков присваиваются последовательно для каждого события рекламной паузы, начиная с ad_break_id/{string}Строковый идентификатор текущей рекламной паузы. Любой неизвестный идентификатор рекламной паузы, предоставленный этому адресу, создаст новую рекламную паузу для прямой трансляции. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
Параметры запроса
| Параметры | ||||||
|---|---|---|---|---|---|---|
pd | Необходимый | integerДлительность рекламного блока в миллисекундах. | ||||
scte35 | необязательный | stringДля этой рекламной паузы использован SCTE-35-сигнал, закодированный в Base64. | ||||
cust_params | необязательный | stringНабор пар «ключ-значение», используемых для таргетинга рекламных кампаний в Ad Manager. Эти пары должны быть представлены в виде строки запроса, закодированной в формате URL. Пример:
| ||||
auth-token | необходимый | string
| ||||
Ответный текст
В случае успеха, в ответе будет представлен плейлист MPEG-DASH mpd.
Метод: Шаблон периода DASH-под
| Методы | |
|---|---|
pods | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.jsonЗапрашивает у Google Ad Manager шаблон периода DASH. Этот шаблон содержит макросы, которые необходимо заполнить параметрами вашего потока. После заполнения этих макросов шаблон становится периодом для вашей рекламной паузы и может быть интегрирован в ваш манифест DASH. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
Параметры запроса
| Параметры | ||
|---|---|---|
stream_id | необходимый | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке |
tv | необязательный | integer Версия шаблона. По умолчанию —
|
Ответный текст
В случае успеха тело ответа будет содержать новый объект PodTemplateResponse .
Метод: Метаданные о времени показа рекламного блока
| Методы | |
|---|---|
ad pod timing metadata | GET /linear/pods/v1/adv/network/{network_code}/custom_asset/{custom_asset_key}/pod.jsonПолучает метаданные о времени показа рекламных блоков. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/adv/network/{network_code}/custom_asset/{custom_asset_key}/pod.json
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этой прямой трансляцией в Google Ad Manager. |
Параметры запроса
| Параметры | ||
|---|---|---|
stream_id | Необходимый | stringИдентификатор потока Ad Manager из клиентского приложения видеоплеера. |
ad_break_id | необходимый | stringСледующая заставка рекламной паузы. Идентификаторы рекламных пауз предоставляются сервером Stitching или VTP и должны совпадать во всех уведомлениях о начале показа рекламных пауз, запросах метаданных о времени показа рекламных блоков и запросах перенаправления сегментов для одной и той же рекламной паузы. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
auth-token | необходимый | string
|
timeout | необязательный | integerКоличество миллисекунд, в течение которых DAI может блокировать этот запрос в ожидании решения по рекламе. Используйте этот параметр для запросов, которые должны вернуть заполненную рекламу с первого раза, например, для рекламных пауз перед началом показа. Если время ожидания превышено, запрос возвращает статус «ожидание». Если параметр timeout указан, он должен находиться в диапазоне от 1000 до 15000 миллисекунд. Если он опущен, задержка ответа в ожидании решения по рекламе не происходит. |
final | необязательный | boolean Установите значение По умолчанию — |
Параметры принятия решения о рекламе | ||
pd | необязательный | integerДлительность рекламной паузы (в миллисекундах). Также называется длительностью рекламного блока. Если используется EABN, значение pd должно совпадать с продолжительностью, указанной в уведомлении о рекламной паузе. Если продолжительность не совпадает, приоритет будет отдан значению EABN. |
cust_params | необязательный | stringНастраиваемые параметры для таргетинга рекламных пауз, как описано в Справочном центре Ad Manager . |
scte35 | необязательный | stringСигнал SCTE-35, закодированный в base64. Если сигнал недействителен, в HTTP-заголовке ответа будет отправлено сообщение |
Ответный текст
В случае успеха тело ответа будет содержать новый объект AdPodTimingMetadataResponse .
Метод: проверка СМИ
После обнаружения идентификатора рекламного контента во время воспроизведения немедленно отправьте запрос, используя адрес 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если проверка медиафайлов прошла успешно и все пинги отправлены. -
HTTP/1.1 404 Not Found, если запрос не может проверить медиафайл из-за неправильного форматирования URL-адреса или истечения срока действия. -
HTTP/1.1 404 Not Foundесли предыдущий запрос на проверку этого идентификатора был успешным. -
HTTP/1.1 409 Conflictесли в данный момент другой запрос уже отправляет пинги.
Идентификаторы рекламных медиа
Идентификаторы рекламных медиафайлов будут закодированы в отдельном треке метаданных — временных метаданных для транспортного потока HLS или emg для файлов mp4. Идентификаторы рекламных медиафайлов всегда будут начинаться со строки google_ .
Полный текст метаданных следует добавить к URL-адресу подтверждения объявления перед отправкой каждого запроса на подтверждение объявления.
Метод: метаданные
Конечная точка метаданных по адресу metadata_url возвращает информацию, используемую для построения рекламного интерфейса. Конечная точка метаданных недоступна для потоков, передающих данные на стороне сервера, где сервер отвечает за инициирование проверки рекламного контента.
| Методы | |
|---|---|
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 . Оттуда нужно пройтись по тегам и найти первую запись, имя которой является префиксом идентификатора рекламного ролика, найденного в видеопотоке. Например, идентификатор рекламного ролика может выглядеть так:
google_1234567890
Затем вы находите объект тега с именем google_12345 . В данном случае он соответствует идентификатору вашего рекламного объявления. Как только вы найдете правильный объект префикса рекламного объявления, вы можете выполнить поиск идентификаторов объявлений, идентификаторов рекламных пауз и типа события. Идентификаторы объявлений затем используются для индексации объектов ads , а идентификаторы рекламных пауз — для индексации объектов breaks .
Объекты API
Транслировать
Объект Stream используется для отображения списка ресурсов для вновь созданного потока в формате JSON.| JSON-представление |
|---|
{
"stream_id": string,
"media_verification_url": string,
"metadata_url": string,
"session_update_url": string,
"heartbeat_url": string,
"polling_frequency": number,
"pod_manifest_url": string,
"manifest_format": string,
} |
| Поля | |
|---|---|
stream_id | stringИдентификатор потока GAM. |
media_verification_url | stringURL-адрес для проверки медиафайлов, используемый в качестве базовой конечной точки для отслеживания событий воспроизведения. |
metadata_url | stringURL-адрес метаданных, используемый для периодического получения информации о предстоящих рекламных событиях в потоке. |
session_update_url | stringURL-адрес обновления сессии, используемый для обновления параметров таргетинга для этого потока. Исходные значения параметров таргетинга фиксируются во время первоначального запроса на создание потока. |
heartbeat_url | stringURL-адрес пульса, используемый для поддержания активности потока сигналов на стороне сервера; его необходимо пинговать каждые {PollingFrequency} секунд. Заполняется для потоков сигналов на стороне сервера. |
polling_frequency | numberЧастота опроса в секундах при запросе metadata_url или heartbeat_url. |
pod_manifest_url | stringШаблон URL-адреса манифеста пода используется для генерации URL-адреса для получения манифеста пода потока, соответствующего URL-адресу многовариантного плейлиста в HLS или MPD в DASH. Заполняется для событий Livestream типа динамической вставки рекламы POD_SERVING_MANIFEST. https://developers.google.com/ad-manager/api/reference/v202305/LiveStreamEventService.DynamicAdInsertionType |
manifest_format | stringФормат манифеста — это формат манифеста, полученного из pod_manifest_url, либо dash, либо hls. |
PodMetadata
PodMetadata содержит метаданные о рекламе, рекламных паузах и идентификаторах медиафайлов.| 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)]Карта объявлений, проиндексированных по идентификатору объявления. |
ad_breaks | map[string, object(AdBreak)]Карта рекламных пауз, отсортированных по идентификатору рекламной паузы. |
next_delta_token | stringНепрозрачный токен, который клиент сможет использовать в следующем опросе. |
obsolete_ad_break_ids | stringСписок идентификаторов рекламных пауз, которые устарели и должны быть удалены из кэша клиента. |
TagSegment
TagSegment содержит ссылку на объявление, его рекламный блок и тип события. TagSegment с типом "progress" не должен отправляться на конечную точку проверки рекламного контента.| JSON-представление |
|---|
{ "ad": string, "ad_break_id": string, "type": string, } |
| Поля | |
|---|---|
ad | stringИдентификатор объявления, к которому относится этот тег. |
ad_break_id | stringИдентификатор рекламного блока этого тега. |
type | stringТип события этого тега. |
AdBreak
AdBreak описывает одну рекламную паузу в потоке. Она содержит продолжительность, тип (в середине/перед/после) и количество рекламных объявлений.| JSON-представление |
|---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
| Поля | |
|---|---|
type | stringДопустимые типы перерывов: до, во время и после. |
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Идентификатор рекламного блока в этом объявлении. |
position | numberПозиция этого объявления в рекламной паузе, начиная с 1. |
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Необязательный URL-адрес для перехода по ссылке. |
click_tracking_urls | stringДополнительные URL-адреса для отслеживания кликов. |
verifications | [object(Verification)]Дополнительные записи для проверки Open Measurement, в которых перечислены ресурсы и метаданные, необходимые для выполнения стороннего кода измерения с целью проверки воспроизведения креативов. |
slate | booleanНеобязательный логический параметр, указывающий, что текущая запись имеет значение "сланец". |
icons | [object(Icon)]Список значков, опускается, если он пуст. |
wrappers | [object(Wrapper)]Список оберток (Wrappers), опускается, если список пуст. |
universal_ad_id | object(UniversalAdID)Дополнительный универсальный идентификатор объявления. |
extensions | stringНеобязательный список всех узлов <Extension> в VAST. |
companions | [object(Companion)]Дополнительные материалы, которые могут отображаться вместе с этим объявлением (по желанию). |
interactive_file | object(InteractiveFile)Дополнительный интерактивный креатив (SIMID), который должен отображаться во время воспроизведения рекламы. |
PodTemplateResponse
PodTemplateResponse представляет собой JSON-данные, возвращаемые VTP для объединения модулей.| JSON-представление |
|---|
{
"dash_period_template": string,
"segment_duration_ms": int64,
} |
| Поля | |
|---|---|
dash_period_template | stringDashPeriodTemplate — это XML-шаблон периода, который необходимо заполнить соответствующими данными перед сшиванием. |
segment_duration_ms | int64SegmentDurationMS — это длительность сегментов периода в миллисекундах. |
AdpodTimingMetadataResponse
Объект AdpodTimingMetadataResponse содержит информацию о рекламном блоке и о том, как создавать для него URL-адреса сегментов.| JSON-представление |
|---|
{
"status": string,
"ads": [object(AdRendering)],
"slate": object(SlateRendering),
"dash_representations": map[string, object(DASHRepresentation)],
"dash_adaptation_sets": map[string, object(DASHAdaptationSet)],
} |
| Поля | |
|---|---|
status | stringСтатус решения по рекламному блоку. |
ads | [object(AdRendering)]Массив объектов Ad, описывающих способ отображения URL-адресов сегментов рекламы, индексированный начиная с 0. |
slate | object(SlateRendering)Описание Slate, демонстрирующее способ отображения URL-адресов сегментов Slate. |
dash_representations | map[string, object(DASHRepresentation)]Список DASH-представлений для данного рекламного блока, которые должны отображаться в DASH-манифестах. |
dash_adaptation_sets | map[string, object(DASHAdaptationSet)]Список наборов адаптаций DASH для данного рекламного блока, которые должны отображаться в манифестах DASH. |
AdRendering
AdRendering описывает, как отобразить рекламное объявление, по которому было принято решение.| JSON-представление |
|---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
| Поля | |
|---|---|
duration_ms | numberДлительность рекламного ролика в миллисекундах (целое число). |
variants | map[string, object(VariantRendering)]Словарь объектов Variant (см. ниже), индексированный по идентификатору варианта/профиля, настроенному в пользовательском интерфейсе. |
SlateRendering
SlateRendering описывает способ отображения контента в формате Slate.| JSON-представление |
|---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
| Поля | |
|---|---|
duration_ms | numberДлительность отображения времени в миллисекундах (целые числа). |
variants | map[string, object(VariantRendering)]Словарь объектов Variant, индексированных по идентификатору варианта/профиля. Длительность заставки должна повторяться до достижения требуемой длины, с вставкой разрывов HLS между итерациями или с повторением новых периодов для MPEG-DASH. |
VariantRendering
VariantRendering описывает один вариант/профиль в рамках рекламной кампании/списка объявлений.| JSON-представление |
|---|
{
"segment_extension": string,
"segment_durations": object(SegmentDurations),
} |
| Поля | |
|---|---|
segment_extension | stringСтрока, одна из следующих: ts, mp4, aac, ac3, ec3, m4a, m4v. Расширение имени файла, являющееся частью URL-адресов сегментов. |
segment_durations | object(SegmentDurations)Объекты SegmentDurations. Продолжительность каждого сегмента может быть преобразована в URL-адрес сегмента. |
SegmentDurations
Параметр SegmentDurations описывает длительность последовательности сегментов в заданной единице времени.| JSON-представление |
|---|
{
"timescale": number,
"values": [],
} |
| Поля | |
|---|---|
timescale | numberВременная шкала — это количество единиц в секунду (целое число). Ожидаемое значение: 1000 для HLS (миллисекунды), 90000 для видео DASH (PTS). Частота дискретизации звука для аудио DASH. |
values | numberМассив длительностей целочисленных сегментов в единицах временной шкалы. |
Представительство DASH
DASHRepresentation описывает узлы представления, которые должны отображаться в манифестах DASH.| JSON-представление |
|---|
{
"codecs": string,
"bandwidth": number,
"width": number,
"height": number,
"frame_rate": string,
"audio_sampling_rate": number,
"audio_channel_config": object(SchemeIDURIAndValue),
} |
| Поля | |
|---|---|
codecs | stringКодеки представления. |
bandwidth | numberПропускная способность представления. |
width | numberШирина изображения. |
height | numberВысота изображения. |
frame_rate | stringЧастота кадров представления. |
audio_sampling_rate | numberЧастота дискретизации звука в представлении. |
audio_channel_config | object(SchemeIDURIAndValue)Настройка аудиоканалов представления. |
DASHAdaptationSet
DASHAdaptationSet описывает узлы AdaptationSet, которые должны отображаться в манифестах DASH.| JSON-представление |
|---|
{ "content_type": string, "mime_type": string, "role": object(SchemeIDURIAndValue), "inband_event_stream": object(SchemeIDURIAndValue), "min_frame_rate": string, "max_frame_rate": string, "scan_type": string, "start_with_sap": string, "segment_alignment": boolean, "representations": [], } |
| Поля | |
|---|---|
content_type | stringТип контента адаптационного набора. |
mime_type | stringMIME-тип набора адаптаций. |
role | object(SchemeIDURIAndValue)Роль адаптационного набора. |
inband_event_stream | object(SchemeIDURIAndValue)Встроенный поток событий набора адаптации. |
min_frame_rate | stringМинимальная частота кадров в адаптационном наборе. |
max_frame_rate | stringМаксимальная частота кадров в адаптационном наборе. |
scan_type | stringТип сканирования адаптационного набора. |
start_with_sap | stringНачните с SAP из набора адаптационных модулей. |
segment_alignment | booleanВыравнивание сегментов адаптационного набора. |
representations | stringПредставление набора адаптаций. |
Схема IDURIAndValue
SchemeIDURIAndValue — это пара, состоящая из идентификатора схемы и её значения.| JSON-представление |
|---|
{
"scheme_id_uri": string,
"value": string,
} |
| Поля | |
|---|---|
scheme_id_uri | stringURI идентификатора схемы значения. |
value | stringЗначение URI идентификатора схемы. |
Икона
Icon содержит информацию об иконке 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 |
Упаковка
Wrapper содержит информацию о рекламном объявлении-оболочке. Он не включает идентификатор предложения (Deal ID), если он отсутствует.| JSON-представление |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| Поля | |
|---|---|
system | stringИдентификатор рекламной системы. |
ad_id | stringИдентификатор объявления, используемый для рекламной оболочки. |
creative_id | stringДля рекламного объявления-оболочки использован Creative ID. |
creative_ad_id | stringИдентификатор креатива, используемый для рекламного объявления-оболочки. |
deal_id | stringНеобязательный идентификатор сделки для рекламного объявления-оболочки. |
Проверка
В разделе «Верификация» содержится информация для 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
JavaScriptResource содержит информацию для проверки с помощью JavaScript.| JSON-представление |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| Поля | |
|---|---|
script_url | stringURI в JavaScript-код. |
api_framework | stringAPIFramework — это название видеофреймворка, использующего код подтверждения. |
browser_optional | booleanМожно ли запустить этот скрипт вне браузера? |
Отслеживание событий
Класс TrackingEvent содержит URL-адреса, которые клиент должен проверять в определенных ситуациях.| JSON-представление |
|---|
{
"event": string,
"uri": string,
} |
| Поля | |
|---|---|
event | stringТип события отслеживания. |
uri | stringСобытие отслеживания, которое необходимо проверить с помощью команды ping. |
UniversalAdID
UniversalAdID используется для предоставления уникального идентификатора рекламного креатива, который сохраняется во всех рекламных системах.| JSON-представление |
|---|
{ "id_value": string, "id_registry": string, } |
| Поля | |
|---|---|
id_value | stringУниверсальный идентификатор объявления (Universal Ad ID) выбранного креатива для рекламы. |
id_registry | stringСтрока, используемая для идентификации 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Атрибут CreativeType у узла <StaticResource> в VAST указывает, является ли он компонентом типа static. |
height | int32Высота этого спутника в пикселях. |
width | int32Ширина этого компаньона в пикселях. |
resource | stringДля статических элементов и элементов iframe это будет URL-адрес, который будет загружен и отображен. Для элементов HTML это будет фрагмент HTML-кода, который должен отображаться в качестве элемента. |
type | stringТип этого дополнения. Оно может быть статическим, iframe или HTML. |
ad_slot_id | stringИдентификатор слота для этого компаньона. |
api_framework | stringAPI-фреймворк для этого дополнения. |
tracking_events | [object(TrackingEvent)]Список событий отслеживания для этого компаньона. |
Интерактивный файл
Файл InteractiveFile содержит информацию об интерактивном креативе (т.е. SIMID), который должен отображаться во время воспроизведения рекламы.| JSON-представление |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| Поля | |
|---|---|
resource | stringURL-адрес интерактивного рекламного материала. |
type | stringMIME-тип файла, предоставленного в качестве ресурса. |
variable_duration | booleanВозможно ли, что автор данного творческого произведения попросит продлить срок действия? |
ad_parameters | stringЗначение узла <AdParameters> в VAST. |
API динамической вставки рекламы позволяет запрашивать и отслеживать прямые трансляции DAI.
Сервис: dai.google.com
Все URI являются относительными по отношению к https://dai.google.com .
Метод: поток
| Методы | |
|---|---|
stream | POST /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/streamРегистрирует DAI-под, обслуживающий сессию прямой трансляции. |
HTTP-запрос
POST https://dai.google.com/ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
Текст запроса
Тело запроса имеет тип application/x-www-form-urlencoded и содержит следующие параметры:
| Параметры | ||
|---|---|---|
| Параметры таргетинга DFP | Необязательный | Дополнительные параметры наведения. |
| Переопределение параметров потока | Необязательный | Переопределить значения по умолчанию параметра создания потока. |
| Аутентификация HMAC | Необязательный | Аутентификация осуществляется с помощью токена на основе HMAC. |
Ответный текст
В случае успеха тело ответа будет содержать новый объект Stream .
Открытое измерение
API DAI содержит информацию для проверки Open Measurement в поле Verifications . Это поле содержит один или несколько элементов Verification , в которых перечислены ресурсы и метаданные, необходимые для выполнения стороннего кода измерения с целью проверки воспроизведения креативов. Поддерживается только JavaScriptResource . Для получения дополнительной информации см. IAB Tech Lab и спецификацию VAST 4.1 .
Метод: сегмент стручка
| Методы | |
|---|---|
pod segment | GET /linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format}Создает поток DAI для заданного идентификатора события. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format}
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
pod_identifier | Поддерживаются следующие форматы: pod/{integer} Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков присваиваются последовательно для каждого события рекламной паузы, начиная с ad_break_id/{string}Строковый идентификатор текущей рекламной паузы. Любой неизвестный идентификатор рекламной паузы, предоставленный этому адресу, создаст новую рекламную паузу для прямой трансляции. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
profile_name | stringНазвание запрашиваемого профиля кодирования DAI в Google Ad Manager . Профиль кодирования должен быть одним из настроенных профилей кодирования для выбранного события. |
segment_number | integerИндекс запрошенного сегмента в текущем рекламном блоке, начинающийся с нуля. |
segment_format | string Расширение файла, связанное с запрошенным форматом сегмента. Допустимые расширения: |
Параметры запроса
| Параметры | ||||||
|---|---|---|---|---|---|---|
stream_id | необходимый | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке | ||||
sd | required 1 | integerДлительность запрошенного сегмента в миллисекундах. | ||||
so | необязательный | Смещение запрошенного сегмента внутри рекламного блока в миллисекундах. Если параметр | ||||
pd | требуется 2 | integerДлительность рекламного блока в миллисекундах. | ||||
auth-token | необходимый | string
| ||||
last | необязательный | booleanУказывает последний сегмент в рекламной паузе. Для всех остальных сегментов этот параметр следует опустить. | ||||
scte35 | необязательный | stringДля этой рекламной паузы использован SCTE-35-сигнал, закодированный в Base64. | ||||
cust_params | необязательный | stringНабор пар «ключ-значение», используемых для таргетинга рекламных кампаний в Ad Manager. Эти пары должны быть представлены в виде строки запроса, закодированной в формате URL. Пример:
| ||||
Сноски
-
sdне требуется для сегментов инициализации. ↩ - Для событий с включенными рекламными паузами без указания продолжительности
pdне требуется. ↩
Пример
GET https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/ad_break_id/adbreak-2/profile/8b8888cf79ad43f0800482ffc035a1ac_ts_a/1.ts?so=0&sd=10000&pd=30000&stream_id=8e19cbc6-850b-404c-99d7-860aa4a674cb:TEST
GET https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profile/8b8888cf79ad43f0800482ffc035a1ac_ts_a/1.ts?so=0&sd=10000&pd=30000&stream_id=8e19cbc6-850b-404c-99d7-860aa4a674cb:TEST
Ответный текст
В случае успеха, ответ будет представлять собой воспроизводимый сегмент потока, соответствующий формату и параметрам, указанным в запросе.
Метод: манифест HLS-пода
Получает манифест рекламного блока HLS для потокового видео, готового к загрузке и воспроизведению клиентским видеоплеером.
| Методы | |
|---|---|
GET | GET /linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset}/{pod_identifier}.m3u8;API для получения многовариантного плейлиста HLS для рекламного блока. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}.m3u8?stream_id={stream_id}&pd={pod_duration}
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
pod_identifier | Поддерживаются следующие форматы: pod/{integer} Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков присваиваются последовательно для каждого события рекламной паузы, начиная с ad_break_id/{string}Строковый идентификатор текущей рекламной паузы. Любой неизвестный идентификатор рекламной паузы, предоставленный этому адресу, создаст новую рекламную паузу для прямой трансляции. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
Параметры запроса
| Параметры | ||||||
|---|---|---|---|---|---|---|
stream_id | Необходимый | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке | ||||
pd | Необходимый | integerДлительность рекламного блока в миллисекундах. | ||||
scte35 | необязательный | stringДля этой рекламной паузы использован SCTE-35-сигнал, закодированный в Base64. | ||||
cust_params | необязательный | stringНабор пар «ключ-значение», используемых для таргетинга рекламных кампаний в Ad Manager. Эти пары должны быть представлены в виде строки запроса, закодированной в формате URL. Пример:
| ||||
auth-token | необходимый | string
| ||||
Ответный текст
В случае успеха, ответ будет представлять собой многовариантный плейлист HLS.
Метод: манифест DASH-пода
Получает манифест рекламного блока MPEG-DASH для потокового видео, готового к загрузке и воспроизведению клиентским видеоплеером.
| Методы | |
|---|---|
GET | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/{pod_identifier}/manifest.mpdAPI для получения плейлиста MPEG-DASH mpd для рекламного блока. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/stream/{stream_id}/pod/{pod_id}/manifest.mpd?pd={pod_duration}
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
stream_id | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке |
pod_identifier | Поддерживаются следующие форматы: pod/{integer} Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков присваиваются последовательно для каждого события рекламной паузы, начиная с ad_break_id/{string}Строковый идентификатор текущей рекламной паузы. Любой неизвестный идентификатор рекламной паузы, предоставленный этому адресу, создаст новую рекламную паузу для прямой трансляции. К пользовательским идентификаторам рекламных блоков применяются следующие ограничения:
|
Параметры запроса
| Параметры | ||||||
|---|---|---|---|---|---|---|
pd | Необходимый | integerДлительность рекламного блока в миллисекундах. | ||||
scte35 | необязательный | stringДля этой рекламной паузы использован SCTE-35-сигнал, закодированный в Base64. | ||||
cust_params | необязательный | stringНабор пар «ключ-значение», используемых для таргетинга рекламных кампаний в Ad Manager. Эти пары должны быть представлены в виде строки запроса, закодированной в формате URL. Пример:
| ||||
auth-token | необходимый | string
| ||||
Ответный текст
В случае успеха, в ответе будет представлен плейлист MPEG-DASH mpd.
Метод: Шаблон периода DASH-под
| Методы | |
|---|---|
pods | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.jsonЗапрашивает у Google Ad Manager шаблон периода DASH. Этот шаблон содержит макросы, которые необходимо заполнить параметрами вашего потока. После заполнения этих макросов шаблон становится периодом для вашей рекламной паузы и может быть интегрирован в ваш манифест DASH. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этим событием в Google Ad Manager. |
Параметры запроса
| Параметры | ||
|---|---|---|
stream_id | необходимый | string Идентификатор потока для текущей пользовательской сессии. Это значение возвращается при успешном запросе к конечной точке |
tv | необязательный | integer Версия шаблона. По умолчанию —
|
Ответный текст
В случае успеха тело ответа будет содержать новый объект PodTemplateResponse .
Метод: Метаданные о времени показа рекламного блока
| Методы | |
|---|---|
ad pod timing metadata | GET /linear/pods/v1/adv/network/{network_code}/custom_asset/{custom_asset_key}/pod.jsonПолучает метаданные о времени показа рекламных блоков. |
HTTP-запрос
GET https://dai.google.com/linear/pods/v1/adv/network/{network_code}/custom_asset/{custom_asset_key}/pod.json
Параметры пути
| Параметры | |
|---|---|
network_code | stringКод рекламной сети Google Ad Manager издателя. |
custom_asset_key | stringПользовательский идентификатор, связанный с этой прямой трансляцией в Google Ad Manager. |
Параметры запроса
| Параметры | ||
|---|---|---|
stream_id | Необходимый | stringИдентификатор потока Ad Manager из клиентского приложения видеоплеера. |
ad_break_id | необходимый | stringСледующая заставка рекламной паузы. Ad break IDs are provided by the Stitching server or VTP, and must match across early ad break notifications, ad pod timing metadata requests, and segment redirect requests for the same ad break. The following restrictions apply to custom adbreak IDs:
|
auth-token | необходимый | string The
|
timeout | необязательный | integerThe number of milliseconds that DAI can block this request to wait for ad decisioning. Use this parameter on requests that must return populated ads on the first request, such as pre-roll ad breaks. If timeout is exceeded, the request returns a status of pending. If included, the timeout value must be between 1000 and 15000 milliseconds. If omitted, responses are not delayed to wait for ad decisioning. |
final | необязательный | boolean Set to Defaults to |
Ad decisioning parameters | ||
pd | необязательный | integerThe duration of the ad break (in milliseconds). Also referred to as ad pod duration. If EABN is used, the pd value must match the duration provided in your ad break notification. If the durations don't match, the EABN value will be given priority. |
cust_params | необязательный | stringCustom parameters for ad break targeting, as described in the Ad Manager Help Center . |
scte35 | необязательный | stringA base64-encoded SCTE-35 signal. If the signal is invalid, a message will be sent in the |
Response body
If successful, the response body contains a new AdPodTimingMetadataResponse object.
Method: media verification
After encountering an ad media identifier during playback, immediately make a request using the media_verification_url obtained from the stream endpoint, above. These requests aren't necessary for server-side-beaconing streams, where the server initiates media verification.
Requests to the media verification endpoint are idempotent.
| Методы | |
|---|---|
media verification | GET /{media_verification_url}/{ad_media_id}Notifies the API of a media verification event. |
HTTP-запрос
GET https://{media-verification-url}/{ad-media-id}
Response body
media verification returns the following responses:
-
HTTP/1.1 204 No Contentif media verification succeeds and all pings are sent. -
HTTP/1.1 404 Not Foundif the request can't verify the media due to incorrect URL formatting or expiration. -
HTTP/1.1 404 Not Foundif a previous verification request for this ID succeeded. -
HTTP/1.1 409 Conflictif another request is already sending pings at this time.
Ad media IDs
Ad media identifiers will be encoded in a separate metadata track — timed metadata for HLS transport stream, or emsg for mp4 files. Ad media identifiers will always begin with the string google_ .
The entire text contents of the metadata entry should be appended to the ad verification URL prior to making each ad verification request.
Method: metadata
The metadata endpoint at metadata_url returns information used to build an ad UI. The metadata endpoint isn't available for server-side-beaconing streams, where the server is responsible for initiating ad media verification.
| Методы | |
|---|---|
metadata | GET /{metadata_url}/{ad-media-id}GET /{metadata_url}Retrieves ad metadata information. |
HTTP-запрос
GET https://{metadata_url}/{ad-media-id}
GET https://{metadata_url}
Параметры запроса
| Параметры | ||
|---|---|---|
delta_token | необязательный | string An opaque token representing the client's current synchronization state. If provided, the server returns only the metadata that has changed since the token was generated, along with a new |
Response body
If successful, the response returns an instance of PodMetadata .
Parsing Metadata
Metadata has three discrete sections: tags , ads , and ad breaks . The entry point into the data is the tags section. From there, iterate through the tags and find the first entry whose name is a prefix for the ad media ID found in the video stream. For example, you might have an ad media ID that looks like:
google_1234567890
Then you find a tag object named google_12345 . In this case, it matches your ad media id. Once you find the correct ad media prefix object, you can look up ad ids, ad break ids, and the event type. Ad ids are then used to index the ads objects and ad break ids are used to index the breaks objects.
API Objects
Транслировать
Stream is used to render a list of resources for a newly created stream in JSON format.| JSON representation |
|---|
{
"stream_id": string,
"media_verification_url": string,
"metadata_url": string,
"session_update_url": string,
"heartbeat_url": string,
"polling_frequency": number,
"pod_manifest_url": string,
"manifest_format": string,
} |
| Поля | |
|---|---|
stream_id | stringThe GAM stream identifier. |
media_verification_url | stringThe media verification URL used as base endpoint for tracking playback events. |
metadata_url | stringMetadata URL used to poll for periodic information about upcoming stream ad events. |
session_update_url | stringThe session's update URL used to update the targeting parameters for this stream. The original values for the targeting parameters are captured during the initial stream create request. |
heartbeat_url | stringThe heartbeat URL, used to keep the server side beaconing stream alive, it must be pinged every {PollingFrequency} seconds. Populated for server side beaconing streams. |
polling_frequency | numberThe polling frequency, in seconds, when requesting metadata_url or heartbeat_url. |
pod_manifest_url | stringThe pod manifest URL template is used to generate the URL to retrieve a stream's pod manifest, corresponding to the URL of the multivariant playlist in HLS or the MPD in DASH. Populated for Livestream events of Dynamic Ad Insertion type POD_SERVING_MANIFEST. https://developers.google.com/ad-manager/api/reference/v202305/LiveStreamEventService.DynamicAdInsertionType |
manifest_format | stringManifest format is the format of the manifest retrieved from pod_manifest_url, either dash or hls. |
PodMetadata
PodMetadata contains metadata information on ads, ad breaks, and media ID tags.| JSON representation |
|---|
{
"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)]Map of tag segments indexed by tag prefix. |
ads | map[string, object(Ad)]Map of ads indexed by ad ID. |
ad_breaks | map[string, object(AdBreak)]Map of ad breaks indexed by ad break ID. |
next_delta_token | stringAn opaque token for the client to use on the next poll. |
obsolete_ad_break_ids | stringA list of ad break IDs that are obsolete and should be removed from the client's cache. |
TagSegment
TagSegment contains a reference to an ad, its ad break, and event type. TagSegment with type="progress" should not be pinged to the ad media verification endpoint.| JSON representation |
|---|
{ "ad": string, "ad_break_id": string, "type": string, } |
| Поля | |
|---|---|
ad | stringThe ID of this tag's ad. |
ad_break_id | stringThe ID of this tag's ad break. |
type | stringThis tag's event type. |
AdBreak
AdBreak describes a single ad break in the stream. It contains a duration, a type (mid/pre/post) and the number of ads.| JSON representation |
|---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
| Поля | |
|---|---|
type | stringValid break types are: pre, mid, and post. |
duration | numberTotal ad duration for this ad break, in seconds. |
expected_duration | numberExpected duration of the ad break (in seconds), including all ads and any slate. |
ads | numberNumber of ads in the ad break. |
Объявление
Ad describes an ad in the stream.| JSON representation |
|---|
{
"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 | stringThe ID of this ad's ad break. |
position | numberPosition of this ad in the ad break, starting at 1. |
duration | numberDuration of the ad, in seconds. |
title | stringOptional title of the ad. |
description | stringOptional description of the ad. |
advertiser | stringOptional advertiser identifier. |
ad_system | stringOptional ad system. |
ad_id | stringOptional ad ID. |
creative_id | stringOptional creative ID. |
creative_ad_id | stringOptional creative ad ID. |
deal_id | stringOptional deal ID. |
clickthrough_url | stringOptional clickthrough URL. |
click_tracking_urls | stringOptional click tracking URLs. |
verifications | [object(Verification)]Optional Open Measurement verification entries which list the resources and metadata required to execute third-party measurement code to verify creative playback. |
slate | booleanOptional bool indicating the current entry is slate. |
icons | [object(Icon)]A list of icons, omitted if empty. |
wrappers | [object(Wrapper)]A list of Wrappers, omitted if empty. |
universal_ad_id | object(UniversalAdID)Optional universal ad ID. |
extensions | stringOptional list of all <Extension> nodes in the VAST. |
companions | [object(Companion)]Optional companions that may be displayed along with this ad. |
interactive_file | object(InteractiveFile)Optional interactive creative (SIMID) that should be displayed during ad playback. |
PodTemplateResponse
PodTemplateResponse represents the JSON payload returned to a VTP for pod stitching.| JSON representation |
|---|
{
"dash_period_template": string,
"segment_duration_ms": int64,
} |
| Поля | |
|---|---|
dash_period_template | stringDashPeriodTemplate is the xml template for the period to be filled with appropriate data before stitching. |
segment_duration_ms | int64SegmentDurationMS is the duration of the period segments in milliseconds. |
AdpodTimingMetadataResponse
AdpodTimingMetadataResponse contains information about the Ad Pod and how to build segment URLs for it.| JSON representation |
|---|
{
"status": string,
"ads": [object(AdRendering)],
"slate": object(SlateRendering),
"dash_representations": map[string, object(DASHRepresentation)],
"dash_adaptation_sets": map[string, object(DASHAdaptationSet)],
} |
| Поля | |
|---|---|
status | stringDecision status for the ad pod. |
ads | [object(AdRendering)]Array of Ad objects describing how to render the ad segment urls, indexed starting at 0. |
slate | object(SlateRendering)Slate describing how to render the slate segment urls. |
dash_representations | map[string, object(DASHRepresentation)]List of DASH Representations for that ad pod to be rendered in DASH manifests. |
dash_adaptation_sets | map[string, object(DASHAdaptationSet)]List of DASH Adaptation Sets for that ad pod to be rendered in DASH manifests. |
AdRendering
AdRendering describes how to render a decisioned ad.| JSON representation |
|---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
| Поля | |
|---|---|
duration_ms | numberDuration of the ad, in milliseconds (int). |
variants | map[string, object(VariantRendering)]Dictionary of Variant objects (see below), indexed by the variant/profile ID, as configured from the UI. |
SlateRendering
SlateRendering describes how to render slate content.| JSON representation |
|---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
| Поля | |
|---|---|
duration_ms | numberDuration of the slate, in milliseconds (int). |
variants | map[string, object(VariantRendering)]Dictionary of Variant objects, indexed by variant/profile ID. Slate durations must be looped until the required slate length is reached, inserting HLS discontinuities between iterations, or looping new periods for MPEG-DASH. |
VariantRendering
VariantRendering describes one variant/profile within the ad/slate.| JSON representation |
|---|
{
"segment_extension": string,
"segment_durations": object(SegmentDurations),
} |
| Поля | |
|---|---|
segment_extension | stringString, one of: ts, mp4, aac, ac3, ec3, m4a, m4v. Filename extension part of the segment URLs. |
segment_durations | object(SegmentDurations)SegmentDurations objects. Each segment duration can be translated into a segment URL. |
SegmentDurations
SegmentDurations describes the duration of a sequence of segments, in a specified time unit.| JSON representation |
|---|
{
"timescale": number,
"values": [],
} |
| Поля | |
|---|---|
timescale | numberTimescale is the number of units per second (int) Expected to be: 1000 for HLS (milliseconds) 90000 for DASH video (PTS) Audio sample rate for DASH audio. |
values | numberArray of int segment durations, in timescale units. |
DASHRepresentation
DASHRepresentation describes Representation nodes to be rendered in DASH manifests.| JSON representation |
|---|
{
"codecs": string,
"bandwidth": number,
"width": number,
"height": number,
"frame_rate": string,
"audio_sampling_rate": number,
"audio_channel_config": object(SchemeIDURIAndValue),
} |
| Поля | |
|---|---|
codecs | stringCodecs of the representation. |
bandwidth | numberBandwidth of the representation. |
width | numberWidth of the representation. |
height | numberHeight of the representation. |
frame_rate | stringFrame rate of the representation. |
audio_sampling_rate | numberAudio sampling rate of the representation. |
audio_channel_config | object(SchemeIDURIAndValue)Audio channel configuration of the representation. |
DASHAdaptationSet
DASHAdaptationSet describes AdaptationSet nodes to be rendered in DASH manifests.| JSON representation |
|---|
{ "content_type": string, "mime_type": string, "role": object(SchemeIDURIAndValue), "inband_event_stream": object(SchemeIDURIAndValue), "min_frame_rate": string, "max_frame_rate": string, "scan_type": string, "start_with_sap": string, "segment_alignment": boolean, "representations": [], } |
| Поля | |
|---|---|
content_type | stringContent type of the adaptation set. |
mime_type | stringMIME type of the adaptation set. |
role | object(SchemeIDURIAndValue)Role of the adaptation set. |
inband_event_stream | object(SchemeIDURIAndValue)Inband event stream of the adaptation set. |
min_frame_rate | stringMinimum frame rate of the adaptation set. |
max_frame_rate | stringMaximum frame rate of the adaptation set. |
scan_type | stringScan type of the adaptation set. |
start_with_sap | stringStart with SAP of the adaptation set. |
segment_alignment | booleanSegment alignment of the adaptation set. |
representations | stringRepresentations of the adaptation set. |
SchemeIDURIAndValue
SchemeIDURIAndValue is a pair of a scheme ID and its value.| JSON representation |
|---|
{
"scheme_id_uri": string,
"value": string,
} |
| Поля | |
|---|---|
scheme_id_uri | stringScheme ID URI of the value. |
value | stringValue of the scheme ID URI. |
Икона
Icon contains information about a VAST Icon.| JSON representation |
|---|
{ "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 contains information about an icon clickthrough.| JSON representation |
|---|
{
"url": string,
} |
| Поля | |
|---|---|
url | string |
FallbackImage
FallbackImage contains information about a VAST fallback image.| JSON representation |
|---|
{ "creative_type": string, "height": int32, "width": int32, "resource": string, "alt_text": string, } |
| Поля | |
|---|---|
creative_type | string |
height | int32 |
width | int32 |
resource | string |
alt_text | string |
Упаковка
Wrapper contains information about a wrapper ad. It does not include a Deal ID if it does not exist.| JSON representation |
|---|
{
"system": string,
"ad_id": string,
"creative_id": string,
"creative_ad_id": string,
"deal_id": string,
} |
| Поля | |
|---|---|
system | stringAd system identifier. |
ad_id | stringAd ID used for the wrapper ad. |
creative_id | stringCreative ID used for the wrapper ad. |
creative_ad_id | stringCreative Ad ID used for the wrapper ad. |
deal_id | stringOptional deal ID for the wrapper ad. |
Проверка
Verification contains information for Open Measurement, which facilitates third-party viewability and verification measurement. Currently, only JavaScript resources are supported. See https://iabtechlab.com/standards/open-measurement-sdk/| JSON representation |
|---|
{
"vendor": string,
"java_script_resources": [object(JavaScriptResource)],
"tracking_events": [object(TrackingEvent)],
"parameters": string,
} |
| Поля | |
|---|---|
vendor | stringThe verification vendor. |
java_script_resources | [object(JavaScriptResource)]List of JavaScript resources for the verification. |
tracking_events | [object(TrackingEvent)]List of tracking events for the verification. |
parameters | stringAn opaque string passed to bootstrap verification code. |
JavaScriptResource
JavaScriptResource contains information for verification via JavaScript.| JSON representation |
|---|
{
"script_url": string,
"api_framework": string,
"browser_optional": boolean,
} |
| Поля | |
|---|---|
script_url | stringURI to javascript payload. |
api_framework | stringAPIFramework is the name of the video framework exercising the verification code. |
browser_optional | booleanWhether this script can be run outside of a browser. |
TrackingEvent
TrackingEvent contains URLs that should be pinged by the client in certain situations.| JSON representation |
|---|
{
"event": string,
"uri": string,
} |
| Поля | |
|---|---|
event | stringThe type of the tracking event. |
uri | stringThe tracking event to be pinged. |
UniversalAdID
UniversalAdID is used to provide a unique creative identifier that is maintained across ad systems.| JSON representation |
|---|
{ "id_value": string, "id_registry": string, } |
| Поля | |
|---|---|
id_value | stringThe Universal Ad ID of the selected creative for the ad. |
id_registry | stringA string used to identify the URL for the registry website where the selected creative's Universal Ad ID is cataloged. |
Спутник
Companion contains information for companion ads that may be displayed along with ad.| JSON representation |
|---|
{ "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)The click data for this companion. |
creative_type | stringThe CreativeType attribute on the <StaticResource> node in the VAST if this is a companion of type static. |
height | int32The height in pixels of this companion. |
width | int32The width in pixels of this companion. |
resource | stringFor static and iframe companions this will be the URL to be loaded and displayed. For HTML companions, this will be the HTML snippet that should be shown as the companion. |
type | stringType of this companion. It can be either static, iframe or HTML. |
ad_slot_id | stringThe slot ID for this companion. |
api_framework | stringThe API framework for this companion. |
tracking_events | [object(TrackingEvent)]List of tracking events for this companion. |
InteractiveFile
InteractiveFile contains information for interactive creative (ie SIMID) that should be displayed during ad playback.| JSON representation |
|---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
| Поля | |
|---|---|
resource | stringThe URL to the interactive creative. |
type | stringThe MIME type of the file provided as the resource. |
variable_duration | booleanWhether this creative may ask for the duration to be extended. |
ad_parameters | stringThe value of the <AdParameters> node in the VAST. |