Skip to content

Настройка врезки рекламы

С Flussonic вы можете настроить серверную врезку рекламы (SSAI) через авторизационный бэкенд.

Подробнее о работе технологии SSAI см. Способы врезки рекламы на стороне сервера.

Note

Потоки с рекламой, врезанной с помощью Flussonic, проигрываются только по протоколам HLS и DASH.

Чтобы настроить врезку рекламы в Flussonic, выполните следующие задачи:

  1. Подготовка рекламных роликов
  2. Настройка метода врезки рекламы
  3. Настройка врезки рекламы по SSAI через авторизационный бэкенд
  4. Отслеживание событий о показе рекламы зрителям
  5. Примеры с HTTP-бэкендом

Подготовка рекламных роликов

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

  • Характеристики (media_info) основного и рекламного потоков должны совпадать. Параметры рекламного потока должны быть идентичны параметрам основного потока, иначе Flussonic проигнорирует рекламный ролик и не врежет его.
  • Значение GOP рекламного ролика должно соответствовать одной секунде.
  • Первые 1-5 секунд преролла могут пропускаться, из-за особенности работы большинства HLS-плееров. В таком случае вставьте несколько чёрных кадров в начало ролика.
  • Такие плагины, как AdBlock, могут блокировать рекламные ролики. Если что-то пошло не так, попробуйте отключить плагины.

Настройка метода врезки рекламы

Вы можете врезать мидроллы одним из двух методов: через равные интервалы времени или по SCTE-меткам. Метод определяется значением параметра midroll_insert_by в скрипте авторизации:

  • midroll_insert_by=interval. Ролики врезаются через равные интервалы времени. В авторизационном скрипте задайте также параметр midroll_interval, в котором укажите значение интервала в секундах. Этот способ используется по умолчанию.
  • midroll_insert_by=splicing. Ролики врезаются согласно меткам SCTE-35, если они присутствуют во входном потоке. Читайте о том, как включить чтение меток во входном потоке.

Настройка врезки рекламы по SSAI через авторизационный бэкенд

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

1) Подготовьте рекламные ролики согласно требованиям.

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

Danger

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

vod ad_vod {
  storage /storage;
}

3) Определите список роликов, которые Flussonic будет врезать в каждую зрительскую сесссию просмотра. Для этого расширьте веб-сервис, отвечающий за авторизацию зрителей, написав скрипт и добавив следующие параметры:

  • путь до рекламных роликов: VOD_LOCATION/FILENAME.mp4,
  • способ врезки рекламы подробнее:

    • v=1 — реклама вставляется в основной поток в виде отдельных сегментов.
    • v=2 — реклама врезается в сегменты основного потока. Работает с HLS, а также моно- и мультипериодом DASH. Используется по умолчанию.
  • метод врезки рекламы:

    • по расписанию: midroll_insert_by=interval:
    • midroll_interval=180 — интервал для показа мидроллов,
    • по SCTE-меткам: midroll_insert_by=splicing.

Ваш авторизационный бекенд должен вернуть структуру JSON, описанную в схеме API. Пример скрипта см. в разделе Примеры с HTTP-бэкендом.

4) Добавьте директиву on_play с названием файла скрипта в настройки потока:

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

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

Отслеживание событий о показе рекламы зрителям

Собирайте статистику по показам рекламы, настроив логирование события ad_inject с помощью event_sink.

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

Ниже приведены примеры PHP-скрипта авторизационного бэкенда для врезки рекламы по SSAI.

Врезка рекламы по SSAI по расписанию:

<?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));
?>

, где:

  • "v" => 2 — врезка рекламы в сегменты основного потока,
  • "preroll" => "ad_vod/preroll1.mp4" — путь к VOD-локации с прероллом,
  • "midroll_insert_by" => "interval" — метод врезки рекламы по расписанию,
  • "midroll_interval" => 180 — интервал для показа мидроллов,
  • "midroll" => ["ad_vod/midroll1.mp4", "ad_vod/midroll2.mp4"] — список мидроллов для врезки.

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

Врезка рекламы по SSAI по меткам SCTE-35:

<?php

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

$user_ads = [
    "v" => 1,
    "preroll" => "ad_vod/preroll1.mp4",
    "midroll_insert_by" => "splicing",
    "midroll" => ["ad_vod/midroll1.mp4", "ad_vod/midroll2.mp4"]
];

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

, где:

  • "v" => 1 — врезка рекламы в виде отдельных сегментов,
  • "preroll" => "ad_vod/preroll1.mp4" — путь к VOD-локации с прероллом,
  • "midroll_insert_by" => "splicing" — метод врезки рекламы по SCTE-меткам,
  • "midroll" => ["ad_vod/midroll1.mp4", "ad_vod/midroll2.mp4"] — список мидроллов для врезки.

При такой конфигурации Flussonic Media Server покажет ролик ad_vod/preroll1.mp4 перед просмотром, а затем при появлении меток SCTE-35 Flussonic будет показывать все перечисленные мидроллы до окончания рекламного блока. Ролики проигрываются циклически в том порядке, в котором они указаны в списке midroll.