Меня зовут Максим, я веб-разработчик. В 2025 году ко мне пришёл интернет-магазин товаров для ремонта с каталогом из 12 000 позиций. Проблема была классическая: посетители приходили на сайт, теряли время в поиске нужного товара и уходили. Средний показатель отказов — 62%, конверсия в заказ — 1,4%. Мы внедрили систему персонализации на основе машинного обучения. Через 4 месяца отказы снизились до 48%, конверсия выросла до 2,3%. Разница кажется небольшой — но при 80 000 визитов в месяц это дополнительные 720 заказов. Расскажу, как устроена персонализация на современном сайте и какие технологии за этим стоят.
Что такое гиперперсонализация и чем она отличается от обычной персонализации
Обычная персонализация — это когда вы обращаетесь к клиенту по имени в рассылке или показываете «Рекомендуем для вас» на основе прошлых покупок. Это работает, но это уровень 2018 года.
Гиперперсонализация — это когда весь сайт адаптируется под конкретного посетителя в реальном времени:
- Главная страница показывает разные баннеры разным людям
- Каталог выстраивается в том порядке, который релевантен именно этому посетителю
- Описание товара акцентирует разные преимущества (для профессионала — технические характеристики, для новичка — простоту использования)
- Цены и акции могут меняться в зависимости от сегмента
- Виджет обратной связи предлагает тот канал коммуникации, который клиент предпочитает
- Поп-ап с акцией появляется в момент, когда система предсказала, что клиент готов уйти
Звучит как фантастика, но технически всё это уже реализуемо — и не только для гигантов вроде Ozon или Wildberries.
Как ML-модели персонализируют контент
За персонализацией стоит машинное обучение. Модель анализирует поведение каждого посетителя и на основе паттернов предсказывает, что ему интересно.
Какие данные собираются
Поведенческие данные текущей сессии. Какие страницы посетитель смотрит, сколько времени проводит на каждой, что кладёт в корзину, что удаляет, на какие элементы кликает, как далеко прокручивает страницу.
История взаимодействий. Если посетитель авторизован или его можно идентифицировать по cookie — вся история прошлых визитов, покупок, просмотров.
Контекстуальные данные. Устройство (мобильный / десктоп), время суток, день недели, географическое положение, источник трафика (пришёл из контекстной рекламы, из поиска или с email-рассылки).
Данные похожих пользователей. Коллаборативная фильтрация: «пользователи, похожие на вас, также покупали...». Система находит сегменты с похожим поведением и использует их предпочтения для рекомендаций.
Какие модели используются
Рекомендательные системы. Collaborative filtering (на основе поведения похожих пользователей) и content-based filtering (на основе характеристик товаров, которые нравились этому пользователю). Для интернет-магазинов — это хлеб с маслом.
Предиктивные модели. Предсказание вероятности покупки, предсказание оттока (клиент уходит навсегда), предсказание следующего заказа. На основе этих предсказаний система решает: показать скидку, предложить допродажу или просто не мешать.
Модели сегментации. Кластеризация посетителей по поведению: «новички», «исследователи», «целевые покупатели», «скидочники», «VIP». Каждому сегменту — свой набор контента и UI-элементов.
NLP для контента. Если на сайте есть блог или описания товаров — модель может подбирать наиболее релевантные тексты для конкретного посетителя на основе его интересов.
Как я реализую персонализацию на практике
Расскажу архитектуру на примере того самого магазина товаров для ремонта.
Сбор данных
На сайте установлен трекер (не Google Analytics — мы используем собственный лёгкий скрипт, который отправляет события на наш сервер). Каждое действие посетителя записывается: просмотр товара, добавление в корзину, поиск, клик по фильтру.
Данные летят в ClickHouse — колоночную базу данных, оптимизированную для аналитических запросов. ClickHouse хранит миллионы событий и позволяет быстро агрегировать их для обучения модели.
Обработка и сегментация
Раз в сутки запускается пайплайн на Python, который:
- Агрегирует поведенческие данные за последние 30 дней
- Обновляет профили пользователей (интересы, предпочитаемые категории, ценовой сегмент)
- Переобучает рекомендательную модель
- Рассчитывает сегменты
Для рекомендаций я использую библиотеку Implicit (для коллаборативной фильтрации) — она быстрая и хорошо работает с разреженными данными (когда у вас много товаров, но мало покупок на пользователя).
Сервис персонализации
Отдельный микросервис (Node.js + Redis), который принимает запрос с ID посетителя и контекстом (текущая страница, устройство, время), и возвращает персонализированные данные:
- Рекомендованные товары
- Персонализированный баннер на главной
- Порядок категорий в каталоге
- Текст и параметры поп-апа (если нужен)
Ответ приходит за 50–100 мс — посетитель не замечает задержки.
Фронтенд
На стороне клиента — React-компоненты, которые запрашивают персонализированные данные через API и рендерят контент. Ключевой момент: базовая версия страницы загружается мгновенно (SSR/SSG), а персонализированные блоки подгружаются асинхронно. Пользователь видит страницу сразу, а через доли секунды — персонализированные рекомендации «подъезжают» на свои места.
Это важно для Core Web Vitals: LCP остаётся быстрым, потому что основной контент не ждёт персонализацию.
Конкретные механики персонализации
Персонализированная главная страница
Новый посетитель видит общие баннеры с популярными акциями. Повторный посетитель, который раньше смотрел сантехнику — видит баннер «Весенние скидки на смесители» и блок «Вы смотрели» с конкретными товарами. Посетитель из сегмента «профессионал» — видит акцию на оптовые закупки и каталог, выстроенный по маркам, а не по бытовым категориям.
Умный поиск
Поисковая строка на сайте подстраивается под контекст. Если посетитель ранее искал «ламинат дуб» — при следующем визите подсказки в поиске начинают с ламината, подложек, плинтусов. Поиск «понимает», что человек делает ремонт пола, и приоритезирует связанные товары.
Динамический порядок каталога
Каталог с 12 000 товаров — это джунгли. Персонализация выстраивает товары в порядке релевантности для конкретного посетителя. Не просто «по популярности» или «по цене» — а по предсказанной вероятности покупки именно этим человеком. Это работает через скоринг: каждому товару в каталоге присваивается балл для каждого посетителя.
Триггерные поп-апы
Вместо бессмысленного поп-апа «Подпишитесь на рассылку», который раздражает всех — умные триггеры:
- Посетитель положил товар в корзину и завис на 30+ секунд без действий → предложение «Остались вопросы? Напишите в чат»
- Посетитель из сегмента «скидочник» движет курсор к закрытию вкладки → поп-ап с персональной скидкой 5%
- Посетитель-профессионал → вместо поп-апа со скидкой — предложение скачать PDF-каталог для оптовиков
Персонализированные email-рассылки
Данные с сайта используются для сегментации рассылок. Клиент, который смотрел конкретный товар, но не купил — получает письмо именно об этом товаре (а не общую рассылку «топ-10 товаров месяца»). Система генерирует персональные подборки для каждого получателя.
Юридическая сторона: 152-ФЗ и cookie
Персонализация = обработка персональных данных. В России действует 152-ФЗ, и вот что это значит на практике:
Согласие на cookie. Баннер с уведомлением об использовании cookie — обязательный. Пользователь должен иметь возможность отказаться. Если отказался — персонализация отключается, показываем стандартный контент.
Политика конфиденциальности. Должна описывать, какие данные вы собираете (поведенческие, устройство, местоположение), зачем (персонализация контента) и как обрабатываете.
Хранение данных в России. Все данные о посетителях должны храниться на серверах в РФ. Это исключает использование зарубежных сервисов персонализации, которые хранят данные за рубежом.
Анонимизация. Я рекомендую не привязывать поведенческие данные к конкретной личности напрямую. Работайте с анонимными идентификаторами (cookie ID). Связь с персональными данными (имя, email) — только в CRM, и только для авторизованных пользователей.
Инструменты и стек
Для малого и среднего бизнеса не нужно строить собственный ML-пайплайн с нуля. Вот что я использую:
Сбор данных: собственный трекер (лёгкий JS-скрипт) + ClickHouse для хранения. Альтернатива: Яндекс Метрика (для аналитики) + серверная аналитика.
Рекомендации: библиотека Implicit (Python) для коллаборативной фильтрации. Для простых случаев — правила на основе ассоциативных правил (кто купил X, обычно покупает Y).
Сегментация: scikit-learn (K-means, DBSCAN) для кластеризации посетителей.
Сервис персонализации: Node.js + Redis для кэширования рекомендаций.
[A/B-тестирование](/blog/ab-testirovanie-sajta): обязательный компонент. Каждое изменение тестируется: контрольная группа видит стандартный контент, тестовая — персонализированный. Сравниваем конверсию, средний чек, глубину просмотра.
Сколько стоит и когда окупается
Базовая персонализация (рекомендации «Похожие товары» и «С этим покупают», персональная рассылка). Срок: 3–5 недель. Бюджет: 200–400 тысяч рублей. Подходит для интернет-магазинов с 1 000+ товаров и 10 000+ визитов в месяц.
Продвинутая персонализация (динамическая главная, умный поиск, триггерные поп-апы, сегментация, A/B-тесты). Срок: 2–4 месяца. Бюджет: 600 тысяч — 1,5 миллиона рублей.
Инфраструктура: от 15 до 50 тысяч рублей в месяц (серверы ClickHouse, Redis, вычислительные ресурсы для ML).
По опыту: рост конверсии на 0,5–1,5 процентных пункта — реалистичный результат. Для магазина с 80 000 визитов и средним чеком 5 000 рублей рост конверсии на 0,9% даёт дополнительные 3,6 миллиона рублей выручки в месяц. При бюджете на внедрение в 1 миллион — окупаемость менее месяца.
Главное предупреждение
Персонализация работает только при достаточном объёме данных. Если на ваш сайт приходит 500 человек в месяц — ML-модели не смогут обучиться. Для них нужны тысячи, а лучше — десятки тысяч сессий.
Для небольших сайтов лучше начать с простых правил: «показывать баннер сантехники тем, кто зашёл в раздел сантехники» — без всякого машинного обучения. И масштабировать по мере роста трафика.
Если хотите обсудить персонализацию для вашего сайта — обращайтесь.