Skip to content
  1. Компоненты
  2. BannerPro
  3. Начало работы
  4. Системные настройки

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

Все настройки лежат в namespace bannerpro. Ключ в modSystemSetting и getOption() пишется с префиксом bannerpro_.

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

Часть ключей (UTM, webhook, A/B TTL) редактируется и во вкладке Компоненты → BannerPro → Настройки через connector actions settings_utm_* и settings_integrations_*. Остальные ключи — только здесь.

Кэш

КлючТипПо умолчаниюОписание
bannerpro_cachecombo-booleantrueКэширует готовый HTML сниппета в partition bannerpro
bannerpro_cache_lifetimenumberfield3600TTL кэша в секундах

Сниппет не использует кэш при sortby=RAND(), sortby=weighted, sortby=ab, &cache=0, &toSeparatePlaceholders и &showLog=1 в сессии mgr.

Ключ кэша включает effective context (activeContext): текущий контекст MODX или значение &context= из вызова сниппета. Два вызова с разным context на одной странице не делят один кэш.

При сохранении баннера или позиции админка сбрасывает кэш по тегу bannerpro.

Клики и показы

КлючТипПо умолчаниюОписание
bannerpro_clicktextfieldbannerclickСегмент URL для учёта клика
bannerpro_track_impressionscombo-booleanfalseВключает учёт показов через impression.js
bannerpro_impressiontextfieldbannerimpressionСегмент URL для pixel-показов
bannerpro_impression_lazycombo-booleantrueПодключает impression.js через IntersectionObserver, а не блокирующим <script> в head

bannerpro_click формирует ссылку вида /{bannerpro_click}/{adposition}. adposition означает ID связи в bannerpro_ads_positions.

bannerpro_track_impressions добавляет HTML-обёртку data-bannerpro-impression и подключает скрипт assets/components/bannerpro/js/impression.js.

При bannerpro_impression_lazy = 0 скрипт регистрируется синхронно в head страницы.

Срок хранения

КлючТипПо умолчаниюОписание
bannerpro_clicks_retention_daysnumberfield365Удаляет клики старше N дней
bannerpro_impressions_retention_daysnumberfield365Удаляет показы старше N дней

Значение 0 отключает очистку. Для регулярной очистки запустите cron из корня MODX:

bash
php core/components/bannerpro/cron/purge.php

Медиа

КлючТипПо умолчаниюОписание
bannerpro_media_sourcenumberfieldпустоMedia Source по умолчанию для изображений

Если у баннера задан свой источник файлов, компонент использует его. Иначе берёт bannerpro_media_source, затем default_media_source.

Внешняя аналитика

КлючТипПо умолчаниюОписание
bannerpro_analytics_enabledcombo-booleanfalseПодключает клиентский мост analytics.js
bannerpro_analytics_ga4combo-booleantrueОтправляет события в dataLayer
bannerpro_analytics_ga4_clicktextfieldbannerpro_clickИмя события GA4 для клика
bannerpro_analytics_ga4_impressiontextfieldbannerpro_impressionИмя события GA4 для показа
bannerpro_analytics_matomocombo-booleantrueОтправляет события в Matomo через _paq
bannerpro_analytics_ym_countertextfieldпустоID счётчика Яндекс Метрики
bannerpro_analytics_ym_click_goaltextfieldbannerpro_clickЦель Метрики для клика
bannerpro_analytics_ym_impression_goaltextfieldbannerpro_impressionЦель Метрики для показа

Плагин BannerProAnalytics выключен по умолчанию. Для отправки во внешние системы включите плагин и настройку bannerpro_analytics_enabled.

Серверные события OnBannerProClick и OnBannerProImpression работают без этих настроек.

MiniShop3

КлючТипПо умолчаниюОписание
bannerpro_attribution_ttlnumberfield30Срок cookie bannerpro_click_id в днях

Cookie связывает клик по баннеру с заказом MiniShop3. Нужен включённый плагин BannerProMiniShop3 на событии msOnSubmitOrder.

КлючТипПо умолчаниюОписание
bannerpro_ms_catalog_positionstextfieldпустоИмена позиций через запятую для листинга MS3 (catalog_row, …). Плагин заполняет bannerpro_positions на каждом товаре

Подробнее: MiniShop3.

REST API

КлючТипПо умолчаниюОписание
bannerpro_api_enabledcombo-booleanfalseВключает REST API v1.1
bannerpro_api_keytextfieldпустоBearer-токен для api.php
bannerpro_api_write_enabledcombo-booleanfalsePOST/PATCH баннеров через REST
bannerpro_api_cors_origintextfieldпустоCORS: *, origin или список через запятую
bannerpro_api_rate_limitnumberfield0Запросов в минуту на ключ (0 = без лимита)

REST API ключ: секрет для Authorization: Bearer … в api.php. Смотрите в Система → Настройки системы (namespace bannerpro, подпись «REST API ключ»). Resolver создаёт 32 hex-символа при установке или обновлении, если поле пустое.

Точка входа:

text
assets/components/bannerpro/api.php

Чтение: баннеры, позиции, статистика, audit, шаблоны. Запись (если включена): POST/PATCH /ads, POST /ads/from-template. Позиции через REST не создают и не удаляют. Маршруты и примеры: REST API.

UTM при клике

КлючТипПо умолчаниюОписание
bannerpro_utm_enabledcombo-booleanfalseДобавляет UTM к URL редиректа при клике
bannerpro_utm_sourcetextfieldbannerproЗначение utm_source
bannerpro_utm_mediumtextfieldbannerЗначение utm_medium
bannerpro_utm_campaigntextfieldпустоutm_campaign. Пусто: параметр не добавляют
bannerpro_utm_contenttextfield{ad_id}-{adposition}Шаблон utm_content

В utm_campaign и utm_content доступны плейсхолдеры: {ad_id}, {position_id}, {adposition}, {product_id}, {product_pagetitle}, {order_id}.

При учёте клика {order_id} всегда 0, заказ ещё не создан. {product_pagetitle} берётся из product_id баннера.

Существующие UTM в URL баннера не перезаписываются. Те же ключи редактируйте во вкладке Настройки админки BannerPro.

Фильтр ботов

КлючТипПо умолчаниюОписание
bannerpro_filter_botscombo-booleanfalseНе записывает клики и показы от ботов в статистику

Soft-зависимость от дополнения CrawlerDetect (сниппет isCrawler или crawlerdetect.core_path). Без CrawlerDetect при включённой настройке компонент пишет предупреждение в лог MODX, фильтр не применяется. Редирект по клику и pixel показа работают как обычно.

НастройкаCrawlerDetectПоведение
ВыклнетВсе запросы попадают в статистику
ВклУстановленБоты не пишутся в byClick / byImpression
ВклНетWarn в лог, статистика без фильтра

Webhook при клике

КлючТипПо умолчаниюОписание
bannerpro_webhook_urltextfieldпустоURL для POST JSON при клике. Пусто: выключено
bannerpro_webhook_secrettextfieldпустоСекрет для заголовка X-BannerPro-Signature (HMAC-SHA256). Пусто: без подписи

Запрос отправляется после учёта клика и события OnBannerProClick, до редиректа. Timeout 2 с, ошибки не блокируют переход.

Тело JSON: event (click), ad_id, position_id, adposition, referrer, ip, click_id, timestamp (ISO8601), redirect_url, recorded, duplicate.

URL должен быть http:// или https://. Запрещены localhost, loopback и private/reserved IP в hostname (защита от SSRF).

Проверка: httpbin.org/post или локальный тестовый сервер.

Webhook при показе

КлючТипПо умолчаниюОписание
bannerpro_webhook_impression_urltextfieldпустоURL для POST JSON при pixel-показе. Пусто: выключено

Подпись совпадает с bannerpro_webhook_secret для клика. POST на URL показа отправляется без ожидания ответа после OnBannerProImpression, timeout 2 с.

Тело JSON: event (impression), ad_id, position_id, adposition, ip, timestamp (ISO8601), recorded, duplicate.

Событие OnBannerProImpression работает без этой настройки. Webhook нужен только для внешнего HTTP-URL.

A/B-деление

КлючТипПо умолчаниюОписание
bannerpro_ab_ttlnumberfield30Срок cookie bannerpro_ab_{positionId} при &sortby=ab (дней)

Подробнее: Интеграция.

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

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

Без bannerpro_save интерфейс работает только на чтение. Мутации через connector вернут HTTP 403.

Доступ в шаблонах

fenom
{$_modx->config.bannerpro_click}
{$_modx->config.bannerpro_media_source}
{$_modx->config.bannerpro_cache}
{$_modx->config.bannerpro_cache_lifetime}
modx
[[++bannerpro_click]]
[[++bannerpro_media_source]]
[[++bannerpro_cache]]
[[++bannerpro_cache_lifetime]]

Что дальше