Как динамически блокировать типы рекламы для зон In-stream (видео) ExoClick
В этом руководстве мы продемонстрируем, как динамически блокировать Видео (In-Stream) рекламные кампании в зависимости от типа рекламы.
Этот подход можно реализовать в разных сценариях, но распространённое применение — использовать эту технику, когда вы, как издатель, хотите показывать определённые типы рекламы пользователям, которые дали согласие, при этом блокируя конкретные кампании для тех, кто не принимает условия и положения вашего сайта.
Чтобы проиллюстрировать эту идею, мы создали два фрагмента кода на чистом JS. В первом мы демонстрируем, как блокировать видеорекламу на основе параметров URL. Второй пример моделирует случай, в котором согласие пользователя хранится в локальном хранилище браузера. В обоих случаях мы используем block-ad-types функцию.
Чтобы отображать рекламу In-Stream, мы используем Fluid Player, бесплатный HTML5-плеер с открытым исходным кодом, совместимый с форматами VAST и VPAID.
Имейте в виду, что если у вас другая конфигурация, вам придётся адаптировать этот код под требования вашего плеера. Однако основная логика для
block-ad-typesфункции остаётся той же.
ПРИМЕР 1 — Блокировка типов рекламы In-Stream на основе параметра URL
Это довольно простая логика, которая мало чем отличается от обычной интеграции Fluid Player, в которой сначала загружается стандартный видеоплеер, а затем к нему подключается Fluid Player.
Главное отличие здесь в том, что перед подключением Fluid Player к стандартному видеоплееру мы выполняем проверку параметра URL, где получаем значение для user_verified.
После этого у нас есть оператор if, который задаёт dynamicVastTag переменной значение либо для блокировки NSFW-рекламы для неподтверждённых пользователей, либо для разрешения всей рекламы для подтверждённых пользователей.
После того как эта переменная установлена, мы переходим к загрузке объекта конфигурации Fluid Player, обязательно включая dynamicVastTag переменную как значение для vastTag свойства.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Реклама In Stream (video) | block-ad-types</title>
<!-- Импорт Fluid Player -->
<script src="https://cdn.fluidplayer.com/v3/current/fluidplayer.min.js"></script>
<!-- Инициализация экземпляра Fluid Player -->
<script>
console.log("инициализация Fluid")
var player = fluidPlayer("example-player");
</script>
</head>
<body>
<h1>block-ad-types для рекламы In Stream (video) с использованием параметров URL</h1>
<!-- Обычный <video> плеер -->
<div class="video-wrapper">
<video
id="example-player"
muted
style="width: 50vw; height: 500px; margin: 0 auto; padding: 0"
>
<source
src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
type="video/mp4"
/>
Ваш браузер не поддерживает тег video.
</video>
</div>
<!-- Скрипт, который задаёт конфигурацию Fluid Player -->
<script>
// Функция для получения значения user_verified из параметра URL
const userVerified = new URLSearchParams(window.location.search).get(
"user_verified"
);
// Определение заблокированных типов рекламы на основе параметров URL
let dynamicVastTag =
"https://s.magsrv.com/v1/vast.php?idzone=5532704&block_ad_types=101"; // блокировать NSFW-рекламу
if (userVerified === "1") {
dynamicVastTag = "https://s.magsrv.com/v1/vast.php?idzone=5532704"; // если пользователь подтверждён, показывать всю рекламу
}
var player = fluidPlayer("example-player", {
layoutControls: {
primaryColor: "#FF0000",
timelinePreview: {
file: "thumbnails.vtt",
type: "VTT",
},
controlForwardBackward: {
show: true,
doubleTapMobile: false,
},
},
vastOptions: {
adList: [
{
roll: "preRoll",
vastTag: dynamicVastTag,
timer: 5,
},
],
},
});
</script>
</body>
</html>ПРИМЕР 2 — Блокировка типов рекламы In Stream на основе данных локального хранилища
Эта реализация отличается от предыдущей тем, что для управления согласием пользователя используется локальное хранилище вместо параметров URL. Код модульный, с отдельными функциями для создания видеоплеера и конфигурации Fluid Player.
Параметр <head> раздел HTML содержит три основные функции, которые управляют показом рекламы на основе согласия пользователя:
insertVideoPlayerсоздаёт элемент видеоплеера и добавляет его на веб-страницу.fluidPlayerConfigгенерирует объект конфигурации для Fluid Player. Ключевая логика этой функции заключается в том, как она выбирает URL рекламы: если пользователь не принял условия (false), она добавляет&block_ad_types=101к URL, чтобы блокировать определённую рекламу. Если пользователь принял условия (true), используется стандартный URL, что позволяет показывать всю рекламу.insertFluidPlayerсвязывает всё вместе. Сначала она создаёт видеоплеер с помощью insertVideoPlayer, а затем подключает к нему Fluid Player, используя специальную конфигурацию из playerConfig, адаптированную под согласие пользователя.
В <body>, финальный скрипт проверяет локальное хранилище на наличие согласия пользователя при загрузке страницы и отображает плееры соответствующим образом. Если согласие не было дано, но пользователь позже принимает условия, нажав кнопку, плеер инициализируется заново с обновлёнными правами.
Это было полезно?
