API Google DAI позволяет использовать потоки с поддержкой Google DAI в средах, где не поддерживается использование SDK IMA. Мы рекомендуем по-прежнему использовать IMA на платформах, где поддерживается SDK IMA.
Мы рекомендуем использовать API DAI на следующих платформах:
- Смарт-телевизор Samsung (Tizen)
- Телевизор LG
- HbbTV
- Xbox (приложения на JavaScript)
- КайОС
API поддерживает базовые возможности, предоставляемые SDK IMA DAI. По вопросам совместимости или поддерживаемых функций обращайтесь к своему менеджеру аккаунта Google.
Реализуйте API DAI для прямых трансляций.
API DAI поддерживает линейные (LIVE) потоки с использованием протоколов HLS и DASH. Описанные в этом руководстве шаги применимы к обоим протоколам.
Для интеграции API в ваше приложение для прямых трансляций выполните следующие шаги:
1. Запросить трансляцию
Для запроса прямой трансляции через API DAI выполните POST-запрос к конечной точке потока. JSON-ответ будет содержать манифест потока, а также связанные с ним конечные точки и значения API DAI.
Пример текста запроса
https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream
{
"key1" : "value1",
"stream_parameter1" : "value2"
}
Пример текста ответа
{
"stream_id":"c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/session",
"polling_frequency":10
}
Ответ с ошибкой
В случае ошибок возвращаются стандартные коды ошибок HTTP без тела ответа в формате JSON.
Проанализируйте JSON-ответ и сохраните следующие значения:
- stream_id
- Это значение можно использовать для идентификации возвращаемого потока.
- stream_manifest
- Этот URL-адрес передается вашему медиаплееру для воспроизведения потока.
- media_verification_url
- Этот URL-адрес является базовой конечной точкой для отслеживания событий воспроизведения.
- metadata_url
- Этот URL-адрес используется для периодического получения информации о предстоящих трансляциях.
- session_update_url
- Этот URL-адрес используется для обновления параметров запроса потока, отправленных во время первоначального запроса потока. Обратите внимание, что параметры этого запроса заменяют все параметры, установленные для предыдущего потока.
- частота опроса
- Частота (в секундах) запросов на обновление метаданных рекламной паузы из API DAI.
2. Опрос для получения новых метаданных для рекламной паузы.
Установите таймер для опроса новых метаданных AdBreak с заданной частотой, используя URL-адрес метаданных. Если интервал не указан в ответе потока, рекомендуемый интервал по умолчанию составляет 10 секунд.
Для оптимизации полосы пропускания выполните следующие действия:
- Выполните первоначальный
GETзапрос к конечной точкеmetadata_url.- Параметр запроса
delta_tokenследует опустить. Этот процесс позволяет серверу вернуть полные метаданные для окна цифрового видеорегистратора (DVR) потока. Окно DVR содержит временной интервал трансляции, доступный для перемотки и воспроизведения зрителем. Ответ включает поле объектаnext_delta_token.
- Параметр запроса
- Храните метаданные на стороне клиента.
- Последующие вызовы следует выполнять, используя значение
next_delta_token, полученное из последнего ответа. Каждый ответ содержит значениеnext_delta_token. Всегда отправляйте последнее полученное значение. - Обновите сохраненные метаданные, чтобы объединить изменения и удалить устаревшие рекламные блоки.
Не пытайтесь анализировать, создавать или изменять дельта-токен. Формат токена может измениться. Сохраните полученный токен и передайте его обратно в неизмененном виде в следующем запросе.
Пример первоначального запроса
Первоначальный запрос не принимает параметров и возвращает полные метаданные:
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata
Пример последующего запроса
Каждый последующий запрос передает значение next_delta_token из предыдущего ответа в качестве параметра delta_token . Ответ содержит следующее:
- Реклама
- Рекламные паузы
- Теги, которые сервер добавил или обновил с момента выдачи токена.
- Список
obsolete_ad_break_idsрекламных блоков, которые необходимо удалить из сохраненных метаданных.
Сервер пропускает рекламные паузы, которые не изменились. В следующем примере показан последующий опрос с использованием дельта-токена для получения только этих последних изменений:
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata?delta_token=eyJyYW5nZXMiOlt7InMiOjEsImUiOjJ9XX0
В случае успеха вы увидите результат, похожий на следующий:
{
"next_delta_token": "eyJyYW5nZXMiOlt7InMiOjEsImUiOjN9XX0",
"obsolete_ad_break_ids": ["0003069407"],
"tags":{
"google_1022389921":{
"ad":"0003069408_ad1",
"ad_break_id":"0003069408",
"type":"start"
},
...
},
"ads":{
"0003069408_ad1":{
"ad_break_id":"0003069408",
"position":1,
"duration":10.01,
"title":"External - Pod Midroll 1",
...
}
},
"ad_breaks":{
"0003069408":{
"type":"mid",
"duration":30,
"expected_duration":30,
"ads":3
}
}
}
3. Прослушивание событий ID3 и событий воспроизведения треков.
Для проверки того, что в видеопотоке произошли определенные события, выполните следующие действия для обработки событий ID3:
- Сохраняйте медиасобытия в очереди, сохраняя идентификатор каждого медиафайла вместе с его временной меткой (если он отображается плеером).
- При каждом обновлении времени воспроизведения плеером или с заданной частотой (рекомендуется 500 мс) проверяйте очередь медиасобытий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с положением указателя воспроизведения.
- Для медиасобытий, воспроизведение которых вы подтвердили, проверьте их тип, найдя идентификатор медиафайла в сохраненных тегах рекламных пауз. Имейте в виду, что сохраненные теги содержат только префикс идентификатора медиафайла, поэтому точное совпадение невозможно.
- Поскольку ваше приложение видеоплеера периодически опрашивает URL-адрес метаданных, может возникнуть задержка между моментом, когда видеоплеер обнаруживает тег ID3 в потоке, и моментом, когда становятся доступны связанные с ним метаданные. Если тег ID3 не найден в сохраненных тегах, поместите тег в очередь и обработайте его повторно после следующего опроса метаданных. Сохраняйте событие в очереди до завершения обработки.
- После того, как вы найдете тег в метаданных, сравните поле
typeтега с типами рекламных событий, перечисленными в следующем разделе. Чтобы отслеживать, воспроизводится ли рекламная пауза в видеоплеере, используйте события со значениемprogressиз поляtype. Не отправляйте эти события на конечную точку проверки медиафайлов. Для всех остальных типов событий добавьте идентификатор медиафайла к конечной точке проверки медиафайлов и выполнитеGETзапрос для отслеживания воспроизведения. - Удалить медиасобытие из очереди.
типы рекламных событий
Каждый тег в объекте tags имеет один из следующих типов событий:
| Тип события | Описание |
|---|---|
start | Запускается в начале рекламного ролика. |
firstquartile | Возвращается в конце первого квартиля рекламного ролика. |
midpoint | Размещается в середине рекламного ролика. |
thirdquartile | Транслируется в конце третьего квартиля рекламного ролика. |
complete | Возвращается в конце рекламного ролика. |
progress | Эта функция периодически запускается во время рекламной паузы, чтобы сигнализировать о начале воспроизведения рекламной паузы. Не отправляйте эти события на конечную точку проверки медиаконтента. |
Пример запроса
https://dai.google.com/view/p/service/linear/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/google_1022389921
Примеры ответов
Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict
Проверить события отслеживания можно в Мониторе активности потока .
4. Обновите параметры сессии прямой трансляции.
После создания потока вам может потребоваться изменить параметры сессии. Для этого отправьте запрос на URL-адрес обновления сессии.
Пример текста запроса
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/session
{
key1 : "value1",
stream_parameter1 : "value2"
}
Пример текста ответа
Successful response would be to look for - HTTP/1.1 200
Ограничения
При использовании API в веб-представлениях действуют следующие ограничения в отношении таргетинга:
- UserAgent: Параметр user agent передается как значение, специфичное для браузера, а не для базовой платформы.
-
rdid,idtype,is_lat: Идентификатор устройства передается некорректно, что ограничивает возможности следующих функций:- Ограничение частоты
- Последовательная ротация рекламы
- Сегментация и таргетинг аудитории
Передовые методы
Следует помнить, что конечная точка метаданных для индексов потокового видео основана на префиксе соответствующего тега ID3. Это сделано намеренно, чтобы предотвратить использование конечной точки метаданных для немедленной отправки пинга всем узлам проверки.
Дополнительные ресурсы
,API Google DAI позволяет использовать потоки с поддержкой Google DAI в средах, где не поддерживается использование SDK IMA. Мы рекомендуем по-прежнему использовать IMA на платформах, где поддерживается SDK IMA.
Мы рекомендуем использовать API DAI на следующих платформах:
- Смарт-телевизор Samsung (Tizen)
- Телевизор LG
- HbbTV
- Xbox (приложения на JavaScript)
- КайОС
API поддерживает базовые возможности, предоставляемые SDK IMA DAI. По вопросам совместимости или поддерживаемых функций обращайтесь к своему менеджеру аккаунта Google.
Реализуйте API DAI для прямых трансляций.
API DAI поддерживает линейные (LIVE) потоки с использованием протоколов HLS и DASH. Описанные в этом руководстве шаги применимы к обоим протоколам.
Для интеграции API в ваше приложение для прямых трансляций выполните следующие шаги:
1. Запросить трансляцию
Для запроса прямой трансляции через API DAI выполните POST-запрос к конечной точке потока. JSON-ответ будет содержать манифест потока, а также связанные с ним конечные точки и значения API DAI.
Пример текста запроса
https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream
{
"key1" : "value1",
"stream_parameter1" : "value2"
}
Пример текста ответа
{
"stream_id":"c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/session",
"polling_frequency":10
}
Ответ с ошибкой
В случае ошибок возвращаются стандартные коды ошибок HTTP без тела ответа в формате JSON.
Проанализируйте JSON-ответ и сохраните следующие значения:
- stream_id
- Это значение можно использовать для идентификации возвращаемого потока.
- stream_manifest
- Этот URL-адрес передается вашему медиаплееру для воспроизведения потока.
- media_verification_url
- Этот URL-адрес является базовой конечной точкой для отслеживания событий воспроизведения.
- metadata_url
- Этот URL-адрес используется для периодического получения информации о предстоящих трансляциях.
- session_update_url
- Этот URL-адрес используется для обновления параметров запроса потока, отправленных во время первоначального запроса потока. Обратите внимание, что параметры этого запроса заменяют все параметры, установленные для предыдущего потока.
- частота опроса
- Частота (в секундах) запросов на обновление метаданных рекламной паузы из API DAI.
2. Опрос для получения новых метаданных для рекламной паузы.
Установите таймер для опроса новых метаданных AdBreak с заданной частотой, используя URL-адрес метаданных. Если интервал не указан в ответе потока, рекомендуемый интервал по умолчанию составляет 10 секунд.
Для оптимизации полосы пропускания выполните следующие действия:
- Выполните первоначальный
GETзапрос к конечной точкеmetadata_url.- Параметр запроса
delta_tokenследует опустить. Этот процесс позволяет серверу вернуть полные метаданные для окна цифрового видеорегистратора (DVR) потока. Окно DVR содержит временной интервал трансляции, доступный для перемотки и воспроизведения зрителем. Ответ включает поле объектаnext_delta_token.
- Параметр запроса
- Храните метаданные на стороне клиента.
- Последующие вызовы следует выполнять, используя значение
next_delta_token, полученное из последнего ответа. Каждый ответ содержит значениеnext_delta_token. Всегда отправляйте последнее полученное значение. - Обновите сохраненные метаданные, чтобы объединить изменения и удалить устаревшие рекламные блоки.
Не пытайтесь анализировать, создавать или изменять дельта-токен. Формат токена может измениться. Сохраните полученный токен и передайте его обратно в неизмененном виде в следующем запросе.
Пример первоначального запроса
Первоначальный запрос не принимает параметров и возвращает полные метаданные:
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata
Пример последующего запроса
Каждый последующий запрос передает значение next_delta_token из предыдущего ответа в качестве параметра delta_token . Ответ содержит следующее:
- Реклама
- Рекламные паузы
- Теги, которые сервер добавил или обновил с момента выдачи токена.
- Список
obsolete_ad_break_idsрекламных блоков, которые необходимо удалить из сохраненных метаданных.
Сервер пропускает рекламные паузы, которые не изменились. В следующем примере показан последующий опрос с использованием дельта-токена для получения только этих последних изменений:
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata?delta_token=eyJyYW5nZXMiOlt7InMiOjEsImUiOjJ9XX0
В случае успеха вы увидите результат, похожий на следующий:
{
"next_delta_token": "eyJyYW5nZXMiOlt7InMiOjEsImUiOjN9XX0",
"obsolete_ad_break_ids": ["0003069407"],
"tags":{
"google_1022389921":{
"ad":"0003069408_ad1",
"ad_break_id":"0003069408",
"type":"start"
},
...
},
"ads":{
"0003069408_ad1":{
"ad_break_id":"0003069408",
"position":1,
"duration":10.01,
"title":"External - Pod Midroll 1",
...
}
},
"ad_breaks":{
"0003069408":{
"type":"mid",
"duration":30,
"expected_duration":30,
"ads":3
}
}
}
3. Прослушивание событий ID3 и событий воспроизведения треков.
Для проверки того, что в видеопотоке произошли определенные события, выполните следующие действия для обработки событий ID3:
- Сохраняйте медиасобытия в очереди, сохраняя идентификатор каждого медиафайла вместе с его временной меткой (если он отображается плеером).
- При каждом обновлении времени воспроизведения плеером или с заданной частотой (рекомендуется 500 мс) проверяйте очередь медиасобытий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с положением указателя воспроизведения.
- Для медиасобытий, воспроизведение которых вы подтвердили, проверьте их тип, найдя идентификатор медиафайла в сохраненных тегах рекламных пауз. Имейте в виду, что сохраненные теги содержат только префикс идентификатора медиафайла, поэтому точное совпадение невозможно.
- Поскольку ваше приложение видеоплеера периодически опрашивает URL-адрес метаданных, может возникнуть задержка между моментом, когда видеоплеер обнаруживает тег ID3 в потоке, и моментом, когда становятся доступны связанные с ним метаданные. Если тег ID3 не найден в сохраненных тегах, поместите тег в очередь и обработайте его повторно после следующего опроса метаданных. Сохраняйте событие в очереди до завершения обработки.
- После того, как вы найдете тег в метаданных, сравните поле
typeтега с типами рекламных событий, перечисленными в следующем разделе. Чтобы отслеживать, воспроизводится ли рекламная пауза в видеоплеере, используйте события со значениемprogressиз поляtype. Не отправляйте эти события на конечную точку проверки медиафайлов. Для всех остальных типов событий добавьте идентификатор медиафайла к конечной точке проверки медиафайлов и выполнитеGETзапрос для отслеживания воспроизведения. - Удалить медиасобытие из очереди.
типы рекламных событий
Каждый тег в объекте tags имеет один из следующих типов событий:
| Тип события | Описание |
|---|---|
start | Запускается в начале рекламного ролика. |
firstquartile | Возвращается в конце первого квартиля рекламного ролика. |
midpoint | Размещается в середине рекламного ролика. |
thirdquartile | Транслируется в конце третьего квартиля рекламного ролика. |
complete | Возвращается в конце рекламного ролика. |
progress | Эта функция периодически запускается во время рекламной паузы, чтобы сигнализировать о начале воспроизведения рекламной паузы. Не отправляйте эти события на конечную точку проверки медиаконтента. |
Пример запроса
https://dai.google.com/view/p/service/linear/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/google_1022389921
Примеры ответов
Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict
Проверить события отслеживания можно в Мониторе активности потока .
4. Обновите параметры сессии прямой трансляции.
После создания потока вам может потребоваться изменить параметры сессии. Для этого отправьте запрос на URL-адрес обновления сессии.
Пример текста запроса
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/session
{
key1 : "value1",
stream_parameter1 : "value2"
}
Пример текста ответа
Successful response would be to look for - HTTP/1.1 200
Ограничения
При использовании API в веб-представлениях действуют следующие ограничения в отношении таргетинга:
- UserAgent: Параметр user agent передается как значение, специфичное для браузера, а не для базовой платформы.
-
rdid,idtype,is_lat: Идентификатор устройства передается некорректно, что ограничивает возможности следующих функций:- Ограничение частоты
- Последовательная ротация рекламы
- Сегментация и таргетинг аудитории
Передовые методы
Следует помнить, что конечная точка метаданных для индексов потокового видео основана на префиксе соответствующего тега ID3. Это сделано намеренно, чтобы предотвратить использование конечной точки метаданных для немедленной отправки пинга всем узлам проверки.
Дополнительные ресурсы
,API Google DAI позволяет использовать потоки с поддержкой Google DAI в средах, где не поддерживается использование SDK IMA. Мы рекомендуем по-прежнему использовать IMA на платформах, где поддерживается SDK IMA.
Мы рекомендуем использовать API DAI на следующих платформах:
- Смарт-телевизор Samsung (Tizen)
- Телевизор LG
- HbbTV
- Xbox (приложения на JavaScript)
- КайОС
API поддерживает базовые возможности, предоставляемые SDK IMA DAI. По вопросам совместимости или поддерживаемых функций обращайтесь к своему менеджеру аккаунта Google.
Реализуйте API DAI для прямых трансляций.
API DAI поддерживает линейные (LIVE) потоки с использованием протоколов HLS и DASH. Описанные в этом руководстве шаги применимы к обоим протоколам.
Для интеграции API в ваше приложение для прямых трансляций выполните следующие шаги:
1. Запросить трансляцию
Для запроса прямой трансляции через API DAI выполните POST-запрос к конечной точке потока. JSON-ответ будет содержать манифест потока, а также связанные с ним конечные точки и значения API DAI.
Пример текста запроса
https://dai.google.com/linear/v1/dash/event/0ndl1dJcRmKDUPxTRjvdog/stream
{
"key1" : "value1",
"stream_parameter1" : "value2"
}
Пример текста ответа
{
"stream_id":"c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS",
"stream_manifest":"https://dai.google.com/linear/dash/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/manifest.mpd",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/",
"metadata_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/session",
"polling_frequency":10
}
Ответ с ошибкой
В случае ошибок возвращаются стандартные коды ошибок HTTP без тела ответа в формате JSON.
Проанализируйте JSON-ответ и сохраните следующие значения:
- stream_id
- Это значение можно использовать для идентификации возвращаемого потока.
- stream_manifest
- Этот URL-адрес передается вашему медиаплееру для воспроизведения потока.
- media_verification_url
- Этот URL-адрес является базовой конечной точкой для отслеживания событий воспроизведения.
- metadata_url
- Этот URL-адрес используется для периодического получения информации о предстоящих трансляциях.
- session_update_url
- Этот URL-адрес используется для обновления параметров запроса потока, отправленных во время первоначального запроса потока. Обратите внимание, что параметры этого запроса заменяют все параметры, установленные для предыдущего потока.
- частота опроса
- Частота (в секундах) запросов на обновление метаданных рекламной паузы из API DAI.
2. Опрос для получения новых метаданных для рекламной паузы.
Установите таймер для опроса новых метаданных AdBreak с заданной частотой, используя URL-адрес метаданных. Если интервал не указан в ответе потока, рекомендуемый интервал по умолчанию составляет 10 секунд.
Для оптимизации полосы пропускания выполните следующие действия:
- Выполните первоначальный
GETзапрос к конечной точкеmetadata_url.- Параметр запроса
delta_tokenследует опустить. Этот процесс позволяет серверу вернуть полные метаданные для окна цифрового видеорегистратора (DVR) потока. Окно DVR содержит временной интервал трансляции, доступный для перемотки и воспроизведения зрителем. Ответ включает поле объектаnext_delta_token.
- Параметр запроса
- Храните метаданные на стороне клиента.
- Последующие вызовы следует выполнять, используя значение
next_delta_token, полученное из последнего ответа. Каждый ответ содержит значениеnext_delta_token. Всегда отправляйте последнее полученное значение. - Обновите сохраненные метаданные, чтобы объединить изменения и удалить устаревшие рекламные блоки.
Не пытайтесь анализировать, создавать или изменять дельта-токен. Формат токена может измениться. Сохраните полученный токен и передайте его обратно в неизмененном виде в следующем запросе.
Пример первоначального запроса
Первоначальный запрос не принимает параметров и возвращает полные метаданные:
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata
Пример последующего запроса
Каждый последующий запрос передает значение next_delta_token из предыдущего ответа в качестве параметра delta_token . Ответ содержит следующее:
- Реклама
- Рекламные паузы
- Теги, которые сервер добавил или обновил с момента выдачи токена.
- Список
obsolete_ad_break_idsрекламных блоков, которые необходимо удалить из сохраненных метаданных.
Сервер пропускает рекламные паузы, которые не изменились. В следующем примере показан последующий опрос с использованием дельта-токена для получения только этих последних изменений:
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/metadata?delta_token=eyJyYW5nZXMiOlt7InMiOjEsImUiOjJ9XX0
В случае успеха вы увидите результат, похожий на следующий:
{
"next_delta_token": "eyJyYW5nZXMiOlt7InMiOjEsImUiOjN9XX0",
"obsolete_ad_break_ids": ["0003069407"],
"tags":{
"google_1022389921":{
"ad":"0003069408_ad1",
"ad_break_id":"0003069408",
"type":"start"
},
...
},
"ads":{
"0003069408_ad1":{
"ad_break_id":"0003069408",
"position":1,
"duration":10.01,
"title":"External - Pod Midroll 1",
...
}
},
"ad_breaks":{
"0003069408":{
"type":"mid",
"duration":30,
"expected_duration":30,
"ads":3
}
}
}
3. Прослушивание событий ID3 и событий воспроизведения треков.
Для проверки того, что в видеопотоке произошли определенные события, выполните следующие действия для обработки событий ID3:
- Сохраняйте медиасобытия в очереди, сохраняя идентификатор каждого медиафайла вместе с его временной меткой (если он отображается плеером).
- При каждом обновлении времени воспроизведения плеером или с заданной частотой (рекомендуется 500 мс) проверяйте очередь медиасобытий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с положением указателя воспроизведения.
- Для медиасобытий, воспроизведение которых вы подтвердили, проверьте их тип, найдя идентификатор медиафайла в сохраненных тегах рекламных пауз. Имейте в виду, что сохраненные теги содержат только префикс идентификатора медиафайла, поэтому точное совпадение невозможно.
- Поскольку ваше приложение видеоплеера периодически опрашивает URL-адрес метаданных, может возникнуть задержка между моментом, когда видеоплеер обнаруживает тег ID3 в потоке, и моментом, когда становятся доступны связанные с ним метаданные. Если тег ID3 не найден в сохраненных тегах, поместите тег в очередь и обработайте его повторно после следующего опроса метаданных. Сохраняйте событие в очереди до завершения обработки.
- После того, как вы найдете тег в метаданных, сравните поле
typeтега с типами рекламных событий, перечисленными в следующем разделе. Чтобы отслеживать, воспроизводится ли рекламная пауза в видеоплеере, используйте события со значениемprogressиз поляtype. Не отправляйте эти события на конечную точку проверки медиафайлов. Для всех остальных типов событий добавьте идентификатор медиафайла к конечной точке проверки медиафайлов и выполнитеGETзапрос для отслеживания воспроизведения. - Удалить медиасобытие из очереди.
типы рекламных событий
Каждый тег в объекте tags имеет один из следующих типов событий:
| Тип события | Описание |
|---|---|
start | Запускается в начале рекламного ролика. |
firstquartile | Возвращается в конце первого квартиля рекламного ролика. |
midpoint | Размещается в середине рекламного ролика. |
thirdquartile | Транслируется в конце третьего квартиля рекламного ролика. |
complete | Возвращается в конце рекламного ролика. |
progress | Эта функция периодически запускается во время рекламной паузы, чтобы сигнализировать о начале воспроизведения рекламной паузы. Не отправляйте эти события на конечную точку проверки медиаконтента. |
Пример запроса
https://dai.google.com/view/p/service/linear/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/google_1022389921
Примеры ответов
Accepted for asynchronous verification - HTTP/1.1 202 Accepted
Successful empty response - HTTP/1.1 204 No Content
Media verification not found - HTTP/1.1 404 Not Found
Media verification sent by someone else - HTTP/1.1 409 Conflict
Проверить события отслеживания можно в Мониторе активности потока .
4. Обновите параметры сессии прямой трансляции.
После создания потока вам может потребоваться изменить параметры сессии. Для этого отправьте запрос на URL-адрес обновления сессии.
Пример текста запроса
https://dai.google.com/linear/v1/pa/event/0ndl1dJcRmKDUPxTRjvdog/stream/c4a5dad5-aaa8-4550-8acb-7cda3cdb21bb:DLS/session
{
key1 : "value1",
stream_parameter1 : "value2"
}
Пример текста ответа
Successful response would be to look for - HTTP/1.1 200
Ограничения
При использовании API в веб-представлениях действуют следующие ограничения в отношении таргетинга:
- UserAgent: Параметр user agent передается как значение, специфичное для браузера, а не для базовой платформы.
-
rdid,idtype,is_lat: Идентификатор устройства передается некорректно, что ограничивает возможности следующих функций:- Ограничение частоты
- Последовательная ротация рекламы
- Сегментация и таргетинг аудитории
Передовые методы
Следует помнить, что конечная точка метаданных для индексов потокового видео основана на префиксе соответствующего тега ID3. Это сделано намеренно, чтобы предотвратить использование конечной точки метаданных для немедленной отправки пинга всем узлам проверки.