API Google DAI позволяет реализовывать потоки с поддержкой Google DAI в средах, где реализация IMA SDK не поддерживается. Мы рекомендуем вам по-прежнему использовать IMA на платформах, где поддерживается IMA SDK.
Мы рекомендуем использовать DAI API на следующих платформах:
- Смарт-телевизор Samsung (Тизен)
- LG телевизор
- HbbTV
- Xbox (приложения Javascript)
- КайОС
API поддерживает основные функции, предоставляемые IMA DAI SDK. По конкретным вопросам о совместимости или поддерживаемых функциях обратитесь к своему менеджеру аккаунта Google.
Внедрение DAI API для потоков VOD
API DAI поддерживает потоки VOD с использованием протоколов HLS и DASH. Действия, описанные в этом руководстве, применимы к обоим протоколам.
Чтобы интегрировать API в ваше приложение для потоков VOD, выполните следующие шаги:
Запросите поток, выполнив вызов POST к конечной точке потока:
Пример тела запроса:
https://dai.google.com/ondemand/v1/dash/content/2559737/vid/tos-dash/stream { key1 : "value1", stream_parameter1 : "value2" }
Пример тела ответа:
{ "stream_id":"d32f8920-612a-4d46-8bc7-d73fd6c17c85", "total_duration":636.458, "content_duration":596.458, "valid_for":"8h0m0s", "valid_until":"2020-06-04T20:39:41.274707306-07:00", "stream_manifest":"https://dai.google.com/ondemand/dash/content/2559737/vid/tos-dash/ATL/streams/d32f8920-612a-4d46-8bc7-d73fd6c17c85/manifest.mpd", "media_verification_url":"https://dai.google.com/view/p/service/vod/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/loc/ATL/network/124319096/content/2559737/vid/tos-dash/media/", "ad_breaks":[ { "type":"pre", "start":0, "duration":10, "ads":[ { "seq":1, "duration":10, "title":"External NCA1C1L1 Preroll", "description":"External NCA1C1L1 Preroll ad", "clickthrough_url":"https://dai.google.com/ondemand/v1/dash/content/2474148/vid/bbb-clear/location/ATL/stream/d32f8920-612a-4d46-8bc7-d73fd6c17c85/videoclick/5489259204425938365", "events":[ { "time":0.1, "type":"start" }, { "time":2.5, "type":"firstquartile" }, { "time":4.75, "type":"midpoint" }, { "time":7.5, "type":"thirdquartile" }, { "time":9, "type":"complete" } ] } ] }, { "type":"mid", "start":45, "duration":10, "ads":[ {.... } ] } ] }, { "type":"post", "start":626.458, "duration":10, "ads":[...] } ] }
Ошибка ответа
В случае ошибок возвращаются стандартные коды ошибок HTTP без тела ответа JSON.
Проанализируйте ответ JSON и сохраните следующие значения:
-
stream_id
-
stream_manifest
-
media_verification_url
-
ad_breaks
-
Чтобы выполнить проверку носителя, прослушайте события ID3:
- Сохраняйте медиа-события в очереди, сохраняя каждый медиа-идентификатор вместе с его меткой времени (если отображается проигрывателем).
- При каждом обновлении от проигрывателя или с заданной частотой (рекомендуется 500 мс) проверяйте очередь мультимедийных событий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с указателем воспроизведения.
- Для медиа-событий, воспроизведение которых вы подтверждаете, отслеживайте, добавляя идентификатор мультимедиа к конечной точке проверки мультимедиа и отправляя запрос GET.
Пример тела запроса:
https://dai.google.com/view/p/service/linear/stream/c6bbee18-0d20-4c55-b071-efdf3a81da33:ATL/loc/ATL/network/51636543/event/0ndl1dJcRmKDUPxTRjvdog/media/
Примеры ответов:
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
Вы можете проверить отслеживание событий в Stream Activity Monitor .
Необязательно: используйте данные
ad_breaks
из ответа на создание потока, чтобы узнать, какой тип события был запущен.Удалите медиа-событие из очереди.
Ограничения
При использовании API в веб-просмотрах в отношении таргетинга применяются следующие ограничения:
- UserAgent: параметр пользовательского агента передается как значение, специфичное для браузера, а не базовой платформы.
-
rdid
,idtype
,is_lat
: идентификатор устройства передается неправильно, что ограничивает следующие функции:- Ограничение частоты показов
- Последовательная ротация объявлений
- Сегментация и таргетинг аудитории
Лучшие практики
Сопоставление тегов ID3 с соответствующим типом событий при использовании VOD утомительно. Используйте возвращенную информацию ad_breaks
в формате JSON для прямого поиска события, как если бы вы это делали с живым контентом.