BannerPro

Баннеры на MODX 3. Создайте креативы и позиции. Компонент считает клики и показы.
Автор дополнения
Иван Бочкарев
Пакетов
25
Закачек
164
Обычно отвечает в течение суток
Автор дополнения
Пакетов
25
Закачек
164
Обычно отвечает в течение суток
Версия 1.0.0-beta1
Дата выпуска 05.08.2026
Загрузки 0
Просмотры 56
Внимание, этот компонент требует PHP 8.2 или выше!
Внимание, этот компонент требует MODX 3 или выше.
BannerPro для MODX Revolution 3.x. Связываете баннеры и позиции в админке, выводите сниппетом на сайте. Компонент считает клики и показы. Отчёты: CTR, рефереры, CSV. Интерфейс на Vue 3 + PrimeVue.

Админка (Vue 3 + PrimeVue)
  • вкладки: Баннеры, Позиции, Статистика, Журнал, Настройки
  • виджет «Последние 7 дней»: клики, показы, CTR над вкладками
  • баннеры: image/html, превью (миниатюра или iframe sandbox), создание из preset-шаблонов
  • форма в три вкладки: основное, показ (даты, dayparting, лимиты), таргетинг (страница, раздел, метки, MS3)
  • список: поиск, фильтры (активность, тип, товар, категория, метка, позиция), пагинация, сортировка
  • bulk: вкл/выкл, удаление, назначение позиций; дублирование баннера и позиции
  • позиции: слоты по контексту MODX, DnD порядок, вес связи для weighted-ротации
  • статистика: KPI (CTR, CVR, заказы MS3), воронка, сравнение с прошлой неделей, топ баннеров, рефереры, CSV
  • журнал audit изменений; UTM, webhook и TTL cookie A/B во вкладке «Настройки»
  • чеклист первой настройки; локализация ru / en / uk
  • ACL: bannerpro_save, bannerpro_remove, bannerpro_stats — режим «только статистика»

Сайт
  • сниппет BannerPro (pdoFetch): positionName, position, context, productId
  • чанки byAd, byHtml, отдельные tpl для image/html, обёртка tplWrapper
  • ротация: RAND(), idx, weighted, A/B split (sortby=ab, cookie)
  • расписание start/end, dayparting (show_hours), лимиты max_clicks / max_impressions
  • таргетинг: ресурс, родитель, метки (tagsMode any/all), контекст позиции
  • кэш HTML (bannerpro_cache), плейсхолдер {$click_url}, плейсхолдер adposition для клика
  • плагины: BannerProClickout (клики), BannerProImpression (показы, pixel + IntersectionObserver)

Аналитика и интеграции
  • клики и показы: 1 IP / сутки на пару баннер+позиция; рефереры; фильтр ботов (CrawlerDetect)
  • события MODX: OnBannerProClick, OnBannerProImpression
  • UTM на redirect; webhook HTTP с HMAC на клик и показ
  • GA4, Matomo, Яндекс Метрика через плагин BannerProAnalytics и analytics.js

MiniShop3 (опционально)
  • привязка баннера к товару или категории; плейсхолдеры product_* в чанках
  • сниппет productId — глобальные + товарные баннеры на карточке
  • атрибуция клик → заказ; колонки «Клики» и «Заказы» в списке баннеров; CVR в статистике
  • плагин BannerProMiniShop3 (выключен по умолчанию)

REST API v1.1
  • точка входа assets/components/bannerpro/api.php, Bearer-ключ bannerpro_api_key
  • read: /ads, /positions, stats (overview, compare, clicks log), /audit, /templates, CSV export
  • write (флаг bannerpro_api_write_enabled): POST/PATCH баннеров, create from template
  • фильтры ads, проекция ?fields=, пагинация X-Total-Count / Link
  • CORS, rate limit; спека OpenAPI: docs/openapi.yaml

Требования
  • MODX 3.0+, PHP 8.2+
  • pdoTools ≥ 2.1.0, VueTools для админки
  • MiniShop3 — по желанию

Скриншоты










Changelog - BannerPro

Format: Keep a Changelog Versioning: Semantic Versioning

[1.0.0-beta1] - 2026-08-05

Первый beta-пакет BannerPro. MODX 3, PHP 8.2+, namespace bannerpro.

Added

Админка (Vue 3 + PrimeVue, VueTools)

  • Вкладки: Баннеры, Позиции, Статистика, Журнал, Настройки.
  • Баннеры: тип image/html, превью, шаблоны preset, bulk-действия, фильтры (active, type, product, category, tag, position).
  • Позиции: context_key, DnD порядок, вес связи, дублирование позиции и баннера.
  • Статистика: KPI, CTR, CVR, воронка показ → клик → заказ, сравнение периодов, экспорт CSV.
  • Журнал audit (bannerpro_audit).
  • Настройки в mgr: UTM, webhook click/impression, ab_ttl.
  • OverviewWidget (7 дней), режим stats-only по ACL.
  • Connector: 40 actions (handlers.php).

Фронтенд

  • Сниппет BannerPro (pdoFetch): position, positionName, positionKey, context, productId.
  • Таргетинг: &resource=`, `&parent=`, `&tags=`, `tagsMode; dayparting show_hours.
  • Ротация: RAND(), idx, weighted, A/B split (sortby=ab, cookie bannerpro_ab_{positionId}).
  • Лимиты max_clicks / max_impressions, кэш HTML (bannerpro_cache).
  • Плейсхолдер click_url, чанки byAd, byHtml.
  • Плагины: BannerProClickout, BannerProImpression, BannerProAnalytics (opt.), BannerProMiniShop3 (opt.).

Аналитика и интеграции

  • Клики и показы (1/IP/сутки), pixel impression, IntersectionObserver.
  • События MODX: OnBannerProClick, OnBannerProImpression.
  • Webhook HTTP на клик и показ (HMAC), UTM на redirect.
  • GA4, Matomo, Яндекс Метрика через analytics.js.
  • MiniShop3: product_id, category_id, плейсхолдеры product_*, атрибуция клик → заказ.
  • Read-only REST API: GET /ads, /ads/{id}, /positions, /stats, /stats/compare.
  • REST API v1.1: discovery, фильтры ads, /positions/{id}, stats sub-routes, audit, templates, clicks log, CSV export, опциональный write (POST/PATCH), CORS, rate limit, OpenAPI spec.

Данные и сборка

  • Таблицы: bannerpro_ads, bannerpro_positions, bannerpro_ads_positions, bannerpro_clicks, bannerpro_impressions, bannerpro_ad_templates, bannerpro_audit.
  • Миграция с Bannery (resolver_tables.php).
  • ACL: bannerpro_save, bannerpro_remove, bannerpro_stats.
  • Сборка: _build/build.php, Vite-бандл bannerpro-admin.min.js.
  • Документация: docs/, лексикон ru/en/uk.

Fixed

  • REST API: bootstrap без MODX connector auth (Bearer вместо mgr-сессии); роутинг ?route=/positions и PATH_INFO; демо-ключ в seed.
  • Демо-чанк tplFirst: click_url с UTM и абсолютным путём вместо {bannerpro_click}/{adposition}.
  • Smoke-тесты: curl verify (click redirect без -L, impression /bannerimpression/{id}, API auth).

Requirements

  • MODX Revolution >= 3.0.0
  • PHP >= 8.2.0
  • pdoTools >= 2.1.0 (сниппет)
  • VueTools (админка)
  • MiniShop3 — опционально

Последние обсуждения в сообществе MODX.pro