Баннерная реклама в 1С-Битрикс - типы, таргетинг, показы
Модуль рекламы показывает баннеры в отведённых местах страниц. При этом он выбирает, какой именно баннер показать конкретному посетителю. Разберём модель типов и ключевых слов - без неё логика выбора кажется непредсказуемой.
Как это работает
Тип рекламы - это зона показа. Ключевая сущность модуля - тип. Это группа баннеров с общим признаком, обычно привязанная к месту на странице. Имя типа задаёт администратор произвольно, и именно строковый идентификатор связывает всё вместе. Он передаётся и в API управления показом, и в компонент вывода. Поэтому идентификатор стоит делать осмысленным.
Выбор баннера решают ключевые слова. У баннера их задают в карточке на вкладке таргетинга. У страницы для этого есть собственный набор слов, заданный в её свойствах. Механизм сопоставляет два набора между собой и выбирает подходящие баннеры внутри типа.
Управлять баннерами можно из публичной части. В режиме правки у рекламной области появляются кнопки управления, и это удобно контент-менеджерам.
Примеры
1. Вывод баннера
$APPLICATION->IncludeComponent('bitrix:advertising.banner', '', [ 'TYPE' => 'TOP', 'NODATA' => 'N', 'CACHE_TIME' => 3600,]);Параметр типа - тот самый строковый идентификатор зоны показа.
2. Управление показом из кода
// желательные ключевые слова: расширяют выборCAdvBanner::SetDesiredKeywords('ноутбуки, техника', 'TOP');
// обязательные: сужают выбор до баннеров с этими словамиCAdvBanner::SetRequiredKeywords('распродажа', 'TOP');Разница принципиальная. Желательные слова повышают шансы подходящих баннеров, а обязательные жёстко фильтруют выборку. Второй аргумент - строковый идентификатор типа, то есть той самой зоны показа.
3. Вставка баннера в текст
Сценарий из практики. В текст статьи ставят метку, а при выводе заменяют её на случайный баннер нужного типа.
$arResult['DETAIL_TEXT'] = preg_replace_callback( '/#BANNER_([A-Za-z0-9-]+)#/', fn($m) => CAdvBanner::GetHTML(CAdvBanner::GetRandom($m[1])), $arResult['DETAIL_TEXT']);Способ замены важен: варианты с исполнением кода в шаблоне подстановки недопустимы. Такой механизм удалён из языка и открывает дыру в безопасности.
Справочник
| Элемент | Назначение | Особенности |
|---|---|---|
| Тип рекламы | зона показа, группа баннеров | строковый идентификатор связывает всё |
| Баннер | сам рекламный материал | ключевые слова на вкладке таргетинга |
| Ключевые слова страницы | контекст выбора | сопоставляются со словами баннеров |
SetDesiredKeywords() | желательные слова | расширяют выбор |
SetRequiredKeywords() | обязательные слова | жёстко фильтруют |
GetRandom() / GetHTML() | случайный баннер и его разметка | для вставки в текст |
bitrix:advertising.banner | вывод баннера | параметр - идентификатор типа |
| Управление из публичной части | кнопки в режиме правки | для контент-менеджеров |
| Гаджеты рабочего стола | виджеты административной панели | отдельная часть модуля |
Частые ошибки
Баннеры не показываются. Чаще всего расходятся идентификаторы типа в компоненте и в настройке баннеров, либо у баннера заданы обязательные ключевые слова, которых нет у страницы.
Путают желательные и обязательные слова. Первые расширяют выбор, вторые сужают его до совпадений.
Идентификаторы типов бессмысленные. Через полгода никто не помнит, что означает тип с абстрактным названием. А фигурирует такой идентификатор и в коде шаблона, и в настройках модуля.
Замену меток в тексте делают исполнением кода. Такой механизм удалён из языка и был небезопасен. Замену в тексте делают через функцию обратного вызова, которой передают найденную метку.
Баннерную область кешируют вместе со страницей. Тогда все посетители видят один и тот же баннер, поэтому в композитном режиме такие блоки выносят в динамическую зону.
Частые вопросы
Что такое тип баннера и зачем он нужен?
Это группа баннеров, которая на практике играет роль зоны показа: шапка, боковая колонка, подвал. Строковый идентификатор типа связывает настройки, код управления показом и компонент вывода, поэтому он должен быть осмысленным. Внутри типа модуль выбирает конкретный баннер по ключевым словам и настройкам показа.
Чем желательные ключевые слова отличаются от обязательных?
Желательные расширяют выбор: баннеры с этими словами получают преимущество, но показаны могут быть и другие. Обязательные работают как фильтр: показываются только баннеры, у которых есть эти слова. Путаница между ними - обычная причина того, что реклама либо не показывается вовсе, либо не совпадает с ожиданиями.
Как показать разные баннеры на разных страницах?
Через ключевые слова: у страницы свой набор, у баннера - свой, и модуль сопоставляет их внутри типа. Программно набор можно задать перед выводом области, указав тип вторым аргументом. Так одна и та же зона показывает разную рекламу в разделах каталога, статьях и на главной.
Почему все посетители видят один баннер?
Скорее всего, область попала в кеш вместе со страницей - и композитный сайт, и обычное кеширование компонента сохраняют результат целиком. Рекламные блоки, которые должны меняться, выносят в динамическую зону композита или выводят без кеширования.
Связанные темы
- Баннерная реклама на сайте: показ, таргетинг, статистика - практика по модулю: зоны, ключевые слова, отчёты
- Баннеры и слайдеры: инфоблок или модуль рекламы - практика вывода баннеров на сайте
- Компоненты 2.0 - кеширование и вывод
- Композитный сайт - динамические зоны
- Маркетинг и SEO - рассылки и продвижение
- Раздел Модули