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

Розробка модуля управління банерами 1С-Бітрікс Є проблема: на сайті 200 банерів, розкиданих по 15 зонах. Менеджери витрачають 2 години на день на ручну зміну дат і пріоритетів. CTR падає на 30 %, тому що ротація відсутня, а таргетинг не налаштований. Ми — команда сертифікованих розробників 1С-Біт
Послуги, які ми пропонуємо
Показано 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
    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 разів більше банерів без падіння продуктивності. Наш модуль дозволяє заощадити до 5000 грн на місяць на рекламних витратах завдяки оптимізації таргетингу. Наприклад, для рекламного бюджету 20 000 грн/міс економія складе 5000 грн/міс.

Модуль управління банерами: ключові переваги

Порівняно зі стандартними інфоблоками, наш модуль у 15 разів швидший та обробляє в 50 разів більше банерів. Вимоги до сервера: PHP 8.1+, MySQL 5.7+, модуль Bitrix VM або аналогічне оточення, доступ до налаштувань cron для агентів.

Коли потрібен кастомний модуль управління банерами?

Інфоблок — хороша «коробка» для трьох банерів на головній. Як тільки з'являються десятки банерів, ротація, таргетинг за гео, обмеження показів — починаються проблеми. З інфоблоками не можна гнучко керувати порядком показу, вести детальну статистику або обмежувати кількість показів для кожного банера. Наш модуль вирішує ці завдання «з коробки». Він швидший: вибірка 10 000 банерів займає 0.1 секунди — у 15 разів швидше, ніж на інфоблоках (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')); // ... } } 

Модуль оптимізований для високих навантажень: вибірка 100 000 банерів виконується за 0.3 секунди.

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

Модуль 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 хвилин на день. Замовте розробку модуля та отримайте консультацію по вашому проекту.

Часті запитання

Скільки часу займає розробка модуля?

Від 9 робочих днів на базовий функціонал. Термін залежить від складності таргетингу та інтеграції із зовнішніми системами. Для типового проекту достатньо 9–14 днів.

Чи можна інтегрувати модуль з 1С?

Так, через CommerceML або REST API. Налаштовуємо автоматичний обмін даними про банери та статистику.

Які формати банерів підтримуються?

Зображення (JPG, PNG, GIF, WebP), HTML-банери з анімацією та відео. Підготуємо конвертацію під мобільні пристрої.

Як відбувається захист від накрутки кліків?

Використовуємо редирект-проксі з токеном, обмежуємо кліки з одного IP на банер на добу, зберігаємо сирі дані для аналізу аномалій.

Чи є готовий адміністративний інтерфейс?

Так, таблиця банерів з прев'ю та CTR, форма редагування з налаштуванням таргетингу, графіки статистики. Всі зміни застосовуються без перезавантаження.

Як ми впроваджуємо модуль за 5 кроків

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

Що входить в роботу

Етап Результат
Аудит поточних банерів та зон Звіт з рекомендаціями
Проектування ORM-моделі Документація по таблицях
Розробка алгоритмів вибору та ротації Код модуля
Налаштування таргетингу та захист від накрутки Функціональний прототип
Адміністративний інтерфейс UI для управління
Інтеграція з сайтом Компоненти для шаблонів
Тестування та деплой Робочий модуль на бойовому сервері + інструкція

Терміни розробки

Етап Термін
ORM-таблиці, модель зон та банерів 1 день
Алгоритм вибору, зважена ротація 1 день
Таргетинг, інтеграція з геолокацією 1 день
Підрахунок показів та кліків, захист від накрутки 1 день
HTML-банери, редактор 1 день
Статистика, графіки CTR 1 день
Адміністративний інтерфейс 2 дні
Тестування 1 день

Разом: від 9 робочих днів. Вартість розраховується індивідуально — зв'яжіться з нами, щоб обговорити ваш проект та отримати консультацію. Ми гарантуємо прозоре ціноутворення та фіксацію термінів у договорі. Наша команда має 10+ років досвіду та 50+ реалізованих проектів. Ми на ринку з 2015 року.

Ключові деталі реалізації: використання сучасних ORM-таблиць, кешування результатів вибірки, агентні завдання для очищення застарілих даних.

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