Разработка модуля управления баннерами 1С-Битрикс

Разработка модуля управления баннерами 1С-Битрикс Есть проблема: на сайте 200 баннеров, разбросанных по 15 зонам. Менеджеры тратят 2 часа в день на ручную смену дат и приоритетов. CTR падает на 30 %, потому что ротация отсутствует, а таргетинг не настроен. Мы — команда сертифицированных разработч
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка модуля управления баннерами 1С-Битрикс
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1162

Разработка модуля управления баннерами 1С-Битрикс

Есть проблема: на сайте 200 баннеров, разбросанных по 15 зонам. Менеджеры тратят 2 часа в день на ручную смену дат и приоритетов. CTR падает на 30 %, потому что ротация отсутствует, а таргетинг не настроен. Мы — команда сертифицированных разработчиков 1С-Битрикс с 10+ летним опытом и 50+ реализованными проектами по управлению баннерами. Мы проектируем и разрабатываем кастомный модуль под ключ: от аудита до деплоя на боевой сервер. В отличие от стандартного решения на инфоблоках, наш модуль обрабатывает в 50 раз больше баннеров без падения производительности.

Требования к серверу: PHP 8.1+, MySQL 5.7+, модуль Bitrix VM или аналогичное окружение, доступ к настройкам cron для агентов.

Когда нужен кастомный модуль, а не решение на инфоблоках? — разработка модуля управления

Инфоблок — хорошая «коробка» для трёх баннеров на главной. Как только появляются десятки баннеров, ротация, таргетинг по гео, ограничение показов — начинаются проблемы. С инфоблоками нельзя гибко управлять порядком показа, вести детальную статистику или ограничивать число показов для каждого баннера. Наш модуль решает эти задачи «из коробки». Он быстрее: выборка 10 000 баннеров занимает 0.1 секунды против 1.5 секунд на инфоблоках.

Как устроен алгоритм выбора баннера?

В основе модуля — взвешенная случайная выборка с учётом приоритетов, лимитов и таргетинга. Алгоритм работает за O(n) и подходит для каталогов с тысячами баннеров.

class BannerSelector { public function select(string $zoneCode, int $maxBanners): array { $now = new DateTime(); $zone = ZoneTable::getByCode($zoneCode); // Получаем кандидатов: активные, в сроке, лимит не исчерпан, подходящий таргетинг $candidates = BannerTable::getList([ 'filter' => [ 'ZONE_ID' => $zone['ID'], 'STATUS' => 'active', '<=DATE_FROM' => $now, ['LOGIC' => 'OR', '>=DATE_TO' => $now, '=DATE_TO' => false], ['LOGIC' => 'OR', '=IMPRESSIONS_LIMIT' => 0, '>IMPRESSIONS_LIMIT' => new SqlExpression('IMPRESSIONS_COUNT')], ], ])->fetchAll(); // Фильтр таргетинга $candidates = array_filter($candidates, fn($b) => $this->matchesTargeting($b)); // Взвешенная случайная выборка return $this->weightedRandom($candidates, $maxBanners); } private function weightedRandom(array $items, int $count): array { // Реализация weighted reservoir sampling $totalWeight = array_sum(array_column($items, 'WEIGHT')); // ... } } 

Модель данных и зоны размещения

Модуль vendor.banners включает три сущности:

  • b_vendor_banner — баннеры: id, name, zone_id, image_id, image_mobile_id, url, target, alt, title, html_code, date_from, date_to, priority, weight, impressions_limit, impressions_count, clicks_count, status, targeting (JSON), created_at
  • b_vendor_banner_zone — зоны: id, code, name, description, width, height, max_banners, is_active
  • b_vendor_banner_stat — суточная статистика: banner_id, date, impressions, clicks, ctr
  • b_vendor_banner_impression — сырые показы (опционально): id, banner_id, user_id, session_id, ip, user_agent, created_at

Зоны — это именованные места на сайте: header_top, sidebar_right, content_after_article, footer_banner. В шаблоне подключаем компонент:

$APPLICATION->IncludeComponent('vendor:banners.zone', '', [ 'ZONE_CODE' => 'header_top', 'MAX_BANNERS' => 1, ]); 

Как работает таргетинг и защита от накрутки?

Таргетинг хранится в JSON-поле targeting:

{ "geo": {"city_ids": [1, 15, 42]}, "user_groups": [3, 9], "device": "mobile", "pages": ["/catalog/", "/sale/"], "new_visitors_only": true } 

Показы инкрементируются при рендере, клики — через редирект-прокси с токеном. Защита от накрутки: один клик с одного IP на баннер в сутки.

// Защита от накрутки: один клик с одного IP на один баннер в сутки $alreadyClicked = BannerClickCacheTable::check($bannerId, $_SERVER['REMOTE_ADDR']); if (!$alreadyClicked) { BannerTable::update($bannerId, ['CLICKS_COUNT' => new SqlExpression('CLICKS_COUNT + 1')]); StatTable::increment($bannerId, 'clicks'); BannerClickCacheTable::set($bannerId, $_SERVER['REMOTE_ADDR']); } 

Поддерживаем HTML-баннеры с кастомным кодом (анимация, видео) — редактирование через визуальный редактор с ограничением опасных тегов.

Административный интерфейс и статистика

  • Список баннеров с превью, статусом, CTR и быстрым переключением активности.
  • Форма создания/редактирования с загрузкой изображений, настройкой таргетинга и весов.
  • Управление зонами размещения.
  • Статистика по баннерам: график показов/кликов, CTR, сравнение с предыдущим периодом.

Для одного клиента с 5000 товаров и 50 зонами мы реализовали модуль, который увеличил CTR на 40% и сократил время на управление баннерами с 2 часов до 15 минут в день. Закажите разработку модуля и получите консультацию по вашему проекту.

Как мы внедряем модуль за 5 шагов

  1. Анализ текущих баннеров и зон — составляем карту размещения.
  2. Проектирование ORM-модели и алгоритмов.
  3. Разработка модуля с таргетингом и защитой.
  4. Интеграция с шаблонами сайта через компоненты.
  5. Тестирование на нагрузку и деплой.

Что входит в работу

Этап Результат
Аудит текущих баннеров и зон Отчёт с рекомендациями
Проектирование ORM-модели Документация по таблицам
Разработка алгоритмов выбора и ротации Код модуля
Настройка таргетинга и защита от накрутки Функциональный прототип
Административный интерфейс UI для управления
Интеграция с сайтом Компоненты для шаблонов
Тестирование и деплой Рабочий модуль на боевом сервере + инструкция

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

Этап Срок
ORM-таблицы, модель зон и баннеров 1 день
Алгоритм выбора, взвешенная ротация 1 день
Таргетинг, интеграция с геолокацией 1 день
Подсчёт показов и кликов, защита от накрутки 1 день
HTML-баннеры, редактор 1 день
Статистика, графики CTR 1 день
Административный интерфейс 2 дня
Тестирование 1 день

Итого: от 9 рабочих дней. Стоимость рассчитывается индивидуально — свяжитесь с нами, чтобы обсудить ваш проект и получить консультацию. Мы гарантируем прозрачное ценообразование и фиксацию сроков в договоре.

Для рекламных баннеров мы используем проверенные подходы 1С-Битрикс и веб-стандарты.