Skip to content

Вставка рекламы

На этой странице:

  1. Описание
  2. Особенности вставки рекламных роликов во Flussonic
  3. Механизмы вставки рекламы во Flussonic
  4. Как настроить вставку рекламы через авторизационный бэкенд
    1. Пример с HTTP-бэкендом

Описание

Flussonic позволяет вставлять рекламные ролики в сессии проигрывания (play-сессии) и управлять их показом через авторизационный бэкенд.

Вы можете:

1) указать Pre-roll ролик,

2) задать интервал для вставки Mid-roll роликов,

3) указать уникальные для каждого пользователя/просмотра рекламные вставки.

Особенности вставки рекламных роликов во Flussonic

Перед тем, как использовать вставку рекламы во Flussonic, необходимо подготовить рекламные ролики. Ниже вы найдёте особенности и требования, которые стоит принять во внимание перед использованием вставки:

  • Характеристики (media_info) основного и рекламного потоков должны совпадать, т.е. параметры рекламного потока должны быть идентичны параметрам основного потока, иначе Flussonic проигнорирует рекламный ролик и вставки рекламы не произойдёт.

  • Значение GOP рекламного ролика должно соответствовать одной секунде.

  • Первые 1-5 секунд Pre-roll ролика могут пропускаться, в силу особенности работы большинства HLS-плееров. Решение — вставка чёрных кадров в начало ролика.

  • Такие плагины, как AdBlock, могут блокировать рекламные ролики. Если что-то пошло не так, попробуйте отключить плагины.

Механизмы вставки рекламы во Flussonic

Во Flussonic реализовано два механизма вставки рекламы.

Первый механизм вставки рекламы является расширением системы авторизации. Прежде чем продолжить, прочтите основную документацию. Опция работает с протоколами HLS и DASH. Таким образом, если вы попытаетесь проиграть поток с рекламой по другим протоколам, то поток проигрываться не будет. Такие плагины как AdBlock могут блокировать рекламу.

Второй механизм вставки рекламы является улучшенной версией первого и используется по умолчанию. Он значительно затрудняет работу плагинов-блокировщиков рекламы. Его работа основана на замене сегментов потока в play-сессии так, что отличить URL сегмента основного потока от URL рекламного сегмента невозможно. Этот механизм также позволяет персонализировать рекламу для каждого зрителя. Кроме того, этот метод работает как с с моно-, так и мультипериодом DASH.

Ниже вы можете сравнить формат представления URL сегментов основного потока и рекламного:

URL сегмента основного HLS-потока http://FLUSSONIC-IP/STREAM_NAME/tracks-v1a1/2021/09/28/09/27/25-05000.ts?token=adv2user-12312324342
URL сегмента рекламного потока http://FLUSSONIC-IP/STREAM_NAME/tracks-v1a1/2021/09/28/09/27/30-05000.ts?token=adv2user-12312324342

Первый или второй механизм включается добавлением параметра v=1 или v=2 (соответственно) в секцию ad_inject ответа авторизационного бэкенда auth backend (см. пример на PHP).

Особенности вставки рекламных роликов актуальны для обоих механизмов.

Danger

Используйте только те файлы с рекламой, которые находятся в настроенной VOD-локации на сервере Flussonic. Нельзя указывать пути к внешним ресурсам (HTTP) и напрямую к файловой системе сервера. Это значит, что вам сначала необходимо создать VOD-локацию и поместить в неё ролики.

Как настроить вставку рекламы через авторизационный бэкенд

Чтобы настроить вставку рекламы через авторизационный бэкенд:

1) Выберите подходящий язык программирования: PHP или любой другой.

2) Настройте VOD-локацию и поместите туда ваши рекламные ролики.

Warning

Убедитесь, что ваши рекламные видеоролики отвечают выше заявленным требованиям.

vod ad_vod {
  storage /storage;
}

3) Добавьте путь до ваших рекламных роликов в скрипт.

4) Настройте поток, добавив директиву on_play с названием файла скрипта в конфигурационный файл:

stream example_stream {
  url file://vod/bunny.mp4;
  on_play http://IP-ADDRESS:PORT/php-auth-script2.php;
}

5) Убедитесь, что всё работает, проиграв поток по HLS/DASH.

Пример с HTTP-бэкендом

Пример скрипта авторизационного бэкенда на PHP для вставки рекламы. Здесь используется второй механизм с параметром v=2 (для первого механизма конфигурация будет аналогичной, только с v=1):

<?php

header('Content-type: application/json');

$user_ads = [
    "v" => 2,
    "preroll" => "ad_vod/preroll1.mp4",
    "midroll_interval" => 180,
    "midroll" => ["ad_vod/midroll1.mp4", "ad_vod/midroll2.mp4"]
];

echo json_encode(array("ad_inject" => $user_ads));
?>

При такой конфигурации Flussonic Media Server покажет ролик ad_vod/preroll1.mp4 перед просмотром, а затем раз в 3 минуты (180 секунд) будет показывать Mid-roll ролики.