Баннер не показывается - разбор причин
Баннер заведён в модуле рекламы, тип создан, картинка загружена, а на странице пусто: ни разметки, ни ссылки. Разбираем причины по убыванию частоты, начиная с того, доходит ли дело до отбора баннера внутри типа.
С чего начать
Первая проверка делит причины пополам. С одной стороны стоит компонент вывода: он может не вызваться вовсе, вызваться без указанного типа рекламы или оказаться недоступным в младшей редакции продукта. С другой стороны стоит отбор баннера внутри типа: активность, период показа, лимиты и ключевые слова.
Ставим маркеры вокруг вызова компонента:
var_dump(\Bitrix\Main\Loader::includeModule('advertising')); // в младших редакциях модуля нетecho '<!-- зона MAIN_TOP: начало -->';$APPLICATION->IncludeComponent('bitrix:advertising.banner', '', [ 'TYPE' => 'MAIN_TOP', // строковый идентификатор типа рекламы, он же зона показа]);echo '<!-- зона MAIN_TOP: конец -->';Маркеры уходят в исходный код страницы и отвечают на главный вопрос сразу. Пустота между ними означает, что компонент отработал и не выбрал ни одного баннера, а это уже совсем другая половина причин.
Смотрим отданную посетителю страницу:
curl -s 'https://example.com/' | grep -n 'зона MAIN_TOP'# ни одного маркера - код зоны не выполнялся: шаблон, кэш или редакция продукта# два маркера подряд - компонент отработал, но баннер не прошёл отборВетка без маркеров ведёт к шаблону сайта, к кэшу страницы и к лицензии. Ветка с пустотой между маркерами ведёт к карточке самого баннера, и первое, что проверяют на ней, - совпадение ключевых слов.
Сверяем настройки в админке по этому пути:
Маркетинг -> Баннерная реклама -> Типы баннеров - тип, он же зона показаМаркетинг -> Баннерная реклама -> Баннеры - активность, даты, ключевые словаПубличная часть -> режим правки - кнопки управления рекламной областьюТип задаёт администратор произвольно, и именно его идентификатор связывает настройки с кодом. Из публичной части рекламную область правит контент-менеджер, не открывая административный раздел.
Снимаем ключевые слова как причину:
// подставляем ключевые слова самого баннера, вторым аргументом - тип рекламыCAdvBanner::SetDesiredKeywords(array('Partners', 'Cooperation'), 'MAIN_TOP');CAdvBanner::SetRequiredKeywords(array('Partners'), 'MAIN_TOP');Обычно система вызывает оба метода сама при сборке страницы. Здесь явный вызов нужен ровно затем, чтобы проверить одну гипотезу: вернётся ли баннер в зону при заведомо совпадающем наборе слов.
Логика отбора по словам такая:
Страница: desired = [Partners, Cooperation, Company]Баннер A: keywords = [Company] -> показ ДА (совпало одно слово, логика ИЛИ)Баннер B: keywords = [News] -> показ НЕТ (совпадений нет вовсе)
Страница: required = [Partners, Cooperation]Баннер C: keywords = [Partners] -> показ НЕТ (не хватает Cooperation, логика И)Желательные слова работают по ИЛИ и только расширяют выбор, обязательные работают по И и жёстко фильтруют его. При обязательных словах без совпадений показываются баннеры, у которых ключевых слов нет вовсе.
Проверяем композитную копию страницы:
ls /home/bitrix/www/bitrix/html_pages/example.com/ | headphp -f /home/bitrix/www/bitrix/modules/main/tools/cron_html_pages.php 10# папку композита не удаляют руками: кэш сбрасывают из админки или этим скриптомГотовая страница композита отдаётся посетителю до выполнения кода зоны. Пока копия жива, в браузере видна разметка, собранная ещё до появления баннера, и правки в карточке на неё никак не влияют.
Причины
-
Компонент выводится без указанного типа рекламы примерно 30% случаев
ПризнакВ шаблоне вызов баннера стоит, а в отданной странице между маркерами пусто.
ПроверкаСверяем строковый идентификатор типа в параметрах компонента и в карточке самого баннера.
Что делатьЗадаём тип рекламы в настройках компонента: из дистрибутива он приходит ненастроенным и молчит.
-
Баннер неактивен или вышел из периода показа примерно 22% случаев
ПризнакБаннер работал раньше и пропал сам по себе, без единой правки шаблона.
ПроверкаСмотрим признак активности и обе даты показа в карточке баннера, а не вёрстку.
Что делатьВключаем баннер и продлеваем дату окончания либо очищаем её, если срок не нужен.
-
Обязательные ключевые слова не совпали со словами страницы примерно 18% случаев
ПризнакНа одной странице баннер виден, а на соседней странице той же зоны его нет.
ПроверкаПодставляем ключевые слова баннера прямо из кода и смотрим, вернулся ли он в зону.
Что делатьПереводим набор в желательные слова либо задаём странице свойство adv_desired_target_keywords.
-
Исчерпан лимит показов или переходов примерно 12% случаев
ПризнакБаннер исчез после всплеска трафика, хотя даты показа ещё не закончились.
ПроверкаСмотрим остаток показов и переходов в карточке баннера рядом с настройками ротации.
Что делатьПоднимаем лимит или снимаем его совсем, если ограничение пришло из старого контракта.
-
Баннер привязан к другому сайту или другой группе посетителей примерно 10% случаев
ПризнакНа одном домене многосайтовой сборки баннер виден, а на втором домене его нет.
ПроверкаПроверяем список сайтов и групп в карточке баннера, а страницу открываем гостем.
Что делатьДобавляем нужный сайт в привязку и открываем показ группе неавторизованных посетителей.
-
Страница отдаётся из кэша со старой разметкой примерно 8% случаев
ПризнакВ админке баннер сохранён и активен, а в браузере страница остаётся прежней.
ПроверкаСбрасываем кэш компонента из админки и повторяем проверку маркеров на той же странице.
Что делатьВыносим зону баннера из композита либо подгружаем её отдельным запросом после загрузки.
Частые вопросы
Поставил компонент «Баннер», а на странице ничего нет. Что настроить?
Из дистрибутива компонент приходит ненастроенным и в таком виде не выводит ничего. В параметрах задают тип рекламы - тот же строковый идентификатор, что стоит в карточке баннера. Пока типы в компоненте и в баннере не совпадут, зона останется пустой.
В админке нет раздела «Баннерная реклама» - куда он делся?
Модуль рекламы недоступен в младших редакциях: «Старт», «Стандарт», «Малый бизнес». Раздела в меню там нет, и компонент в шаблоне тоже не заработает. На таких лицензиях баннеры выводят из инфоблока обычным списком.
Баннер виден на одной странице и пропадает на соседней. Почему?
Работают ключевые слова страницы. Если слова для рекламы явно не заданы, система берёт свойство adv_desired_target_keywords, а при его отсутствии - обычное SEO-свойство keywords. Поэтому таргетинг неожиданно начинает зависеть от мета-тегов конкретной страницы.
Где в шаблоне advertising.banner формируется разметка баннера?
Готовую разметку собирает сам модуль и кладёт в результат работы компонента. Шаблон её только выводит, поэтому править вёрстку баннера в шаблоне компонента почти негде: содержимое и ссылку меняют в карточке баннера.
Правки в баннере не видны на сайте, хотя в админке всё сохранено.
Страница отдаётся из кэша компонента или из готовой композитной копии. Кэш сбрасывают из админки, а копии композита - штатным сбросом, а не удалением папки руками. Зону со счётчиком показов из композита лучше вынести совсем.
Смежное
- Баннерная реклама - оглавление подтемы
- Баннерная реклама в 1С-Битрикс: типы, таргетинг, показы - устройство модуля целиком
- Баннеры и слайдеры: инфоблок или модуль рекламы - чем выводить баннер и что выбрать
- Шаблон сайта не применяется: разбор причин - когда до зоны баннера не доходит дело
- Правка не видна на сайте: какой кэш сбросить - разбор кэшей по слоям
- Композитный сайт: включение, динамические области, сброс - почему зона отдаётся до кода
- Группы пользователей: назначение, срок действия, автоматизация - кому виден баннер с привязкой к группе
- Второй сайт на одном ядре: домен, папка, шаблон, общие данные - привязка баннера к сайту многосайтовой сборки
- Компоненты 2.0: устройство, шаблоны, кеш - параметры и кэш компонента вывода
- Баннеры на сайте: тип рекламы, вывод и период показа - как зона настраивается с нуля
- Таргетинг и статистика баннеров: ключевые слова, показы, переходы - разбор ключевых слов и счётчиков