Бесплатный компонент Banner3x - реклама на сайте MODX3 без правки шаблонов
Есть решение
Всем привет!
Хочу показать компонент, который я сделал для своих сайтов на MODX 3 — Banner3x. Это менеджер рекламы: РСЯ, Google AdSense, баннеры прямых рекламодателей, партнерские ссылки CPA-сетей и любой свой код. Все в одном месте и с одной логикой показа.
Зачем
Обычно реклама на сайте выглядит так: код РСЯ вставлен в шаблон, баннер партнера — в чанк,
AdSense — еще куда-то. Поменять блок, убрать рекламу с части страниц или поставить баннер
на месяц — значит лезть в шаблоны. А с 2022 года к этому добавилась маркировка по 38-ФЗ.
Banner3x собирает все это в админку и решает, что, где и когда показать.
Как устроено
Две сущности:
Рекламное место — где и на каких страницах выводить рекламу: позиция, ротация, сколько объявлений показать, таргетинг.
Объявление — что показывать. У объявления есть свой таргетинг, расписание, устройства, вес и статистика.
Автовставка
Самое удобное: шаблоны трогать не нужно. Плагин сам вставляет рекламу:
— перед контентом;
— после N-го абзаца;
— после контента;
— сразу после ``;
— перед `` (удобно для Floor Ad и полноэкранных форматов РСЯ).
Вставка идет на `OnWebPagePrerender`, поэтому работает и на закэшированных страницах, а ротация
и расписание при этом не ломаются. Реклама попадает только в страницы `text/html`:
sitemap.xml, RSS и JSON остаются чистыми. Скрипты РСЯ и AdSense подключаются один раз и только
на тех страницах, где есть такие блоки.
Ручной вывод
Для сайдбара, каталога или карточки товара — место с позицией «Вручную» и сниппет:
или на Fenom:
Место можно указать по ID или по alias. Если показывать нечего, сниппет вернет пустую строку,
без обертки — проверять «есть ли реклама» не нужно.
Возможности
— Типы рекламы: баннер, CPA-ссылка (AdvCake, Leads.su, Admitad и др.), блок РСЯ,
блок AdSense, свой HTML/JS.
— РСЯ: достаточно ввести ID блока вида `R-A-123456-1`, код соберется сам. Нужен Floor Ad
или другой особый формат — вставляете свой код из кабинета Яндекса.
— Таргетинг у мест и у объявлений: контексты, шаблоны, разделы на любой глубине,
«только на этих страницах», «кроме этих страниц». Условия складываются через И.
— Ротация: случайно, по весу, по порядку.
— Расписание: дата начала и окончания показа.
— Устройства: все, только десктоп, только мобильные.
— Маркировка по 38-ФЗ: `erid` дописывается в ссылку, под баннером — подпись
«Реклама · Рекламодатель · erid: …». Текст «Реклама» меняется в настройках.
— Статистика: показы у всех типов, клики и CTR у баннеров и CPA-ссылок. Клик идет через счетчик,
редирект только на адрес из базы (открытого редиректа нет). Показы и клики поисковых роботов
(по User-Agent) и запросы без User-Agent не засчитываются.
— Мультиязычность и мультисайтовость: таргетинг по контекстам — в `web` одна реклама, в `en` другая.
Админка
Админка сделана без ExtJS: HTMX + UIkit 3 + Tabulator. Четыре таба:
«Объявления», «Рекламные места», «Настройки» и «Документация» — документация лежит прямо в компоненте, искать ее не нужно.
Для менеджеров без sudo (неограниченные права) есть политика доступа `Banner3xUserPolicy` с правами на просмотр, сохранение и удаление. Права проверяются на сервере, в каждом процессоре, а не только скрытием кнопок.
Требования
— MODX 3.x
— PHP 8.2+
— pdoTools 3 с включенным Fenom (для стандартных чанков)
— Пакет: https://extras.modx.com/package/banner3x
0
Хочу показать компонент, который я сделал для своих сайтов на MODX 3 — Banner3x. Это менеджер рекламы: РСЯ, Google AdSense, баннеры прямых рекламодателей, партнерские ссылки CPA-сетей и любой свой код. Все в одном месте и с одной логикой показа.
Зачем
Обычно реклама на сайте выглядит так: код РСЯ вставлен в шаблон, баннер партнера — в чанк,
AdSense — еще куда-то. Поменять блок, убрать рекламу с части страниц или поставить баннер
на месяц — значит лезть в шаблоны. А с 2022 года к этому добавилась маркировка по 38-ФЗ.
Banner3x собирает все это в админку и решает, что, где и когда показать.
Как устроено
Две сущности:
Рекламное место — где и на каких страницах выводить рекламу: позиция, ротация, сколько объявлений показать, таргетинг.
Объявление — что показывать. У объявления есть свой таргетинг, расписание, устройства, вес и статистика.
Автовставка
Самое удобное: шаблоны трогать не нужно. Плагин сам вставляет рекламу:
— перед контентом;
— после N-го абзаца;
— после контента;
— сразу после ``;
— перед `` (удобно для Floor Ad и полноэкранных форматов РСЯ).
Вставка идет на `OnWebPagePrerender`, поэтому работает и на закэшированных страницах, а ротация
и расписание при этом не ломаются. Реклама попадает только в страницы `text/html`:
sitemap.xml, RSS и JSON остаются чистыми. Скрипты РСЯ и AdSense подключаются один раз и только
на тех страницах, где есть такие блоки.
Ручной вывод
Для сайдбара, каталога или карточки товара — место с позицией «Вручную» и сниппет:
[[!banner3x? &place=`sidebar`]]или на Fenom:
{'!banner3x' | snippet : ['place' => 'sidebar']}Место можно указать по ID или по alias. Если показывать нечего, сниппет вернет пустую строку,
без обертки — проверять «есть ли реклама» не нужно.
Возможности
— Типы рекламы: баннер, CPA-ссылка (AdvCake, Leads.su, Admitad и др.), блок РСЯ,
блок AdSense, свой HTML/JS.
— РСЯ: достаточно ввести ID блока вида `R-A-123456-1`, код соберется сам. Нужен Floor Ad
или другой особый формат — вставляете свой код из кабинета Яндекса.
— Таргетинг у мест и у объявлений: контексты, шаблоны, разделы на любой глубине,
«только на этих страницах», «кроме этих страниц». Условия складываются через И.
— Ротация: случайно, по весу, по порядку.
— Расписание: дата начала и окончания показа.
— Устройства: все, только десктоп, только мобильные.
— Маркировка по 38-ФЗ: `erid` дописывается в ссылку, под баннером — подпись
«Реклама · Рекламодатель · erid: …». Текст «Реклама» меняется в настройках.
— Статистика: показы у всех типов, клики и CTR у баннеров и CPA-ссылок. Клик идет через счетчик,
редирект только на адрес из базы (открытого редиректа нет). Показы и клики поисковых роботов
(по User-Agent) и запросы без User-Agent не засчитываются.
— Мультиязычность и мультисайтовость: таргетинг по контекстам — в `web` одна реклама, в `en` другая.
Админка
Админка сделана без ExtJS: HTMX + UIkit 3 + Tabulator. Четыре таба:
«Объявления», «Рекламные места», «Настройки» и «Документация» — документация лежит прямо в компоненте, искать ее не нужно.
Для менеджеров без sudo (неограниченные права) есть политика доступа `Banner3xUserPolicy` с правами на просмотр, сохранение и удаление. Права проверяются на сервере, в каждом процессоре, а не только скрытием кнопок.
Требования
— MODX 3.x
— PHP 8.2+
— pdoTools 3 с включенным Fenom (для стандартных чанков)
— Пакет: https://extras.modx.com/package/banner3x
Комментарии: 0