Управление прямыми трансляциями DAI

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 секунд.

Для оптимизации полосы пропускания выполните следующие действия:

  1. Выполните первоначальный GET запрос к конечной точке metadata_url .
    • Параметр запроса delta_token следует опустить. Этот процесс позволяет серверу вернуть полные метаданные для окна цифрового видеорегистратора (DVR) потока. Окно DVR содержит временной интервал трансляции, доступный для перемотки и воспроизведения зрителем. Ответ включает поле объекта next_delta_token .
  2. Храните метаданные на стороне клиента.
  3. Последующие вызовы следует выполнять, используя значение next_delta_token , полученное из последнего ответа. Каждый ответ содержит значение next_delta_token . Всегда отправляйте последнее полученное значение.
  4. Обновите сохраненные метаданные, чтобы объединить изменения и удалить устаревшие рекламные блоки.

Не пытайтесь анализировать, создавать или изменять дельта-токен. Формат токена может измениться. Сохраните полученный токен и передайте его обратно в неизмененном виде в следующем запросе.

Пример первоначального запроса

Первоначальный запрос не принимает параметров и возвращает полные метаданные:

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:

  1. Сохраняйте медиасобытия в очереди, сохраняя идентификатор каждого медиафайла вместе с его временной меткой (если он отображается плеером).
  2. При каждом обновлении времени воспроизведения плеером или с заданной частотой (рекомендуется 500 мс) проверяйте очередь медиасобытий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с положением указателя воспроизведения.
  3. Для медиасобытий, воспроизведение которых вы подтвердили, проверьте их тип, найдя идентификатор медиафайла в сохраненных тегах рекламных пауз. Имейте в виду, что сохраненные теги содержат только префикс идентификатора медиафайла, поэтому точное совпадение невозможно.
  4. Поскольку ваше приложение видеоплеера периодически опрашивает URL-адрес метаданных, может возникнуть задержка между моментом, когда видеоплеер обнаруживает тег ID3 в потоке, и моментом, когда становятся доступны связанные с ним метаданные. Если тег ID3 не найден в сохраненных тегах, поместите тег в очередь и обработайте его повторно после следующего опроса метаданных. Сохраняйте событие в очереди до завершения обработки.
  5. После того, как вы найдете тег в метаданных, сравните поле type тега с типами рекламных событий, перечисленными в следующем разделе. Чтобы отслеживать, воспроизводится ли рекламная пауза в видеоплеере, используйте события со значением progress из поля type . Не отправляйте эти события на конечную точку проверки медиафайлов. Для всех остальных типов событий добавьте идентификатор медиафайла к конечной точке проверки медиафайлов и выполните GET запрос для отслеживания воспроизведения.
  6. Удалить медиасобытие из очереди.

типы рекламных событий

Каждый тег в объекте 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 секунд.

Для оптимизации полосы пропускания выполните следующие действия:

  1. Выполните первоначальный GET запрос к конечной точке metadata_url .
    • Параметр запроса delta_token следует опустить. Этот процесс позволяет серверу вернуть полные метаданные для окна цифрового видеорегистратора (DVR) потока. Окно DVR содержит временной интервал трансляции, доступный для перемотки и воспроизведения зрителем. Ответ включает поле объекта next_delta_token .
  2. Храните метаданные на стороне клиента.
  3. Последующие вызовы следует выполнять, используя значение next_delta_token , полученное из последнего ответа. Каждый ответ содержит значение next_delta_token . Всегда отправляйте последнее полученное значение.
  4. Обновите сохраненные метаданные, чтобы объединить изменения и удалить устаревшие рекламные блоки.

Не пытайтесь анализировать, создавать или изменять дельта-токен. Формат токена может измениться. Сохраните полученный токен и передайте его обратно в неизмененном виде в следующем запросе.

Пример первоначального запроса

Первоначальный запрос не принимает параметров и возвращает полные метаданные:

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:

  1. Сохраняйте медиасобытия в очереди, сохраняя идентификатор каждого медиафайла вместе с его временной меткой (если он отображается плеером).
  2. При каждом обновлении времени воспроизведения плеером или с заданной частотой (рекомендуется 500 мс) проверяйте очередь медиасобытий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с положением указателя воспроизведения.
  3. Для медиасобытий, воспроизведение которых вы подтвердили, проверьте их тип, найдя идентификатор медиафайла в сохраненных тегах рекламных пауз. Имейте в виду, что сохраненные теги содержат только префикс идентификатора медиафайла, поэтому точное совпадение невозможно.
  4. Поскольку ваше приложение видеоплеера периодически опрашивает URL-адрес метаданных, может возникнуть задержка между моментом, когда видеоплеер обнаруживает тег ID3 в потоке, и моментом, когда становятся доступны связанные с ним метаданные. Если тег ID3 не найден в сохраненных тегах, поместите тег в очередь и обработайте его повторно после следующего опроса метаданных. Сохраняйте событие в очереди до завершения обработки.
  5. После того, как вы найдете тег в метаданных, сравните поле type тега с типами рекламных событий, перечисленными в следующем разделе. Чтобы отслеживать, воспроизводится ли рекламная пауза в видеоплеере, используйте события со значением progress из поля type . Не отправляйте эти события на конечную точку проверки медиафайлов. Для всех остальных типов событий добавьте идентификатор медиафайла к конечной точке проверки медиафайлов и выполните GET запрос для отслеживания воспроизведения.
  6. Удалить медиасобытие из очереди.

типы рекламных событий

Каждый тег в объекте 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 секунд.

Для оптимизации полосы пропускания выполните следующие действия:

  1. Выполните первоначальный GET запрос к конечной точке metadata_url .
    • Параметр запроса delta_token следует опустить. Этот процесс позволяет серверу вернуть полные метаданные для окна цифрового видеорегистратора (DVR) потока. Окно DVR содержит временной интервал трансляции, доступный для перемотки и воспроизведения зрителем. Ответ включает поле объекта next_delta_token .
  2. Храните метаданные на стороне клиента.
  3. Последующие вызовы следует выполнять, используя значение next_delta_token , полученное из последнего ответа. Каждый ответ содержит значение next_delta_token . Всегда отправляйте последнее полученное значение.
  4. Обновите сохраненные метаданные, чтобы объединить изменения и удалить устаревшие рекламные блоки.

Не пытайтесь анализировать, создавать или изменять дельта-токен. Формат токена может измениться. Сохраните полученный токен и передайте его обратно в неизмененном виде в следующем запросе.

Пример первоначального запроса

Первоначальный запрос не принимает параметров и возвращает полные метаданные:

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:

  1. Сохраняйте медиасобытия в очереди, сохраняя идентификатор каждого медиафайла вместе с его временной меткой (если он отображается плеером).
  2. При каждом обновлении времени воспроизведения плеером или с заданной частотой (рекомендуется 500 мс) проверяйте очередь медиасобытий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с положением указателя воспроизведения.
  3. Для медиасобытий, воспроизведение которых вы подтвердили, проверьте их тип, найдя идентификатор медиафайла в сохраненных тегах рекламных пауз. Имейте в виду, что сохраненные теги содержат только префикс идентификатора медиафайла, поэтому точное совпадение невозможно.
  4. Поскольку ваше приложение видеоплеера периодически опрашивает URL-адрес метаданных, может возникнуть задержка между моментом, когда видеоплеер обнаруживает тег ID3 в потоке, и моментом, когда становятся доступны связанные с ним метаданные. Если тег ID3 не найден в сохраненных тегах, поместите тег в очередь и обработайте его повторно после следующего опроса метаданных. Сохраняйте событие в очереди до завершения обработки.
  5. После того, как вы найдете тег в метаданных, сравните поле type тега с типами рекламных событий, перечисленными в следующем разделе. Чтобы отслеживать, воспроизводится ли рекламная пауза в видеоплеере, используйте события со значением progress из поля type . Не отправляйте эти события на конечную точку проверки медиафайлов. Для всех остальных типов событий добавьте идентификатор медиафайла к конечной точке проверки медиафайлов и выполните GET запрос для отслеживания воспроизведения.
  6. Удалить медиасобытие из очереди.

типы рекламных событий

Каждый тег в объекте 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. Это сделано намеренно, чтобы предотвратить использование конечной точки метаданных для немедленной отправки пинга всем узлам проверки.

Дополнительные ресурсы