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 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 и спецификацию 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 Подписанный токен HMAC в кодировке URL для текущего рекламного модуля. | ||||
last | необязательный | boolean Указывает последний сегмент рекламной паузы. Опустите этот параметр для всех остальных сегментов. | ||||
scte35 | необязательный | string Сигнал SCTE-35 в кодировке Base64 для этой рекламной паузы. | ||||
cust_params | необязательный | string Набор пар ключ-значение, используемый для таргетинга кампании Менеджера рекламы. Эти пары должны быть представлены в виде строки запроса в кодировке URL. Пример:
|
Сноски
-
sd
не требуется для сегментов инициализации. ↩ -
pd
не требуется для мероприятий с включенными бесконечными рекламными паузами. ↩
Пример
ПОЛУЧАТЬ 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
ПОЛУЧАТЬ https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profi le/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 Набор пар ключ-значение, используемый для таргетинга кампании Менеджера рекламы. Эти пары должны быть представлены в виде строки запроса в кодировке URL. Пример:
|
Тело ответа
В случае успеха тело ответа представляет собой многовариантный список воспроизведения HLS.
Метод: манифест модуля DASH.
Получает манифест рекламного модуля MPEG-DASH для прямой трансляции, готовый для загрузки и воспроизведения клиентским видеопроигрывателем.
Методы | |
---|---|
GET | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/pod/{pod_id}/manifest.mpd API для получения плейлиста 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_id | integer Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков назначаются постепенно для каждой рекламной паузы, начиная с |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
pd | Необходимый | integer Продолжительность рекламного блока в миллисекундах. | ||||
scte35 | необязательный | string Сигнал SCTE-35 в кодировке Base64 для этой рекламной паузы. | ||||
cust_params | необязательный | string Набор пар ключ-значение, используемый для таргетинга кампании Менеджера рекламы. Эти пары должны быть представлены в виде строки запроса в кодировке URL. Пример:
|
Тело ответа
В случае успеха тело ответа представляет собой список воспроизведения MPEG-DASH mpd.
Метод: шаблон периода модуля DASH.
Методы | |
---|---|
pods | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json Запрашивает шаблон периода DASH из Google Ad Manager. Этот шаблон содержит макросы, которые необходимо заполнить параметрами потока. Как только эти макросы будут заполнены, шаблон станет вашим периодом рекламной паузы и может быть вставлен в ваш манифест 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 Идентификатор потока для сеанса текущего пользователя. Это значение возвращается в результате успешного запроса к конечной точке |
Тело ответа
В случае успеха тело ответа содержит новый объект PodTemplateResponse
.
Метод: проверка носителя
Обнаружив идентификатор рекламного носителя во время воспроизведения, немедленно сделайте запрос, используя 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 или emsg для файлов 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}
Тело ответа
В случае успеха ответ возвращает экземпляр PodMetadata
.
Анализ метаданных
Метаданные состоят из трех отдельных разделов: tags
, ads
и рекламные breaks
. Точкой входа в данные является раздел tags
. Далее просмотрите теги и найдите первую запись, имя которой является префиксом идентификатора рекламного носителя, найденного в видеопотоке. Например, у вас может быть идентификатор рекламного носителя, который выглядит так:
google_1234567890
Затем вы найдете объект тега с именем google_12345
. В данном случае он соответствует идентификатору вашего рекламного носителя. Найдя правильный объект префикса рекламного носителя, вы сможете найти идентификаторы объявлений, идентификаторы рекламных пауз и тип события. Идентификаторы рекламы затем используются для индексации объектов ads
, а идентификаторы рекламных пауз используются для индексации объектов breaks
.
Данные ответа
Транслировать
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 | string URL-адрес проверки мультимедиа, используемый в качестве базовой конечной точки для отслеживания событий воспроизведения. |
metadata_url | string URL-адрес метаданных, используемый для периодического опроса информации о предстоящих рекламных событиях потокового вещания. |
session_update_url | string URL-адрес обновления сеанса, используемый для обновления параметров таргетинга для этого потока. Исходные значения параметров таргетинга фиксируются во время первоначального запроса на создание потока. |
heartbeat_url | string URL-адрес контрольного сигнала, используемый для поддержания активности потока маяков на стороне сервера. Он должен проверяться каждые {PollingFrequency} секунд. Заполняется для потоков маяков на стороне сервера. |
polling_frequency | number Частота опроса в секундах при запросе Metadata_url или Heartbeat_url. |
pod_manifest_url | string Шаблон URL-адреса манифеста модуля используется для создания URL-адреса для получения манифеста модуля потока, соответствующего URL-адресу многовариантного списка воспроизведения в HLS или MPD в DASH. Заполняется для событий прямой трансляции с типом динамической вставки рекламы POD_SERVING_MANIFEST. https://developers.google.com/ad-manager/api/reference/v202305/LiveStreamEventService.DynamicAdInsertionType |
manifest_format | string Формат манифеста — это формат манифеста, полученного из pod_manifest_url, Dash или hls. |
Метаданные Pod
PodMetadata содержит метаданные о рекламе, рекламных паузах и тегах идентификаторов мультимедиа.JSON-представление |
---|
{ "tags": map[string, object(TagSegment)], "ads": map[string, object(Ad)], "ad_breaks": map[string, object(AdBreak)], } |
Поля | |
---|---|
tags | map[string, object(TagSegment)] Карта сегментов тегов, индексированных по префиксу тега. |
ads | map[string, object(Ad)] Карта объявлений, проиндексированных по идентификатору объявления. |
ad_breaks | map[string, object(AdBreak)] Карта рекламных пауз, проиндексированная по идентификатору рекламной паузы. |
ТегСегмент
TagSegment содержит ссылку на рекламу, ее рекламную паузу и тип события. TagSegment с type="progress" не должен отправляться на конечную точку проверки рекламного носителя.JSON-представление |
---|
{ "ad": string, "ad_break_id": string, "type": string, } |
Поля | |
---|---|
ad | string Идентификатор объявления этого тега. |
ad_break_id | string Идентификатор рекламной паузы этого тега. |
type | string Тип события этого тега. |
Рекламная пауза
AdBreak описывает одну рекламную паузу в потоке. Он содержит продолжительность, тип (в середине/до/после) и количество объявлений.JSON-представление |
---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
Поля | |
---|---|
type | string Допустимые типы перерывов: до, в середине и после. |
duration | number Общая продолжительность рекламы для этой рекламной паузы в секундах. |
expected_duration | number Ожидаемая продолжительность рекламной паузы (в секундах), включая всю рекламу и любую рекламную паузу. |
ads | number Количество рекламы в рекламной паузе. |
Объявление
Объявление описывает рекламу в потоке.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)] Список оберток. Если он пуст, опускается. |
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 | string DashPeriodTemplate — это XML-шаблон для периода, который необходимо заполнить соответствующими данными перед сшивкой. |
segment_duration_ms | int64 SegmentDurationMS — продолжительность сегментов периода в миллисекундах. |
Адподтимингметадатаответ
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-адреса сегментов шифера. |
dash_representations | map[string, object(DASHRepresentation)] Список представлений DASH для этого рекламного модуля, которые будут отображаться в манифестах DASH. |
dash_adaptation_sets | map[string, object(DASHAdaptationSet)] Список наборов адаптации DASH для этого рекламного модуля, который будет отображаться в манифестах DASH. |
Рендеринг рекламы
AdRendering описывает, как визуализировать выбранное объявление.JSON-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Продолжительность объявления в миллисекундах (int). |
variants | map[string, object(VariantRendering)] Словарь объектов Variant (см. ниже), индексированный по идентификатору варианта/профиля, настроенному в пользовательском интерфейсе. |
SlateРендеринг
SlateRendering описывает, как визуализировать содержимое планшета.JSON-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Продолжительность рекламной паузы в миллисекундах (int). |
variants | map[string, object(VariantRendering)] Словарь объектов Variant, индексированный по идентификатору варианта/профиля. Длительность сланца должна зацикливаться до тех пор, пока не будет достигнута необходимая длина сланца, вставляя разрывы HLS между итерациями или зацикливая новые периоды для MPEG-DASH. |
ВариантРендеринг
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 описывает продолжительность последовательности сегментов в указанной единице времени.JSON-представление |
---|
{ "timescale": number, "values": [], } |
Поля | |
---|---|
timescale | number Временная шкала — это количество единиц в секунду (целое). Ожидается: 1000 для HLS (миллисекунды) 90000 для видео DASH (PTS) Частота дискретизации звука для звука DASH. |
values | number Массив длительностей сегментов int в единицах шкалы времени. |
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) Конфигурация аудиоканала представления. |
DASHАдаптационныйНабор
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 | string MIME-тип набора адаптации. |
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 | string URI идентификатора схемы значения. |
value | string Значение URI идентификатора схемы. |
Икона
Значок содержит информацию о значке 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 содержит информацию о клике по значку.JSON-представление |
---|
{ "url": string, } |
Поля | |
---|---|
url | string |
Резервное изображение
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 |
обертка
Обертка содержит информацию об объявлении-обертке. Он не включает идентификатор сделки, если он не существует.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_ad_id | string Идентификатор креативного объявления, используемый для объявления-контейнера. |
deal_id | string Необязательный идентификатор сделки для объявления-контейнера. |
Проверка
Проверка содержит информацию для открытого измерения, которая облегчает стороннее измерение видимости и проверки. В настоящее время поддерживаются только ресурсы 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 Непрозрачная строка, передаваемая в код проверки начальной загрузки. |
JavaScriptРесурс
JavaScriptResource содержит информацию для проверки через JavaScript.JSON-представление |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Поля | |
---|---|
script_url | string URI для полезных данных JavaScript. |
api_framework | string APIFramework — это имя платформы видео, использующей код проверки. |
browser_optional | boolean Можно ли запустить этот скрипт вне браузера. |
Событие отслеживания
TrackingEvent содержит URL-адреса, которые клиент должен проверять в определенных ситуациях.JSON-представление |
---|
{ "event": string, "uri": string, } |
Поля | |
---|---|
event | string Тип события отслеживания. |
uri | string Событие отслеживания, которое необходимо проверить. |
Универсальный идентификатор рекламы
UniversalAdID используется для предоставления уникального идентификатора креатива, который сохраняется во всех рекламных системах.JSON-представление |
---|
{ "id_value": string, "id_registry": string, } |
Поля | |
---|---|
id_value | string Универсальный рекламный идентификатор выбранного креатива для объявления. |
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 | string Платформа API для этого компаньона. |
tracking_events | [object(TrackingEvent)] Список событий отслеживания для этого компаньона. |
ИнтерактивныйФайл
InteractiveFile содержит информацию об интерактивном креативе (т. е. SIMID), который должен отображаться во время воспроизведения рекламы.JSON-представление |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Поля | |
---|---|
resource | string URL-адрес интерактивного объявления. |
type | string MIME-тип файла, предоставленного в качестве ресурса. |
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 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 и спецификацию 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 Подписанный токен HMAC в кодировке URL для текущего рекламного модуля. | ||||
last | необязательный | boolean Указывает последний сегмент рекламной паузы. Опустите этот параметр для всех остальных сегментов. | ||||
scte35 | необязательный | string Сигнал SCTE-35 в кодировке Base64 для этой рекламной паузы. | ||||
cust_params | необязательный | string Набор пар ключ-значение, используемый для таргетинга кампании Менеджера рекламы. Эти пары должны быть представлены в виде строки запроса в кодировке URL. Пример:
|
Сноски
-
sd
не требуется для сегментов инициализации. ↩ -
pd
не требуется для мероприятий с включенными бесконечными рекламными паузами. ↩
Пример
ПОЛУЧАТЬ 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
ПОЛУЧАТЬ https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profi le/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 Набор пар ключ-значение, используемый для таргетинга кампании Менеджера рекламы. Эти пары должны быть представлены в виде строки запроса в кодировке URL. Пример:
|
Тело ответа
В случае успеха тело ответа представляет собой многовариантный список воспроизведения HLS.
Метод: манифест модуля DASH.
Получает манифест рекламного модуля MPEG-DASH для прямой трансляции, готовый для загрузки и воспроизведения клиентским видеопроигрывателем.
Методы | |
---|---|
GET | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/pod/{pod_id}/manifest.mpd API для получения плейлиста 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_id | integer Числовой идентификатор текущей рекламной паузы. Идентификаторы рекламных блоков назначаются постепенно для каждой рекламной паузы, начиная с |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
pd | Необходимый | integer Продолжительность рекламного блока в миллисекундах. | ||||
scte35 | необязательный | string Сигнал SCTE-35 в кодировке Base64 для этой рекламной паузы. | ||||
cust_params | необязательный | string Набор пар ключ-значение, используемый для таргетинга кампании Менеджера рекламы. Эти пары должны быть представлены в виде строки запроса в кодировке URL. Пример:
|
Тело ответа
В случае успеха тело ответа представляет собой список воспроизведения MPEG-DASH mpd.
Метод: шаблон периода модуля DASH.
Методы | |
---|---|
pods | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json Запрашивает шаблон периода DASH из Google Ad Manager. Этот шаблон содержит макросы, которые необходимо заполнить параметрами потока. Как только эти макросы будут заполнены, шаблон станет вашим периодом рекламной паузы и может быть вставлен в ваш манифест 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 Идентификатор потока для сеанса текущего пользователя. Это значение возвращается в результате успешного запроса к конечной точке |
Тело ответа
В случае успеха тело ответа содержит новый объект PodTemplateResponse
.
Метод: проверка носителя
Обнаружив идентификатор рекламного носителя во время воспроизведения, немедленно сделайте запрос, используя 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 или emsg для файлов 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}
Тело ответа
В случае успеха ответ возвращает экземпляр PodMetadata
.
Анализ метаданных
Метаданные состоят из трех отдельных разделов: tags
, ads
и рекламные breaks
. Точкой входа в данные является раздел tags
. Далее просмотрите теги и найдите первую запись, имя которой является префиксом идентификатора рекламного носителя, найденного в видеопотоке. Например, у вас может быть идентификатор рекламного носителя, который выглядит так:
google_1234567890
Затем вы найдете объект тега с именем google_12345
. В данном случае он соответствует идентификатору вашего рекламного носителя. Найдя правильный объект префикса рекламного носителя, вы сможете найти идентификаторы объявлений, идентификаторы рекламных пауз и тип события. Идентификаторы рекламы затем используются для индексации объектов ads
, а идентификаторы рекламных пауз используются для индексации объектов breaks
.
Данные ответа
Транслировать
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 | string URL-адрес проверки мультимедиа, используемый в качестве базовой конечной точки для отслеживания событий воспроизведения. |
metadata_url | string URL-адрес метаданных, используемый для периодического опроса информации о предстоящих рекламных событиях потокового вещания. |
session_update_url | string URL-адрес обновления сеанса, используемый для обновления параметров таргетинга для этого потока. Исходные значения параметров таргетинга фиксируются во время первоначального запроса на создание потока. |
heartbeat_url | string URL-адрес контрольного сигнала, используемый для поддержания активности потока маяков на стороне сервера. Он должен проверяться каждые {PollingFrequency} секунд. Заполняется для потоков маяков на стороне сервера. |
polling_frequency | number Частота опроса в секундах при запросе Metadata_url или Heartbeat_url. |
pod_manifest_url | string Шаблон URL-адреса манифеста модуля используется для создания URL-адреса для получения манифеста модуля потока, соответствующего URL-адресу многовариантного списка воспроизведения в HLS или MPD в DASH. Заполняется для событий прямой трансляции с типом динамической вставки рекламы POD_SERVING_MANIFEST. https://developers.google.com/ad-manager/api/reference/v202305/LiveStreamEventService.DynamicAdInsertionType |
manifest_format | string Формат манифеста — это формат манифеста, полученного из pod_manifest_url, Dash или hls. |
Метаданные Pod
PodMetadata содержит метаданные о рекламе, рекламных паузах и тегах идентификаторов мультимедиа.JSON-представление |
---|
{ "tags": map[string, object(TagSegment)], "ads": map[string, object(Ad)], "ad_breaks": map[string, object(AdBreak)], } |
Поля | |
---|---|
tags | map[string, object(TagSegment)] Карта сегментов тегов, индексированных по префиксу тега. |
ads | map[string, object(Ad)] Карта объявлений, проиндексированных по идентификатору объявления. |
ad_breaks | map[string, object(AdBreak)] Карта рекламных пауз, проиндексированная по идентификатору рекламной паузы. |
ТегСегмент
TagSegment содержит ссылку на рекламу, ее рекламную паузу и тип события. TagSegment с type="progress" не должен отправляться на конечную точку проверки рекламного носителя.JSON-представление |
---|
{ "ad": string, "ad_break_id": string, "type": string, } |
Поля | |
---|---|
ad | string Идентификатор объявления этого тега. |
ad_break_id | string Идентификатор рекламной паузы этого тега. |
type | string Тип события этого тега. |
Рекламная пауза
AdBreak описывает одну рекламную паузу в потоке. Он содержит продолжительность, тип (в середине/до/после) и количество объявлений.JSON-представление |
---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
Поля | |
---|---|
type | string Допустимые типы перерывов: до, в середине и после. |
duration | number Общая продолжительность рекламы для этой рекламной паузы в секундах. |
expected_duration | number Ожидаемая продолжительность рекламной паузы (в секундах), включая всю рекламу и любую рекламную паузу. |
ads | number Количество рекламы в рекламной паузе. |
Объявление
Объявление описывает рекламу в потоке.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)] Список оберток. Если он пуст, опускается. |
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 | string DashPeriodTemplate — это XML-шаблон для периода, который необходимо заполнить соответствующими данными перед сшивкой. |
segment_duration_ms | int64 SegmentDurationMS — продолжительность сегментов периода в миллисекундах. |
Адподтимингметадатаответ
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 -адреса сегмента AD, индексированные, начинающиеся с 0. |
slate | object(SlateRendering) Сланец, описывающий, как отображать URL -адреса сегмента. |
dash_representations | map[string, object(DASHRepresentation)] Список представлений DASH для этого AD POD, который будет отображаться в DASH Manifests. |
dash_adaptation_sets | map[string, object(DASHAdaptationSet)] Список наборов адаптации DASH для этого AD POD, который будет отображаться в манифестах DASH. |
Adrendering
Adrendering описывает, как оформить объявление о принятии решений.JSON-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Продолжительность объявления, в миллисекундах (int). |
variants | map[string, object(VariantRendering)] Словарь объектов варианта (см. Ниже), индексируется с помощью идентификатора варианта/профиля, как настроено из пользовательского интерфейса. |
Слэйтерринг
Slaterendering описывает, как отображать содержание сланца.JSON-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Продолжительность сланца, в миллисекундах (int). |
variants | map[string, object(VariantRendering)] Словарь объектов варианта, индексируемый с помощью варианта/идентификатора профиля. Продолжительность сланцев должна быть зациклена до тех пор, пока не будет достигнута требуемая длина сланца, вставляя разрывы HLS между итерациями или зацикливание новых периодов для MPEG-Dash. |
VarianTrendering
VarianTrendering описывает один вариант/профиль в AD/Slate.JSON-представление |
---|
{ "segment_extension": string, "segment_durations": object(SegmentDurations), } |
Поля | |
---|---|
segment_extension | string Строка, одно из: TS, MP4, AAC, AC3, EC3, M4A, M4V. Расширение файла часть URL -адреса сегмента. |
segment_durations | object(SegmentDurations) Сегментные объекты. Каждое продолжительность сегмента может быть переведена в URL -адрес сегмента. |
Сегментные дары
Сегментированные данные описывают продолжительность последовательности сегментов в указанном временном блоке.JSON-представление |
---|
{ "timescale": number, "values": [], } |
Поля | |
---|---|
timescale | number Времена - это количество единиц в секунду (int), которое ожидается: 1000 для HLS (миллисекунд) 90000 для Dash Video Video (PTS). |
values | number Массив продолжительности сегмента Int, в единицах времен. |
Dashrepresentation
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) Конфигурация аудиоканала представления. |
DashAdationset
Dashadapationset описывает адаптационные узлы, которые будут отображаться в манифестах 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 | string Тип набора адаптации MIME. |
role | object(SchemeIDURIAndValue) Роль набора адаптации. |
inband_event_stream | object(SchemeIDURIAndValue) Inband Event Stream набора адаптации. |
min_frame_rate | string Минимальная частота кадров набора адаптации. |
max_frame_rate | string Максимальная частота кадров набора адаптации. |
scan_type | string Тип сканирования набора адаптации. |
start_with_sap | string Начните с SAP из набора адаптации. |
segment_alignment | boolean Выравнивание сегмента набора адаптации. |
representations | string Представления набора адаптации. |
SchemeDuriAndValue
SmechIduriAndValue - это пара идентификатора схемы и ее значение.JSON-представление |
---|
{ "scheme_id_uri": string, "value": string, } |
Поля | |
---|---|
scheme_id_uri | string Идентификатор схемы значения. |
value | string Значение идентификатора схемы URI. |
Икона
Значок содержит информацию об обширном значке.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 содержит информацию о значке ClickThrough.JSON-представление |
---|
{ "url": string, } |
Поля | |
---|---|
url | string |
SwarkbackImage
SwarkbackImage содержит информацию об обширном резервом изображении.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 |
Обертка
Обертка содержит информацию о объявлении обертки. Он не включает идентификатор сделки, если его не существует.JSON-представление |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Поля | |
---|---|
system | string Идентификатор рекламной системы. |
ad_id | string AD ID, используемый для объявления обертки. |
creative_id | string Creative Id используется для объявления обертки. |
creative_ad_id | string Creative Ad Id, используемый для объявления обертки. |
deal_id | string Необязательный идентификатор сделки для объявления обертки. |
Проверка
Проверка содержит информацию для открытого измерения, которая облегчает измерение просмотра и проверки сторонних сторон. В настоящее время поддерживаются только ресурсы 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 | string URI в JavaScript полезную нагрузку. |
api_framework | string Apiframework - это название видеоматерим, осуществляющего код проверки. |
browser_optional | boolean Можно ли запустить этот сценарий за пределами браузера. |
Отслеживание
TrackingEvent содержит URL -адреса, которые должны быть прозвучены клиентом в определенных ситуациях.JSON-представление |
---|
{ "event": string, "uri": string, } |
Поля | |
---|---|
event | string Тип события отслеживания. |
uri | string Событие отслеживания, которое будет пропинено. |
Universaladid
Universaladid используется для обеспечения уникального творческого идентификатора, который поддерживается в рекламных системах.JSON-представление |
---|
{ "id_value": string, "id_registry": string, } |
Поля | |
---|---|
id_value | string Универсальный идентификатор рекламы выбранного творчества для рекламы. |
id_registry | string Строка, используемая для определения URL -адреса для веб -сайта реестра, где каталогизируется выбранная универсальная реклама Creative. |
Компаньон
Компаньон содержит информацию для компаньонов, которые могут отображаться вместе с объявлением.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> в обширном, если это сопутствующий статический тип. |
height | int32 Высота в пикселях этого компаньона. |
width | int32 Ширина в пикселях этого компаньона. |
resource | string Для Static и Iframe Companions это будет URL, который будет загружен и отображен. Для HTML -компаньонов это будет фрагмент HTML, который должен быть показан в качестве компаньона. |
type | string Тип этого компаньона. Это может быть либо статичным, iframe или html. |
ad_slot_id | string Идентификатор слота для этого компаньона. |
api_framework | string Структура API для этого компаньона. |
tracking_events | [object(TrackingEvent)] Список событий отслеживания для этого компаньона. |
InteractiveFile
InteractiveFile содержит информацию для Interactive Creative (IE SIMID), которая должна отображаться во время воспроизведения рекламы.JSON-представление |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Поля | |
---|---|
resource | string URL для интерактивного творчества. |
type | string Тип MIME файла, предоставленного в качестве ресурса. |
variable_duration | boolean Может ли это творчество просить продолжительность продления. |
ad_parameters | string Значение узла <dparameters> в обширном. |
Динамический API вставки AD позволяет запросить и отслеживать DAI Livestreams.
Сервис: dai.google.com
Все URI относительно https://dai.google.com
.
Метод: поток
Методы | |
---|---|
stream | POST /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream Регистрирует дай -дай, обслуживающий прямую трансляцию. |
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
.
Открытое измерение
DAI API содержит информацию для открытой проверки измерений в поле Verifications
. Это поле содержит один или несколько элементов Verification
, которые перечисляют ресурсы и метаданные, необходимые для выполнения стороннего кода измерения, чтобы проверить творческий воспроизведение. Поддерживается только JavaScriptResource
. Для получения дополнительной информации, пожалуйста, смотрите Tech Lab IAB и обширную спецификацию 4.1 .
Метод: сегмент POD
Методы | |
---|---|
pod segment | GET /linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format} Создает дайский поток для данного идентификатора события. |
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 POD назначаются постепенно для каждого события разрыва в рекламе, начиная с ad_break_id/{string} Идентификатор строки для текущего разрыва рекламы. Издатель, предоставленный идентификатором рекламы, не имеет таких же ограничений, как идентификатор AD Pod. Любой неизвестный идентификатор рекламы, предоставленный этой конечной точке, создает новый рекламный разрыв для события в прямой трансляции. |
profile_name | string Название запрошенного профиля кодирования AD Google DAI . Профиль кодирования должен быть одним из настроенных профилей кодирования для выбранного события. |
segment_number | integer Индекс запрошенного сегмента в текущем AD Pod, начиная с нуля. |
segment_format | string Расширение файла, связанное с запрошенным форматом сегмента. Принятые расширения: |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
stream_id | необходимый | string Идентификатор потока для сеанса текущего пользователя. Это значение возвращается успешным запросом в конечную точку | ||||
sd | required 1 | integer Продолжительность запрошенного сегмента, в миллисекундах. | ||||
so | необязательный | Смещение запрошенного сегмента в AD Pod, в миллисекундах. Если вы опустите параметр | ||||
pd | Требуется 2 | integer Продолжительность AD Pod, в миллисекундах. | ||||
auth-token | необходимый | string Подписанный, кодированный URL- токен HMAC для текущего AD POD. | ||||
last | необязательный | boolean Указывает последний сегмент в разрыве рекламы. Опустите этот параметр для всех других сегментов. | ||||
scte35 | необязательный | string BASE64-кодированный SCTE-35Signal для этого разрыва AD. | ||||
cust_params | необязательный | string Набор пар клавишных значений, используемый для предвыборной кампании рекламного менеджера. Эти пары должны быть представлены в виде строки запроса, кодированной URL. Пример:
|
Сноски
-
sd
не требуется для сегментов инициализации. ↩ -
pd
не требуется для событий с включенными Duguration AD -разрывами. ↩
Пример
ПОЛУЧАТЬ https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/ad_break_id/adbreak -2/Профиль/8B88888CF79AD43F0800482FFC035A1AC_TS_A/1.TS? SO = 0 & SD = 10000 & PD = 30000 & Stream_ID = 8E19CBC6-850B-404C-99D7-860AA4A674CB: тест
ПОЛУЧАТЬ https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profi LE/8B8888CF79AD43F0800482FFC035A1AC_TS_A/1.TS?
Тело ответа
В случае успеха корпус отклика будет воспроизводимым сегментом потока, соответствующим формату и параметрам, указанным в запросе.
Метод: HLS POD Manifest
Получает манифест HLS AD Manifest в прямой трансляции, которая готова к клиентскому видеоплеру загрузить и воспроизводить.
Методы | |
---|---|
GET | GET /linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset}/{pod_identifier}.m3u8; API, чтобы получить многовариантный плейлист HLS для AD POD. |
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 POD назначаются постепенно для каждого события разрыва в рекламе, начиная с ad_break_id/{string} Идентификатор строки для текущего разрыва рекламы. Издатель, предоставленный идентификатором рекламы, не имеет таких же ограничений, как идентификатор AD Pod. Любой неизвестный идентификатор рекламы, предоставленный этой конечной точке, создает новый рекламный разрыв для события в прямой трансляции. |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
stream_id | Необходимый | string Идентификатор потока для сеанса текущего пользователя. Это значение возвращается успешным запросом в конечную точку | ||||
pd | Необходимый | integer Продолжительность AD Pod, в миллисекундах. | ||||
scte35 | необязательный | string BASE64-кодированный SCTE-35Signal для этого разрыва AD. | ||||
cust_params | необязательный | string Набор пар клавишных значений, используемый для предвыборной кампании рекламного менеджера. Эти пары должны быть представлены в виде строки запроса, кодированной URL. Пример:
|
Тело ответа
В случае успеха тело реагирования является многовариантным плейлистом HLS.
Метод: манифест
Получает Mpeg-Dash AD Pod Manifest в прямой трансляции, которая готова к клиентскому видеоплеру загрузить и воспроизводить.
Методы | |
---|---|
GET | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/pod/{pod_id}/manifest.mpd API, чтобы получить плейлист MPEG-Dash MPD для AD POD. |
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_id | integer Целый идентификатор для текущего разрыва рекламы. Идентификаторы AD POD назначаются постепенно для каждого события разрыва в рекламе, начиная с |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
pd | Необходимый | integer Продолжительность AD Pod, в миллисекундах. | ||||
scte35 | необязательный | string BASE64-кодированный SCTE-35Signal для этого разрыва AD. | ||||
cust_params | необязательный | string Набор пар клавишных значений, используемый для предвыборной кампании рекламного менеджера. Эти пары должны быть представлены в виде строки запроса, кодированной URL. Пример:
|
Тело ответа
В случае успеха корпус ответа является плейлистом MPEG-Dash MPD.
Метод: шаблон периода Dash Pod
Методы | |
---|---|
pods | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json Запрашивает шаблон периода прозски от Google Ad Manager. Этот шаблон содержит макросы, которые вы должны заполнить параметрами потока. Как только эти макросы заполнены, шаблон становится вашим периодом разрыва в рекламе и может быть сшит в ваш манифест. |
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 Идентификатор потока для сеанса текущего пользователя. Это значение возвращается успешным запросом в конечную точку |
Тело ответа
В случае успеха корпус ответа содержит новый объект PodTemplateResponse
.
Метод: проверка носителя
После встречи с идентификатором рекламного носителя во время воспроизведения немедленно сделайте запрос, используя 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
если в настоящее время другой запрос уже отправляет пинг.
AD Media Ids
Идентификаторы AD Media будут закодироваться в отдельном треке метаданных - включенные метаданные для транспортного потока HLS или EMSG для файлов MP4. Идентификаторы AD Media всегда начнутся со строки google_
.
Весь текстовое содержимое записи метаданных должно быть добавлено к URL -адресам проверки AD до выполнения каждого запроса на проверку AD.
Метод: метаданные
Конечная точка метаданных в metadata_url
возвращает информацию, используемую для создания AD UI. Конечная точка метаданных недоступна для потоков на стороне сервера, где сервер отвечает за инициирование проверки носителя рекламы.
Методы | |
---|---|
metadata | GET /{metadata_url}/{ad-media-id} GET /{metadata_url} Получает информацию о метаданных объявлениях. |
HTTP-запрос
GET https://{metadata_url}/{ad-media-id}
GET https://{metadata_url}
Тело ответа
В случае успеха, ответ возвращает экземпляр PodMetadata
.
Санирование метаданных
Метаданные имеют три отдельных раздела: tags
, ads
и рекламные breaks
. Точка входа в данные - раздел tags
. Оттуда переверните через теги и найдите первую запись, чье имя является префиксом для идентификатора рекламы медиа -идентификатора, найденного в видеопотоке. Например, у вас может быть рекламный идентификатор медиа, который выглядит как:
google_1234567890
Затем вы найдете объект тега с именем google_12345
. В этом случае это соответствует вашему идентификатору рекламы. После того, как вы найдете правильный объект префикса AD, вы можете найти рекламные идентификаторы, идентификаторы рекламы и тип события. Затем идентификаторы AD используются для индексации объектов ads
, а идентификаторы разрыва AD используются для индексации объектов breaks
.
Данные ответа
Транслировать
Поток используется для составления списка ресурсов для недавно созданного потока в формате 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 Stream. |
media_verification_url | string URL -адрес проверки среды используется в качестве базовой конечной точки для отслеживания событий воспроизведения. |
metadata_url | string Metadata URL используется для опроса для периодической информации о предстоящих рекламных мероприятиях. |
session_update_url | string URL обновления сеанса используется для обновления параметров таргетирования для этого потока. Исходные значения для параметров таргетирования захватываются во время начального запроса создания потока. |
heartbeat_url | string URL -адрес сердца, используемый для поддержания потока маяки на стороне сервера, он должен быть пропитан на каждую {OlplingFrequency} секунд. Заполнено для серверных потоков маяки. |
polling_frequency | number Частота опроса в секундах, когда запрос на метадата_ера или Heartbeat_url. |
pod_manifest_url | string Шаблон URL -адреса POD Manifest используется для генерации URL для извлечения манифеста POD потока, соответствующего URL -адресу многовалентного плейлиста в HLS или MPD в DASH. Заполнено для событий в прямом эфире динамического вставки AD Тип 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)], } |
Поля | |
---|---|
tags | map[string, object(TagSegment)] Карта сегментов тегов, индексированная с помощью префикса тега. |
ads | map[string, object(Ad)] Карта рекламы, индексированная с помощью идентификатора AD. |
ad_breaks | map[string, object(AdBreak)] Карта AD разрывов, индексированная с помощью идентификатора AD Break. |
TAGSEGMENT
Tagsegment содержит ссылку на объявление, его разрыв в рекламе и тип события. Tagsegment с Type = «Прогресс» не должен быть пропитан в конечную точку проверки AD.JSON-представление |
---|
{ "ad": string, "ad_break_id": string, "type": string, } |
Поля | |
---|---|
ad | string Идентификатор рекламы этого тега. |
ad_break_id | string Идентификатор рекламы этого тега. |
type | string Тип события этого тега. |
Реклама
Реклама рекламы описывает один разрыв рекламы в потоке. Он содержит продолжительность, тип (середина/pro/post) и количество рекламы.JSON-представление |
---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
Поля | |
---|---|
type | string Действительные типы перерывов: Pre, Mid и Post. |
duration | number Общая продолжительность рекламы для этого рекламного перерыва, в считанные секунды. |
expected_duration | number Ожидаемая продолжительность разрыва AD (в секундах), включая все объявления и любые сланцы. |
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 ClickThrough. |
click_tracking_urls | string Дополнительные URL -адреса отслеживания клика. |
verifications | [object(Verification)] Необязательные записи о проверке проверки открытых измерений, в которых перечислены ресурсы и метаданные, необходимые для выполнения стороннего кода измерения для проверки творческого воспроизведения. |
slate | boolean Необязательный Bool, указывающий, что текущая запись - Slate. |
icons | [object(Icon)] Список значков, опущены, если пуст. |
wrappers | [object(Wrapper)] Список оберток, опущен, если пуст. |
universal_ad_id | object(UniversalAdID) Необязательный универсальный идентификатор рекламы. |
extensions | string Необязательный список всех узлов <Extension> в обширном. |
companions | [object(Companion)] Дополнительные спутники, которые могут отображаться вместе с этим объявлением. |
interactive_file | object(InteractiveFile) Необязательный интерактивный креатив (SIMID), который должен отображаться во время воспроизведения рекламы. |
PodtemplaterSponse
PodtemplaterSponse представляет полезную нагрузку JSON, возвращенную в VTP для швоза POD.JSON-представление |
---|
{ "dash_period_template": string, "segment_duration_ms": int64, } |
Поля | |
---|---|
dash_period_template | string DasherioDtemplate - это шаблон XML для периода, который должен быть заполнен соответствующими данными перед сшиванием. |
segment_duration_ms | int64 SegmentDurationMs - это продолжительность сегментов периода в миллисекундах. |
Adpodtimingmetadataresponse
AdpodtimingMetAdataresponse содержит информацию о AD POD и о том, как создавать 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 Статус решения для AD POD. |
ads | [object(AdRendering)] Массив AD объектов, описывающих, как отображать URL -адреса сегмента AD, индексированные, начинающиеся с 0. |
slate | object(SlateRendering) Сланец, описывающий, как отображать URL -адреса сегмента. |
dash_representations | map[string, object(DASHRepresentation)] Список представлений DASH для этого AD POD, который будет отображаться в DASH Manifests. |
dash_adaptation_sets | map[string, object(DASHAdaptationSet)] Список наборов адаптации DASH для этого AD POD, который будет отображаться в манифестах DASH. |
Adrendering
Adrendering описывает, как оформить объявление о принятии решений.JSON-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Продолжительность объявления, в миллисекундах (int). |
variants | map[string, object(VariantRendering)] Словарь объектов варианта (см. Ниже), индексируется с помощью идентификатора варианта/профиля, как настроено из пользовательского интерфейса. |
Слэйтерринг
Slaterendering описывает, как отображать содержание сланца.JSON-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Продолжительность сланца, в миллисекундах (int). |
variants | map[string, object(VariantRendering)] Словарь объектов варианта, индексируемый с помощью варианта/идентификатора профиля. Продолжительность сланцев должна быть зациклена до тех пор, пока не будет достигнута требуемая длина сланца, вставляя разрывы HLS между итерациями или зацикливание новых периодов для MPEG-Dash. |
VarianTrendering
VarianTrendering описывает один вариант/профиль в AD/Slate.JSON-представление |
---|
{ "segment_extension": string, "segment_durations": object(SegmentDurations), } |
Поля | |
---|---|
segment_extension | string Строка, одно из: TS, MP4, AAC, AC3, EC3, M4A, M4V. Расширение файла часть URL -адреса сегмента. |
segment_durations | object(SegmentDurations) Сегментные объекты. Каждое продолжительность сегмента может быть переведена в URL -адрес сегмента. |
Сегментные дары
Сегментированные данные описывают продолжительность последовательности сегментов в указанном временном блоке.JSON-представление |
---|
{ "timescale": number, "values": [], } |
Поля | |
---|---|
timescale | number Времена - это количество единиц в секунду (int), которое ожидается: 1000 для HLS (миллисекунд) 90000 для Dash Video Video (PTS). |
values | number Массив продолжительности сегмента Int, в единицах времен. |
Dashrepresentation
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) Конфигурация аудиоканала представления. |
DashAdationset
Dashadapationset описывает адаптационные узлы, которые будут отображаться в манифестах 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 | string Тип набора адаптации MIME. |
role | object(SchemeIDURIAndValue) Роль набора адаптации. |
inband_event_stream | object(SchemeIDURIAndValue) Inband Event Stream набора адаптации. |
min_frame_rate | string Минимальная частота кадров набора адаптации. |
max_frame_rate | string Максимальная частота кадров набора адаптации. |
scan_type | string Тип сканирования набора адаптации. |
start_with_sap | string Начните с SAP из набора адаптации. |
segment_alignment | boolean Выравнивание сегмента набора адаптации. |
representations | string Представления набора адаптации. |
SchemeDuriAndValue
SmechIduriAndValue - это пара идентификатора схемы и ее значение.JSON-представление |
---|
{ "scheme_id_uri": string, "value": string, } |
Поля | |
---|---|
scheme_id_uri | string Идентификатор схемы значения. |
value | string Значение идентификатора схемы URI. |
Икона
Значок содержит информацию об обширном значке.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 содержит информацию о значке ClickThrough.JSON-представление |
---|
{ "url": string, } |
Поля | |
---|---|
url | string |
SwarkbackImage
SwarkbackImage содержит информацию об обширном резервом изображении.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 |
Обертка
Обертка содержит информацию о объявлении обертки. Он не включает идентификатор сделки, если его не существует.JSON-представление |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Поля | |
---|---|
system | string Идентификатор рекламной системы. |
ad_id | string AD ID, используемый для объявления обертки. |
creative_id | string Creative Id используется для объявления обертки. |
creative_ad_id | string Creative Ad Id, используемый для объявления обертки. |
deal_id | string Необязательный идентификатор сделки для объявления обертки. |
Проверка
Проверка содержит информацию для открытого измерения, которая облегчает измерение просмотра и проверки сторонних сторон. В настоящее время поддерживаются только ресурсы 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 | string URI в JavaScript полезную нагрузку. |
api_framework | string Apiframework - это название видеоматерим, осуществляющего код проверки. |
browser_optional | boolean Можно ли запустить этот сценарий за пределами браузера. |
Отслеживание
TrackingEvent содержит URL -адреса, которые должны быть прозвучены клиентом в определенных ситуациях.JSON-представление |
---|
{ "event": string, "uri": string, } |
Поля | |
---|---|
event | string Тип события отслеживания. |
uri | string Событие отслеживания, которое будет пропинено. |
Universaladid
Universaladid используется для обеспечения уникального творческого идентификатора, который поддерживается в рекламных системах.JSON-представление |
---|
{ "id_value": string, "id_registry": string, } |
Поля | |
---|---|
id_value | string Универсальный идентификатор рекламы выбранного творчества для рекламы. |
id_registry | string Строка, используемая для определения URL -адреса для веб -сайта реестра, где каталогизируется выбранная универсальная реклама Creative. |
Компаньон
Компаньон содержит информацию для компаньонов, которые могут отображаться вместе с объявлением.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> в обширном, если это сопутствующий статический тип. |
height | int32 Высота в пикселях этого компаньона. |
width | int32 Ширина в пикселях этого компаньона. |
resource | string Для Static и Iframe Companions это будет URL, который будет загружен и отображен. Для HTML -компаньонов это будет фрагмент HTML, который должен быть показан в качестве компаньона. |
type | string Тип этого компаньона. Это может быть либо статичным, iframe или html. |
ad_slot_id | string Идентификатор слота для этого компаньона. |
api_framework | string Структура API для этого компаньона. |
tracking_events | [object(TrackingEvent)] Список событий отслеживания для этого компаньона. |
InteractiveFile
InteractiveFile содержит информацию для Interactive Creative (IE SIMID), которая должна отображаться во время воспроизведения рекламы.JSON-представление |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Поля | |
---|---|
resource | string URL для интерактивного творчества. |
type | string Тип MIME файла, предоставленного в качестве ресурса. |
variable_duration | boolean Может ли это творчество просить продолжительность продления. |
ad_parameters | string Значение узла <dparameters> в обширном. |
Динамический API вставки AD позволяет запросить и отслеживать DAI Livestreams.
Сервис: dai.google.com
Все URI относительно https://dai.google.com
.
Метод: поток
Методы | |
---|---|
stream | POST /ssai/pods/api/v1/network/{network_code}/custom_asset/{custom_asset_key}/stream Регистрирует дай -дай, обслуживающий прямую трансляцию. |
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
.
Открытое измерение
DAI API содержит информацию для открытой проверки измерений в поле Verifications
. Это поле содержит один или несколько элементов Verification
, которые перечисляют ресурсы и метаданные, необходимые для выполнения стороннего кода измерения, чтобы проверить творческий воспроизведение. Поддерживается только JavaScriptResource
. Для получения дополнительной информации, пожалуйста, смотрите Tech Lab IAB и обширную спецификацию 4.1 .
Метод: сегмент POD
Методы | |
---|---|
pod segment | GET /linear/pods/v1/seg/network/{network_code}/custom_asset/{custom_asset_key}/{pod_identifier}/profile/{profile_name}/{segment_number}.{segment_format} Создает дайский поток для данного идентификатора события. |
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 POD назначаются постепенно для каждого события разрыва в рекламе, начиная с ad_break_id/{string} Идентификатор строки для текущего разрыва рекламы. Издатель, предоставленный идентификатором рекламы, не имеет таких же ограничений, как идентификатор AD Pod. Любой неизвестный идентификатор рекламы, предоставленный этой конечной точке, создает новый рекламный разрыв для события в прямой трансляции. |
profile_name | string Название запрошенного профиля кодирования AD Google DAI . Профиль кодирования должен быть одним из настроенных профилей кодирования для выбранного события. |
segment_number | integer Индекс запрошенного сегмента в текущем AD Pod, начиная с нуля. |
segment_format | string Расширение файла, связанное с запрошенным форматом сегмента. Принятые расширения: |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
stream_id | необходимый | string Идентификатор потока для сеанса текущего пользователя. Это значение возвращается успешным запросом в конечную точку | ||||
sd | required 1 | integer Продолжительность запрошенного сегмента, в миллисекундах. | ||||
so | необязательный | Смещение запрошенного сегмента в AD Pod, в миллисекундах. Если вы опустите параметр | ||||
pd | Требуется 2 | integer Продолжительность AD Pod, в миллисекундах. | ||||
auth-token | необходимый | string Подписанный, кодированный URL- токен HMAC для текущего AD POD. | ||||
last | необязательный | boolean Указывает последний сегмент в разрыве рекламы. Опустите этот параметр для всех других сегментов. | ||||
scte35 | необязательный | string BASE64-кодированный SCTE-35Signal для этого разрыва AD. | ||||
cust_params | необязательный | string Набор пар клавишных значений, используемый для предвыборной кампании рекламного менеджера. Эти пары должны быть представлены в виде строки запроса, кодированной URL. Пример:
|
Сноски
-
sd
не требуется для сегментов инициализации. ↩ -
pd
не требуется для событий с включенными Duguration AD -разрывами. ↩
Пример
ПОЛУЧАТЬ https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/ad_break_id/adbreak -2/Профиль/8B88888CF79AD43F0800482FFC035A1AC_TS_A/1.TS? SO = 0 & SD = 10000 & PD = 30000 & Stream_ID = 8E19CBC6-850B-404C-99D7-860AA4A674CB: тест
ПОЛУЧАТЬ https://dai.google.com/linear/pods/v1/seg/network/sandbox_dev/custom_asset/podserving-segredirect-custom-key/pod/2/profi LE/8B8888CF79AD43F0800482FFC035A1AC_TS_A/1.TS?
Тело ответа
В случае успеха корпус отклика будет воспроизводимым сегментом потока, соответствующим формату и параметрам, указанным в запросе.
Метод: HLS POD Manifest
Получает манифест HLS AD Manifest в прямой трансляции, которая готова к клиентскому видеоплеру загрузить и воспроизводить.
Методы | |
---|---|
GET | GET /linear/pods/v1/hls/network/{network_code}/custom_asset/{custom_asset}/{pod_identifier}.m3u8; API, чтобы получить многовариантный плейлист HLS для AD POD. |
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 POD назначаются постепенно для каждого события разрыва в рекламе, начиная с ad_break_id/{string} Идентификатор строки для текущего разрыва рекламы. Издатель, предоставленный идентификатором рекламы, не имеет таких же ограничений, как идентификатор AD Pod. Любой неизвестный идентификатор рекламы, предоставленный этой конечной точке, создает новый рекламный разрыв для события в прямой трансляции. |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
stream_id | Необходимый | string Идентификатор потока для сеанса текущего пользователя. Это значение возвращается успешным запросом в конечную точку | ||||
pd | Необходимый | integer Продолжительность AD Pod, в миллисекундах. | ||||
scte35 | необязательный | string BASE64-кодированный SCTE-35Signal для этого разрыва AD. | ||||
cust_params | необязательный | string Набор пар клавишных значений, используемый для предвыборной кампании рекламного менеджера. Эти пары должны быть представлены в виде строки запроса, кодированной URL. Пример:
|
Тело ответа
В случае успеха тело реагирования является многовариантным плейлистом HLS.
Метод: манифест
Получает Mpeg-Dash AD Pod Manifest в прямой трансляции, которая готова к клиентскому видеоплеру загрузить и воспроизводить.
Методы | |
---|---|
GET | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset}/stream/{stream_id}/pod/{pod_id}/manifest.mpd API, чтобы получить плейлист MPEG-Dash MPD для AD POD. |
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_id | integer Целый идентификатор для текущего разрыва рекламы. Идентификаторы AD POD назначаются постепенно для каждого события разрыва в рекламе, начиная с |
Параметры запроса
Параметры | ||||||
---|---|---|---|---|---|---|
pd | Необходимый | integer Продолжительность AD Pod, в миллисекундах. | ||||
scte35 | необязательный | string BASE64-кодированный SCTE-35Signal для этого разрыва AD. | ||||
cust_params | необязательный | string Набор пар клавишных значений, используемый для предвыборной кампании рекламного менеджера. Эти пары должны быть представлены в виде строки запроса, кодированной URL. Пример:
|
Тело ответа
В случае успеха корпус ответа является плейлистом MPEG-Dash MPD.
Метод: шаблон периода Dash Pod
Методы | |
---|---|
pods | GET /linear/pods/v1/dash/network/{network_code}/custom_asset/{custom_asset_key}/pods.json Запрашивает шаблон периода прозски от Google Ad Manager. Этот шаблон содержит макросы, которые вы должны заполнить параметрами потока. Как только эти макросы заполнены, шаблон становится вашим периодом разрыва в рекламе и может быть сшит в ваш манифест. |
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 Идентификатор потока для сеанса текущего пользователя. Это значение возвращается успешным запросом в конечную точку |
Тело ответа
В случае успеха корпус ответа содержит новый объект PodTemplateResponse
.
Метод: проверка носителя
После встречи с идентификатором рекламного носителя во время воспроизведения немедленно сделайте запрос, используя 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
if a previous verification request for this ID succeeded. -
HTTP/1.1 409 Conflict
if 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}
Тело ответа
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.
Response data
Транслировать
Stream is used to render a list of resources for a newly created stream in JSON format.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 The GAM stream identifier. |
media_verification_url | string The media verification URL used as base endpoint for tracking playback events. |
metadata_url | string Metadata URL used to poll for periodic information about upcoming stream ad events. |
session_update_url | string The 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 | string The 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 | number The polling frequency, in seconds, when requesting metadata_url or heartbeat_url. |
pod_manifest_url | string The 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 | string Manifest 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-представление |
---|
{ "tags": map[string, object(TagSegment)], "ads": map[string, object(Ad)], "ad_breaks": map[string, object(AdBreak)], } |
Поля | |
---|---|
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. |
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-представление |
---|
{ "ad": string, "ad_break_id": string, "type": string, } |
Поля | |
---|---|
ad | string The ID of this tag's ad. |
ad_break_id | string The ID of this tag's ad break. |
type | string This 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-представление |
---|
{ "type": string, "duration": number, "expected_duration": number, "ads": number, } |
Поля | |
---|---|
type | string Valid break types are: pre, mid, and post. |
duration | number Total ad duration for this ad break, in seconds. |
expected_duration | number Expected duration of the ad break (in seconds), including all ads and any slate. |
ads | number Number of ads in the ad break. |
Объявление
Ad describes an ad in the stream.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 The ID of this ad's ad break. |
position | number Position of this ad in the ad break, starting at 1. |
duration | number Duration of the ad, in seconds. |
title | string Optional title of the ad. |
description | string Optional description of the ad. |
advertiser | string Optional advertiser identifier. |
ad_system | string Optional ad system. |
ad_id | string Optional ad ID. |
creative_id | string Optional creative ID. |
creative_ad_id | string Optional creative ad ID. |
deal_id | string Optional deal ID. |
clickthrough_url | string Optional clickthrough URL. |
click_tracking_urls | string Optional 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 | boolean Optional 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 | string Optional 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-представление |
---|
{ "dash_period_template": string, "segment_duration_ms": int64, } |
Поля | |
---|---|
dash_period_template | string DashPeriodTemplate is the xml template for the period to be filled with appropriate data before stitching. |
segment_duration_ms | int64 SegmentDurationMS 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-представление |
---|
{ "status": string, "ads": [object(AdRendering)], "slate": object(SlateRendering), "dash_representations": map[string, object(DASHRepresentation)], "dash_adaptation_sets": map[string, object(DASHAdaptationSet)], } |
Поля | |
---|---|
status | string Decision 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-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Duration 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-представление |
---|
{ "duration_ms": number, "variants": map[string, object(VariantRendering)], } |
Поля | |
---|---|
duration_ms | number Duration 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-представление |
---|
{ "segment_extension": string, "segment_durations": object(SegmentDurations), } |
Поля | |
---|---|
segment_extension | string String, 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-представление |
---|
{ "timescale": number, "values": [], } |
Поля | |
---|---|
timescale | number Timescale 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 | number Array of int segment durations, in timescale units. |
DASHRepresentation
DASHRepresentation describes Representation nodes to be rendered in DASH manifests.JSON-представление |
---|
{ "codecs": string, "bandwidth": number, "width": number, "height": number, "frame_rate": string, "audio_sampling_rate": number, "audio_channel_config": object(SchemeIDURIAndValue), } |
Поля | |
---|---|
codecs | string Codecs of the representation. |
bandwidth | number Bandwidth of the representation. |
width | number Width of the representation. |
height | number Height of the representation. |
frame_rate | string Frame rate of the representation. |
audio_sampling_rate | number Audio 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-представление |
---|
{ "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 Content type of the adaptation set. |
mime_type | string MIME 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 | string Minimum frame rate of the adaptation set. |
max_frame_rate | string Maximum frame rate of the adaptation set. |
scan_type | string Scan type of the adaptation set. |
start_with_sap | string Start with SAP of the adaptation set. |
segment_alignment | boolean Segment alignment of the adaptation set. |
representations | string Representations of the adaptation set. |
SchemeIDURIAndValue
SchemeIDURIAndValue is a pair of a scheme ID and its value.JSON-представление |
---|
{ "scheme_id_uri": string, "value": string, } |
Поля | |
---|---|
scheme_id_uri | string Scheme ID URI of the value. |
value | string Value of the scheme ID URI. |
Икона
Icon contains information about a VAST Icon.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 contains information about an icon clickthrough.JSON-представление |
---|
{ "url": string, } |
Поля | |
---|---|
url | string |
FallbackImage
FallbackImage contains information about a VAST fallback image.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 contains information about a wrapper ad. It does not include a Deal ID if it does not exist.JSON-представление |
---|
{ "system": string, "ad_id": string, "creative_id": string, "creative_ad_id": string, "deal_id": string, } |
Поля | |
---|---|
system | string Ad system identifier. |
ad_id | string Ad ID used for the wrapper ad. |
creative_id | string Creative ID used for the wrapper ad. |
creative_ad_id | string Creative Ad ID used for the wrapper ad. |
deal_id | string Optional 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-представление |
---|
{ "vendor": string, "java_script_resources": [object(JavaScriptResource)], "tracking_events": [object(TrackingEvent)], "parameters": string, } |
Поля | |
---|---|
vendor | string The 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 | string An opaque string passed to bootstrap verification code. |
JavaScriptResource
JavaScriptResource contains information for verification via JavaScript.JSON-представление |
---|
{ "script_url": string, "api_framework": string, "browser_optional": boolean, } |
Поля | |
---|---|
script_url | string URI to javascript payload. |
api_framework | string APIFramework is the name of the video framework exercising the verification code. |
browser_optional | boolean Whether this script can be run outside of a browser. |
TrackingEvent
TrackingEvent contains URLs that should be pinged by the client in certain situations.JSON-представление |
---|
{ "event": string, "uri": string, } |
Поля | |
---|---|
event | string The type of the tracking event. |
uri | string The tracking event to be pinged. |
UniversalAdID
UniversalAdID is used to provide a unique creative identifier that is maintained across ad systems.JSON-представление |
---|
{ "id_value": string, "id_registry": string, } |
Поля | |
---|---|
id_value | string The Universal Ad ID of the selected creative for the ad. |
id_registry | string A 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-представление |
---|
{ "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 | string The CreativeType attribute on the <StaticResource> node in the VAST if this is a companion of type static. |
height | int32 The height in pixels of this companion. |
width | int32 The width in pixels of this companion. |
resource | string For 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 | string Type of this companion. It can be either static, iframe or HTML. |
ad_slot_id | string The slot ID for this companion. |
api_framework | string The 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-представление |
---|
{ "resource": string, "type": string, "variable_duration": boolean, "ad_parameters": string, } |
Поля | |
---|---|
resource | string The URL to the interactive creative. |
type | string The MIME type of the file provided as the resource. |
variable_duration | boolean Whether this creative may ask for the duration to be extended. |
ad_parameters | string The value of the <AdParameters> node in the VAST. |