API динамической вставки рекламы для потоков VOD

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, выполните следующие шаги:

  1. Запросите поток, выполнив вызов 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.

  2. Проанализируйте ответ JSON и сохраните следующие значения:

    • stream_id
    • stream_manifest
    • media_verification_url
    • ad_breaks
  3. Чтобы выполнить проверку носителя, прослушайте события ID3:

    1. Сохраняйте медиа-события в очереди, сохраняя каждый медиа-идентификатор вместе с его меткой времени (если отображается проигрывателем).
    2. При каждом обновлении от проигрывателя или с заданной частотой (рекомендуется 500 мс) проверяйте очередь мультимедийных событий на наличие недавно воспроизведенных событий, сравнивая временные метки событий с указателем воспроизведения.
    3. Для медиа-событий, воспроизведение которых вы подтвердили, отслеживайте воспроизведение, добавляя идентификатор мультимедиа к конечной точке проверки мультимедиа и отправляя запрос 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 .

  4. Необязательно: используйте данные ad_breaks из ответа на создание потока, чтобы узнать, какой тип события был запущен.

  5. Удалите медиа-событие из очереди.

Ограничения

При использовании API в веб-просмотрах в отношении таргетинга применяются следующие ограничения:

  • UserAgent: параметр пользовательского агента передается как значение, специфичное для браузера, а не базовой платформы.
  • rdid , idtype , is_lat : идентификатор устройства передается неправильно, что ограничивает следующие функции:
    • Ограничение частоты показов
    • Последовательная ротация объявлений
    • Сегментация и таргетинг аудитории

Лучшие практики

Сопоставление тегов ID3 ​​с соответствующим типом событий при использовании VOD утомительно. Используйте возвращенную информацию ad_breaks в формате JSON для прямого поиска события, как если бы вы это делали с живым контентом.

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