Skip to content
  1. Компоненты
  2. BannerPro
  3. Админка

Админка

Откройте Компоненты → BannerPro (manager/?a=index&namespace=bannerpro). Контроллер BannerProIndexManagerController монтирует Vue 3-приложение в #bannerpro-mgr-app и передаёт конфиг в window.bannerproConfig.

Нужен VueTools. Без него страница покажет предупреждение и не загрузит PrimeVue-компоненты.

Главный экран BannerPro

Вкладки зависят от прав ACL:

ВкладкаКогда видна
БаннерыЕсть bannerpro_save или bannerpro_remove (не режим «только статистика»)
ПозицииТо же
СтатистикаЕсть bannerpro_stats
ЖурналЕсть bannerpro_save
НастройкиЕсть bannerpro_save

Контент прокручивается в области #modx-content менеджера MODX. Таблицы PrimeVue не создают отдельный вертикальный скролл.

Права доступа

PermissionЧто разрешает
viewОткрывает компонент в менеджере
bannerpro_saveСоздаёт и редактирует баннеры, позиции, связи, порядок, вес, журнал, вкладку «Настройки»
bannerpro_removeУдаляет баннеры и позиции
bannerpro_statsСтатистика, графики, экспорт CSV, сводка за 7 дней

Без bannerpro_save кнопки создания и редактирования скрыты. Connector вернёт HTTP 403 при прямой попытке изменить данные.

Режим «только статистика»

Если у пользователя есть bannerpro_stats, но нет bannerpro_save и bannerpro_remove, открывается только вкладка Статистика. Вкладки «Баннеры» и «Позиции» скрыты.

saveremovestatsUI
1**Полный доступ
001Только «Статистика»

Сводка «Последние 7 дней»

Над списком баннеров (при bannerpro_stats) виджет показывает KPI за последние 7 дней:

МетрикаСмысл
КликиУникальные клики (IP + баннер + позиция, раз в сутки)
ПоказыУникальные показы при включённом учёте
CTRКлики / показы
ЗаказыКонверсии MiniShop3 с атрибуцией BannerPro
CVRЗаказы / клики

Кнопка Подробнее переключает на вкладку «Статистика».

Чеклист первой настройки

На вкладке Баннеры (пока шаги не выполнены и панель не скрыта) отображается блок «Настройка BannerPro».

ПунктУсловие «готово»Куда ведёт кнопка
ПозицииЕсть хотя бы одна позицияВкладка «Позиции»
БаннерыЕсть хотя бы один баннерВкладка «Баннеры»
ПривязкиЕсть хотя бы одна связь баннер↔позицияВкладка «Баннеры»
ClickoutПлагин BannerProClickout включёнБез кнопки
ПоказыОпциональное предупреждение, если bannerpro_track_impressions = НетВкладка «Настройки»

После выполнения обязательных пунктов панель можно скрыть. Состояние хранится в localStorage (bannerpro_setup_dismissed=1).

Панель видна, пока хотя бы один пункт не в статусе «готово». Пункт Clickout не имеет кнопки перехода: включите плагин BannerProClickout в Элементы → Плагины. Пункт Показы появляется только при bannerpro_track_impressions = Нет. На скриншотах ниже панель уже скрыта после настройки демо-стенда.

Вкладка «Баннеры»

Список баннеров

Список

  • Серверная пагинация: 10 / 20 / 50 / 100 строк
  • Сортировка по колонкам
  • Поиск по названию и описанию
  • Подсказка: двойной клик по строке открывает редактирование
  • Empty state: «Баннеров пока нет» с кнопкой создания (при bannerpro_save)

Колонки строки:

ЭлементСодержимое
ЧекбоксВыбор для массовых действий
БаннерМиниатюра или тип HTML, название, ID, URL (id) pagetitle, категория MS3
Клики · заказыСчётчики кликов и конверсий MS3
РасписаниеКраткий статус периода / часов
ДействияРедактировать, дублировать, вкл/выкл, удалить

Неактивные баннеры визуально приглушены.

Фильтры

Базовые:

ФильтрЗначения
АктивенВсе / Да / Нет
ТипВсе / Изображение / HTML
ПозицияВсе или одна позиция
ПоискНазвание и описание

Расширенные (аккордеон):

ФильтрЗначения
ТоварВсе / без товара (глобальные) / конкретный товар (autocomplete)
Категория MS3Autocomplete категории
МеткаSuggest по существующим тегам

Кнопка сброса очищает все фильтры. Фильтр on_schedule (показ по расписанию «сейчас») есть в connector, в UI не выведен.

Панель действий

ДействиеОписание
Новый баннерSplitButton: основная кнопка создаёт пустой баннер
Создать из шаблонаПункт меню SplitButton: диалог выбора preset из bannerpro_ad_templates
ОбновитьПерезагрузка списка
РедактироватьИконка карандаша или двойной клик
ДублироватьКопия с теми же позициями, idx и весом. К названию добавляется « (копия)»
Вкл / ВыклПереключает active без открытия формы
УдалитьConfirmDialog, затем ads_remove

Без позиций создание, шаблон и редактирование покажут предупреждение: сначала создайте позицию.

Создание из шаблона

SplitButton Новый баннерСоздать из шаблона открывает диалог TemplatePicker:

ЭлементПоведение
Сетка карточекPreset из таблицы bannerpro_ad_templates: имя, тип (image/html), чанк tpl
ВыборКлик по карточке. Двойной клик — выбрать и подтвердить
КнопкиОтмена, Выбрать (активна после выбора карточки)

После подтверждения connector вызывает ads_create_from_template, открывает форму баннера с заполненными полями и пишет запись в журнал (create_from_template). REST: POST /ads/from-template при включённой записи API.

Выбор шаблона баннера

Массовые действия

Массовый выбор баннеров

Выберите строки чекбоксами. Появится панель:

КнопкаДействие
Включитьads_bulk_enable
Выключитьads_bulk_disable
Добавить к позициямДиалог MultiSelect позиций
УдалитьConfirmDialog → ads_bulk_remove

Лимит одной bulk-операции: 100 баннеров.

Назначение позиций

В диалоге назначения позиций:

  • MultiSelect: одна или несколько позиций
  • Чекбокс «Заменить текущие позиции»: снимает старые связи и ставит выбранные. Без флажка позиции добавляются к существующим

Подтверждение удаления

Диалог баннера

Форма разбита на три вкладки. Тип (изображение / HTML) переключается сегментированными кнопками.

Вкладка «Основное»

Форма баннера: Основное

ПолеОписание
НазваниеВнутреннее имя баннера
АктивенToggle показа на сайте
ТипИзображение или HTML
ИзображениеБраузер медиа + превью. Для типа «Изображение»
Источник файловMedia Source (расширенный блок). По умолчанию из конфига менеджера
HTMLКод баннера. При заполненном URL оборачивается в ссылку клика
Превью HTMLiframe sandbox
URLAutocomplete ресурса MODX или внешний адрес. Поддерживает плейсхолдеры клика
ОписаниеТекст для alt / title / своего чанка
ПозицииMultiSelect рекламных позиций

Редактирование существующего баннера

Вкладка «Показ»

Форма баннера: Показ

ПолеОписание
Начало / КонецПериод показа. Пусто = без ограничения
Пресеты расписанияРабочие 9–18 (пн–пт, 9–18) и Круглосуточно (сброс дней и часов)
Дни неделиMultiSelect 1–7 (пн–вс)
ЧасыMultiSelect 0–23 (show_hours)
Статус «Сейчас»Показывается / вне расписания (по часам браузера менеджера)
Лимит кликовmax_clicks, 0 = без лимита
Лимит показовmax_impressions, 0 = без лимита

При достижении лимита баннер скрывается на сайте. Флаг active не сбрасывается.

Вкладка «Таргетинг»

Форма баннера: Таргетинг

ПолеОписание
СтраницаКонкретный ресурс (target_resource_id)
РазделДочерние страницы родителя (target_parent_id)
МеткиChips + suggest. Фильтр сниппета &tags=
Товар MiniShop3MultiSelect на один товар. Поиск до 200 записей
Подставить URLПишет [[~{id}]] в поле URL
ОтвязатьСбрасывает product_id
Категория MiniShop3Баннер для товаров категории. Взаимоисключимо с товаром

Страница и раздел нельзя задать одновременно: заполнение одного блокирует другое. Товар и категория тоже нельзя сочетать.

Пикер товара не загружает весь каталог. Без фильтра показывает первые 200 опубликованных msProduct. При редактировании привязанный товар остаётся в списке, даже если не попал в текущую выборку.

Пикер товара MiniShop3

Что попадает на сайт

Для каждой пары «баннер + позиция» создаётся запись byAdPosition с полем idx (порядок). В шаблоне используйте плейсхолдер adposition: ID этой связи для ссылки клика, не ID баннера.

Вкладка «Позиции»

Позиция задаёт логический слот на сайте: sidebar, header, shop-product-sidebar.

Список позиций

Список

  • Пагинация 10 / 20 / 50 / 100
  • Колонки: название, ID, контекст (или «все контексты»), клики
  • Действия справа: редактировать, дублировать, удалить
  • Двойной клик открывает форму
  • Empty state при пустом списке
ДействиеЧто делает
СоздатьИмя позиции и опционально context_key
РедактироватьИмя, контекст и список баннеров в позиции
ДублироватьКопия с теми же баннерами, порядком и весом
УдалитьУдаляет позицию и связи с баннерами

Контекст (context_key): ключ MODX (web, mgr, …). Пустое поле: позиция во всех контекстах. На сайте сниппет фильтрует по текущему контексту. Явный override: &context= в сниппете. Подробнее: Интеграция.

Баннеры в позиции

Новая позиция

Редактирование позиции: порядок и вес

В диалоге редактирования позиции:

ДействиеОписание
Добавить баннерВыбор из списка, исключая уже привязанные
Удалить из позицииСнимает связь byAdPosition
ПорядокDrag-and-drop строк обновляет idx
Весweight ≥ 1 для sortby=weighted на сайте

Имя позиции для сниппета стабильнее ID:

fenom
{'!BannerPro' | snippet : ['positionName' => 'sidebar', 'tpl' => 'byAd']}
modx
[[!BannerPro?
  &positionName=`sidebar`
  &tpl=`byAd`
]]

Альтернатива: числовой параметр &position= (ID из списка).

Вкладка «Статистика»

Доступна при праве bannerpro_stats.

Статистика: обзор

Сравнение с прошлой неделей

Фильтры и KPI

ЭлементОписание
ПериодВсё время, сегодня, последние 7 дней, эта/прошлая неделя, текущий/прошлый месяц, текущий год
ПозицияВсе позиции или одна
Сравнить с прошлой неделейToggle виден при периоде Эта неделя (или если сравнение уже включено). Два ряда на графике, % delta на KPI, CompareLineChart
Экспорт CSVСводка за выбранный период (stats_export, type report)

KPI: клики, показы, CTR, заказы, CVR. Подсказки на карточках объясняют правила учёта.

Блоки ниже фильтров:

БлокСодержимое
График по днямКлики, показы, заказы (StatsLineChart или CompareLineChart)
ВоронкаПоказ → клик → заказ (+ CTR / CVR)

Вкладки статистики

ВкладкаСодержимое
ОбзорТоп баннеров: клики, показы, заказы, CTR. Серверная пагинация 10 / 20 / 50
КликиСтолбчатый график по баннерам
РеферерыТаблица referrer + клики с учётом фильтра позиции. Empty state при пустых данных

Статистика: клики

Статистика: рефереры

Правила учёта

Клики: один с IP в сутки на пару баннер + позиция. URL /{bannerpro_click}/{adposition}.

Показы: только при bannerpro_track_impressions. Один показ с IP в сутки. Фиксация через IntersectionObserver (порог 50% видимости) и pixel /{bannerpro_impression}/{adposition}.

Очистка статистики: connector action stats_purge (право bannerpro_remove) и cron core/components/bannerpro/cron/purge.php по настройкам retention. Кнопки в UI нет.

Вкладка «Журнал»

Доступна при bannerpro_save.

Журнал изменений

ЭлементОписание
Фильтр объектаБаннер (ad) / позиция (position)
Фильтр действияСм. таблицу ниже
Колонка «Событие»Действие + тип объекта + подпись
Колонка «Когда»Дата и пользователь
PayloadКнопка Детали открывает Popover с JSON diff (поля до/после, bulk-метаданные)
Empty state«Записей в журнале нет» при пустой выборке или до первых изменений

Действия в фильтре:

ActionКогда пишется
createСоздание баннера или позиции
updateРедактирование
deleteУдаление
enable / disableВкл/выкл баннера
bulk_enable / bulk_disable / bulk_deleteМассовые операции
bulk_assign_positionsМассовое назначение позиций
create_from_templateСоздание из шаблона

Пагинация и сортировка серверные.

Вкладка «Настройки»

Доступна при bannerpro_save. Редактирует часть ключей без перехода в Система → Настройки системы.

Вкладка «Настройки»

Блок UTM

Connector: settings_utm_get / settings_utm_update.

Поле в UIКлюч MODX
Включить UTMbannerpro_utm_enabled
utm_sourcebannerpro_utm_source
utm_mediumbannerpro_utm_medium
utm_campaignbannerpro_utm_campaign
utm_contentbannerpro_utm_content

Плейсхолдеры в utm_content: {ad_id}, {adposition}, {product_pagetitle}, {order_id} и другие из настроек.

Блок webhook и A/B

Connector: settings_integrations_get / settings_integrations_update.

Поле в UIКлюч MODX
URL webhook кликаbannerpro_webhook_url
URL webhook показаbannerpro_webhook_impression_url
Секрет HMACbannerpro_webhook_secret
TTL cookie A/B (дни)bannerpro_ab_ttl (1–365)

Кнопка Сохранить пишет оба блока одним действием.

Остальные ключи (кэш, аналитика, REST API, retention, боты, lazy-load) — в Система → Настройки системы, namespace bannerpro. Полный список: Системные настройки.

Системные настройки — namespace bannerpro

Типичный рабочий процесс

  1. Создайте позицию sidebar (при необходимости задайте context_key).
  2. Создайте баннер, задайте URL и контент, привяжите к sidebar.
  3. В шаблоне вызовите BannerPro с positionName=sidebar.
  4. Кликните по баннеру на сайте.
  5. Откройте Статистика и проверьте клик.
  6. При необходимости включите UTM, webhook или показы во вкладке Настройки / системных настройках.

Чеклист на вкладке «Баннеры» подсветит пропущенные шаги.

Технические детали

ЧастьПуть
Контроллерcore/components/bannerpro/controllers/index.class.php
Шаблон менеджераcore/components/bannerpro/templates/default/index.tpl
Connectorassets/components/bannerpro/connector.php
Vue entryassets/components/bannerpro/js/mgr/src/entry.js
Собранный бандлassets/components/bannerpro/js/mgr/vue-dist/bannerpro-admin.min.js

Лексиконы админки: ru, en, uk. Язык берётся из manager_language.

Список connector actions: События и connector.

Что дальше