Skip to content

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

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

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

Описание

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

Вы можете:

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

2) выбрать, когда нужно вставлять Mid-roll ролики: через равные интервалы времени или в соответствии с метками SCTE35,

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

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

Особенности вставки рекламных роликов во 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 (см. схему API и примеры на PHP).

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

Danger

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

Когда вставлять Mid-roll ролики

Вы можете вставлять Mid-roll ролики одним из двух способов, которые определяются значением параметра midroll_insert_by в скрипте авторизации:

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

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

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

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

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

Warning

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

vod ad_vod {
  storage /storage;
}

3) Добавьте путь до ваших рекламных роликов в скрипт и укажите, когда следует вставлять mid-roll ролики. Ваш авторизационный бекенд должен вернуть структуру JSON, описанную в схеме API. См. примеры на PHP.

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 ролики.

Вставка рекламы по меткам SCTE35:

<?php

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

$user_ads = [
    "v" => 2,
    "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));
?>

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