Skip to content

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

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

  1. Описание
  2. Особенности вставки рекламных роликов во Flussonic
  3. Механизмы вставки рекламы во Flussonic
  4. Как настроить вставку рекламы через авторизационный бэкенд
    1. Пример на Lua
    2. Пример с 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. Таким образом, если Вы попытаетесь проиграть поток с рекламой по другим протоколам, то поток проигрываться не будет.

По умолчанию используется первый механизм.

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

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

Ниже Вы можете сравнить формат представления 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

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

Danger

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

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

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

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

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

Warning

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


file ad_vod {
  path /storage;
}

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

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


stream example_stream {
  url fake://;
  auth ad2.lua;
}

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

Пример на Lua

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

  • Вариант с первым механизмом:
user_ads = {
      ['preroll'] = 'ad_vod/preroll1.mp4',
      ['midroll_interval'] = 180,
      ['midroll'] = {'ad_vod/midroll1.mp4','ad_vod/midroll2.mp4'}
    }
    return true, {['ad_inject'] = user_ads}
  • Вариант со вторым механизмом (добавление параметра v=2):
user_ads = {
      ['v'] = 2,
      ['preroll'] = 'ad_vod/preroll1.mp4',
      ['midroll_interval'] = 180,
      ['midroll'] = {'ad_vod/midroll1.mp4','ad_vod/midroll2.mp4'}
    }
    return true, {['ad_inject'] = user_ads, auth_time = 30}

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

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

Пример авторизационного бэкенда на PHP с реализацией передачи pre-roll/mid-roll:

  • Вариант с первым механизмом:
<?php

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

$user_ads = [
    "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):
<?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 ролики.