Настройка врезки рекламы
С Flussonic вы можете настроить серверную врезку рекламы (SSAI) через авторизационный бэкенд.
Подробнее о работе технологии SSAI см. Способы врезки рекламы на стороне сервера.
Note
Потоки с рекламой, врезанной с помощью Flussonic, проигрываются только по протоколам HLS и DASH.
Чтобы настроить врезку рекламы в Flussonic, выполните следующие задачи:
- Подготовка рекламных роликов
- Настройка метода врезки рекламы
- Настройка врезки рекламы по SSAI через авторизационный бэкенд
- Отслеживание событий о показе рекламы зрителям
- Примеры с 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
.