В этом руководстве описывается настройка манипулятора манифеста для запроса рекламных сегментов или сегментов рекламных блоков с использованием метода сегментации рекламных блоков .
Выберите протокол потоковой передачи:
Предварительные требования
Прежде чем продолжить, необходимо настроить событие прямой трансляции для Pod, обслуживающего перенаправление типа динамической вставки рекламы (DAI) и профили кодирования. Для настройки события прямой трансляции выберите один из следующих способов:
- Интерфейс менеджера рекламы: Настройка прямой трансляции для DAI .
- API Ad Manager: Используйте клиентскую библиотеку для вызова метода
LiveStreamEventService.createLiveStreamEvents. Установите параметрLiveStreamEvent.dynamicAdInsertionTypeв значениеPOD_SERVING_REDIRECT. - Аутентификация запросов: Каждый запрос сегмента, выполняемый с использованием перенаправления сегмента при показе подов, должен включать токен, подписанный HMAC, для аутентификации. Этот токен вычисляется один раз для каждой рекламной паузы и используется во всех сеансах потока. Для вычисления токена HMAC см. раздел «Аутентификация запросов рекламных подов» .
После настройки прямой трансляции получите профили кодирования события из пользовательского интерфейса Ad Manager или API, вызвав метод DaiEncodingProfileService.getDaiEncodingProfilesByStatement .
Получить поток контента
Когда пользователь выбирает событие прямой трансляции, клиентское приложение отправляет запрос на получение потока в Google Ad Manager. В ответном потоке приложение извлекает идентификатор сессии Google DAI и метаданные, которые затем включаются в запрос манифеста потока.
В следующем примере идентификатор сессии Google DAI передается в инструмент для работы с манифестами:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
При обработке запроса на воспроизведение видеоконтента сохраните идентификатор сессии Google DAI и CUSTOM_ASSET_KEY из запроса для подготовки к объединению рекламных блоков.
Определите сегменты рекламных пауз и вставьте разрывы.
При обработке каждого варианта манифеста определите в вашем потоке теги EXT-X-CUE-IN и EXT-X-CUE-OUT , указывающие на начало и конец рекламной паузы.
Замените теги EXT-X-CUE-IN и EXT-X-CUE-OUT элементами EXT-X-DISCONTINUITY , чтобы видеоплеер на стороне клиента мог переключаться между контентом и рекламой.
В приведенном ниже примере манифеста заменены теги EXT-X-CUE-IN и EXT-X-CUE-OUT :
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
В следующем примере показан замененный манифест:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Рекламные сегменты Google DAI не зашифрованы. Если ваш контент зашифрован, удалите шифрование, добавив элемент EXT-X-KEY:METHOD=NONE перед первым рекламным сегментом каждого рекламного блока. В конце рекламного блока добавьте шифрование обратно, добавив соответствующий элемент EXT-X-KEY .
Следите за временем начала, продолжительностью и индексом предстоящей рекламной паузы.
Создавайте URL-адреса сегментов рекламы.
Замените каждый сегмент контента между тегами EXT-X-DISCONTINUITY URL-адресом, указывающим на метод сегментирования рекламных блоков.
В следующем примере формируется сегмент рекламного блока. Обратите внимание, что сегменты рекламы используют индексацию, начинающуюся с нуля:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
Следующий пример вставляет сегменты рекламного блока в манифест:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
(Необязательно) Запланируйте рекламную паузу
Для повышения коэффициента заполнения рекламных блоков отправляйте уведомления о ранней рекламной паузе (EABN) с указанием продолжительности рекламного блока, параметров пользовательского таргетинга и данных сигнала SCTE-35. Более подробную информацию см. в разделе «Отправка уведомлений о ранней рекламной паузе» .