Меня зовут Максим, я веб-разработчик. В 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, который:

  1. Агрегирует поведенческие данные за последние 30 дней
  2. Обновляет профили пользователей (интересы, предпочитаемые категории, ценовой сегмент)
  3. Переобучает рекомендательную модель
  4. Рассчитывает сегменты

Для рекомендаций я использую библиотеку 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-модели не смогут обучиться. Для них нужны тысячи, а лучше — десятки тысяч сессий.

Для небольших сайтов лучше начать с простых правил: «показывать баннер сантехники тем, кто зашёл в раздел сантехники» — без всякого машинного обучения. И масштабировать по мере роста трафика.

Если хотите обсудить персонализацию для вашего сайта — обращайтесь.