Представьте интернет-магазин на 1С-Битрикс с 50 000 товаров. Новый посетитель видит тот же лендинг, что и оптовый клиент. Конверсия падает, а персонализация отсутствует. Это типичная ситуация для многих проектов: статичные блоки контента не учитывают интересы разных сегментов. Мы разрабатываем модуль персонализации контента, который решает эту проблему. Команда с 7+ годами опыта в разработке на 1С-Битрикс и более 50 выполненными проектами.
Персонализированные блоки дают CTR на 35–50% выше, чем статичные, а конверсия в сегментированных группах растёт в 1,5–2 раза. Модуль легко интегрируется с существующим торговым каталогом и CRM. По нашим данным, внедрение персонализации повышает LTV на 20% и сокращает путь к покупке на 30%.
Почему стандартных инструментов Битрикс недостаточно для персонализации контента?
Группы пользователей с ограничением доступа не дают гибкой персонализации. Нельзя показать разный контент новому посетителю и клиенту с заказами. Как отмечает документация 1С-Битрикс, группы пользователей не предназначены для гибкой персонализации. Для этого нужны сегменты с динамическими условиями, поведенческие профили и агенты пересчёта. Наш модуль vendor.personalize добавляет эту функциональность без изменения ядра.
Как модуль персонализации контента улучшает конверсию?
Модуль строит модель данных, включающую следующие сущности:
-
b_vendor_ps_rule— правила персонализации: id, name, priority, conditions (JSON), action (JSON), is_active, created_at -
b_vendor_ps_segment— сегменты аудитории: id, name, conditions (JSON), is_active -
b_vendor_ps_user_segment— принадлежность пользователей к сегментам: user_id, segment_id, assigned_at -
b_vendor_ps_impression— показы персонализированного контента: id, rule_id, user_id, session_id, element_id, created_at -
b_vendor_ps_profile— профиль поведения: user_id или session_id, data (JSON: просмотренные разделы, категории, источник, RFM-метрики)
Сегментация и оценка условий — разработка модуля персонализации
Сегменты определяются набором условий. Пример условий для сегмента «тёплые пользователи» — бывали 3+ раз за последние 7 дней, пришли из поиска, ещё не купили:
{ "logic": "AND", "rules": [ {"type": "visit_count", "operator": ">=", "value": 3}, {"type": "has_orders", "operator": "=", "value": false}, {"type": "last_visit_days", "operator": "<=", "value": 7}, {"type": "traffic_source", "operator": "=", "value": "google"} ] } Оценка условий выполняется классом SegmentEvaluator:
class SegmentEvaluator { public function evaluate(array $conditions, PersonalityProfile $profile): bool { $logic = $conditions['logic'] ?? 'AND'; $results = []; foreach ($conditions['rules'] as $rule) { $results[] = $this->evaluateRule($rule, $profile); } return $logic === 'AND' ? !in_array(false, $results) : in_array(true, $results); } private function evaluateRule(array $rule, PersonalityProfile $profile): bool { return match ($rule['type']) { 'visit_count' => $this->compare($profile->getVisitCount(), $rule['operator'], $rule['value']), 'has_orders' => $profile->hasOrders() === (bool)$rule['value'], 'last_visit_days' => $this->compare($profile->getDaysSinceLastVisit(), $rule['operator'], $rule['value']), 'traffic_source' => $profile->getTrafficSource() === $rule['value'], 'city_id' => in_array($profile->getCityId(), (array)$rule['value']), default => true, }; } } Поведенческий профиль
При каждом визите обновляется профиль сессии/пользователя. Более 100 000 профилей обрабатываются за ночь.
// Инициализируется в init.php через событие OnProlog PersonalityProfileCollector::collect([ 'page' => $_SERVER['REQUEST_URI'], 'referrer' => $_SERVER['HTTP_REFERER'] ?? null, 'utm_source' => $_GET['utm_source'] ?? null, 'iblock_section' => $APPLICATION->GetCurDir(), // текущий раздел ]); Профиль хранится в b_vendor_ps_profile как JSON и содержит: счётчик визитов, просмотренные категории, дату первого и последнего визита, источник первого визита, флаг наличия заказов.
Персонализированные блоки
Компонент vendor:personalize.block — замена статичного блока контента:
// В шаблоне страницы: $APPLICATION->IncludeComponent('vendor:personalize.block', '', [ 'ELEMENT_ID' => 'hero_cta', // идентификатор блока на странице ]); Компонент находит активное правило персонализации для текущего пользователя и рендерит соответствующий контент. Действия правила могут быть:
-
show_text— показать текст/HTML -
show_iblock_element— показать конкретный элемент инфоблока -
show_banner— показать баннер изb_vendor_ps_banner -
redirect— перенаправить на URL
Пересчёт сегментов
Принадлежность к сегменту не определяется на каждый запрос — это дорого. Агент пересчитывает сегменты ночью:
// Для каждого активного сегмента — пересчёт из b_vendor_ps_profile // Результат — INSERT/DELETE в b_vendor_ps_user_segment SegmentCalculator::recalculate(); Для новых сессионных пользователей (не авторизованных) — оценка в реальном времени по данным сессии. Пересчёт занимает 2 минуты для 5000 пользователей.
Аналитика
- CTR персонализированных блоков vs стандартных (сравнение с контрольной группой)
- Распределение пользователей по сегментам
- Конверсия по сегментам в заказы
Сравнение: стандартные группы vs модуль персонализации
| Критерий | Стандартные группы доступа | Модуль персонализации |
|---|---|---|
| Условия показа | Только статические права | Динамические сегменты |
| Поведенческие данные | Не используются | Полный профиль |
| Гибкость | Низкая | Высокая (JSON-правила) |
| Влияние на конверсию | Нет | +35-50% CTR |
| Администрирование | Встроенное | Свой интерфейс |
Что входит в работу
Подробности документации
- Описание модели данных - API-спецификация - Логика сегментации- Исходный код модуля с миграциями
- Инструкция по установке и настройке агентов
- Обучение администраторов работе с правилами и сегментами
- Гарантия 6 месяцев на код модуля
Как настроить модуль за 5 шагов
- Установите модуль
vendor.personalizeчерез Marketplace или ручную загрузку. - Запустите миграции для создания ORM-таблиц.
- Настройте агент сбора профилей в настройках модуля.
- Создайте сегменты и правила через административный интерфейс.
- Разместите компонент
vendor:personalize.blockв нужных шаблонах.
Сроки разработки
| Этап | Срок |
|---|---|
| ORM-таблицы, модель сегментов и правил | 1 день |
| Поведенческий профиль, сбор данных | 2 дня |
| Оценка условий сегментации | 2 дня |
| Агент пересчёта сегментов | 1 день |
| Компонент персонализированных блоков | 2 дня |
| Аналитика и административный интерфейс | 2 дня |
| Тестирование | 1 день |
Итого: 11 рабочих дней. Интеграция с ML-моделями рекомендаций (collaborative filtering) — отдельный проект.
Оцените эффективность персонализации для вашего магазина — получите предварительную оценку. Свяжитесь с нами для консультации. Закажите разработку модуля персонализации под ваши задачи.







