Введение
RFM — это простая модель сегментации клиентов по трем признакам: Recency (как давно была покупка), Frequency (как часто покупают) и Monetary (сколько денег приносят). Она действительно полезна как базовая отправная точка: быстро показывает качество и активность аудитории.
RFM анализ действительно полезен как базовая модель: он показывает, как давно человек покупал, как часто он покупает и сколько денег приносит. Но у него есть важный предел: он почти не описывает то, что происходит между покупками. А именно там обычно и лежит причина — почему клиент не дошёл до заказа, что именно его интересует, на каком шаге он сомневается, какой канал коммуникации ему удобнее. Поэтому следующий логичный шаг — поведенческая сегментация клиентов, когда мы группируем людей по их действиям и реакции на коммуникации, а не только по факту оплаты.
Если немного упростить, то поведенческие сегменты отвечают на вопрос как ведет себя клиент и дают более прикладные сценарии для маркетинга. Например, один и тот же RFM-сегмент может включать людей с совершенно разными намерениями: кто-то регулярно просматривает карточки, ищет и фильтрует, но не решается купить; кто-то, наоборот, покупает редко и никак не взаимодействует с контентом. С точки зрения рекламы и персонализации это разные ситуации, и работать с ними одинаково обычно неэффективно.
Что такое поведенческая сегментация по событиям
Сегментация по событиям строится на данных поведения пользователей: просмотрах, поисках, действиях с корзиной, кликах по кнопкам, чтении контента, реакциях на рассылки и сообщениях в мессенджерах. Смысл не в том, чтобы собирать все подряд, а в том, чтобы фиксировать события, которые отражают намерение и этап принятия решения.
Чаще всего события удобно воспринимать как путь: сначала интерес (просмотр, поиск), затем оценка (фильтры, сравнение, отзывы), потом действие (корзина, оформление), и уже после — покупка и повторные покупки. По этой логике легко выделять сегменты, которые отличаются не деньгами, а состоянием клиента в воронке.
С чего начать: минимальная структура событий
Чтобы аналитика поведения покупателей работала стабильно, важно заранее договориться о структуре. Минимально стоит обеспечить, чтобы у каждого события были:
- user_id (или устойчивый идентификатор, который можно связать с CRM)
- event_time
- event_name
- session_id (желательно)
- источник/канал (utm, referrer, platform)
- ключевые параметры события (например, product_id, category_id, order_id, cart_id, message_channel)
По событиям обычно удобно делать две большие группы: продуктовые (сайт/приложение) и коммуникационные (email/push/мессенджеры/колл-центр). Когда они связаны одним user_id, появляется возможность видеть не только что делал, но и как реагировал на контакт, и это напрямую влияет на сегментацию клиентов для рекламы.
session_id и utm/referrer/platform нужны, чтобы понимать контекст поведения: где и в какой сессии происходили действия, и какой канал привёл пользователя. Без этого сегментация и оценка эффективности коммуникаций быстро превращаются в догадки.
Примеры поведенческих сегментов, которые чаще всего дают эффект
– Часто смотрит, но редко покупает. Это люди, у которых много product_view или category_view за последние 7-14 дней, но нет покупок или покупка была давно. Часто это сигнал сомнений: не хватает доверия, цены, условий доставки, или ассортимент не совпадает с ожиданиями. В рекламе и персонализации это сегмент для прогрева: социальные доказательства, отзывы, подборки, преимущества сервиса, напоминания о просмотренных товарах, иногда — ограниченные стимулы (но не обязательно скидки).
– Бросает корзину. Здесь всё проще: есть add_to_cart, но нет purchase в окне, например, 1-3 дня. Такой сегмент хорошо активируется цепочками ремаркетинга и триггерных сообщений. При этом полезно различать: бросил на корзине (ещё выбирает) или ушёл на шаге оплаты/доставки (вероятно, столкнулся с барьером).
– Идёт в оформление, но не платит. Если вы фиксируете checkout_start, payment_start, payment_error, то можно отделить людей, которые почти купили, от тех, кто просто положил в корзину. Для рекламы и CRM это самый горячий сценарий. Иногда достаточно подсказать альтернативный способ оплаты, показать условия возврата или поддержки.
– Активен в мессенджерах. События вида message_sent, message_open, message_reply, chat_started помогают выделить людей, которые охотно общаются в канале. Это ценно, потому что у сегмента обычно высокая конверсия при корректной частоте и содержании. Важно не путать доставлено и прочитано/ответил, иначе сегмент получится шумным.
– Покупает только по скидкам. Если у вас есть признаки промо в заказе (promo_used, discount_amount, coupon_code), можно выделять клиентов, которые почти всегда покупают со скидкой. Их лучше вести не через общий скидочный шум, а через персональные условия, закрытые распродажи, уведомления о снижении цены на интересующие категории.
– Возвращается, но интересуется узко. Иногда человек стабильно активен, но только в одной категории или на ограниченном наборе товаров. Такие сегменты хорошо подходят для подборок, рекомендаций, cross-sell внутри контекста, а также для исключений (не показывать нерелевантную рекламу).
Как это считать: базовый подход к SQL и логике
Практически поведенческая сегментация строится одинаково: мы выбираем окно времени (например, 7/14/30 дней), считаем признаки поведения (частоты событий, последнюю дату, уникальные товары/категории), а затем накладываем правила, которые превращают признаки в сегменты.
Ниже пример “скелета”. Он показывает принцип: агрегации по пользователю и потом правила сегментации.
WITH
base AS (
SELECT
user_id,
event_name,
event_time,
product_id,
session_id
FROM events
WHERE event_time >= today() - INTERVAL 30 DAY
),
agg AS (
SELECT
user_id,
countIf(event_name = 'product_view') AS views_30d,
countIf(event_name = 'add_to_cart') AS add_to_cart_30d,
countIf(event_name = 'checkout_start') AS checkout_30d,
countIf(event_name = 'purchase') AS purchases_30d,
maxIf(event_time, event_name = 'purchase') AS last_purchase_time,
maxIf(event_time, event_name = 'add_to_cart') AS last_add_to_cart_time
FROM base
GROUP BY user_id
)
SELECT
user_id,
CASE
WHEN add_to_cart_30d > 0
AND purchases_30d = 0
AND last_add_to_cart_time >= now() - INTERVAL 3 DAY
THEN 'cart_abandoners'
WHEN views_30d >= 10 AND purchases_30d = 0
THEN 'high_intent_browsers_low_purchase'
WHEN checkout_30d > 0 AND purchases_30d = 0
THEN 'checkout_dropoffs'
ELSE 'other'
END AS segment
FROM agg;
Числа вроде 10 просмотров — пример. В реальном проекте пороги подбирают по распределениям и конверсии: например, “high intent” = верхний перцентиль по просмотрам/добавлениям, или точка, где вероятность покупки начинает резко расти. Окна 7/14/30 дней — это не стандарт для всех, а удобные базовые масштабы. Их выбирают от цикла покупки и скорости принятия решения: корзина — 1–3 дня, выбор — 7–14, общая активность — 30+.
Логика окна времени обычно такая:
- Скорость цикла покупки: если товар покупают часто — окна короче; если цикл длинный (техника, мебель) — длиннее.
- Память намерения: “бросил корзину” — это часы/1–3 дня, “смотрит и выбирает” — чаще 7–14 дней, “общая активность” — 30+ дней.
- Короткие окна дают свежий сигнал, но мало данных; длинные — больше данных, но намерение может устареть.
Это некий базовый вариант. На практике сегменты становятся точнее, если добавить несколько важных уточнений.
Во‑первых, лучше считать не только количество, но и уникальность: сколько уникальных товаров смотрел, сколько разных категорий, сколько разных сессий. Частые просмотры в одной сессии и регулярные возвращения — разные истории.
Во‑вторых, важно отделять нет покупки от покупка была давно. Например, для сценария часто смотрит — редко покупает полезно иметь дополнительное условие про last_purchase_time, чтобы не смешивать новичков и тех, кто раньше покупал.
В‑третьих, полезно строить сегменты не только правилами, но и скорингом: когда у каждого пользователя есть некие баллы намерения(простая числовая оценка, насколько пользователь близок к покупке, на основе взвешенных действий + давности), а сегмент — диапазон. Но даже простые правила обычно дают хороший результат, если события качественные.
Как объединить RFM и поведение (чтобы сегменты стали ещё полезнее)
Самый практичный вариант — оставить RFM как слой ценности и добавить поведенческие статусы как слой действия. Тогда коммуникации становятся более управляемыми: вы понимаете и ценность клиента, и что с ним делать сейчас.
Например, можно сделать такую логику: сначала вычислить RFM‑группы, затем внутри каждой группы добавить поведенческий ярлык. В итоге появятся сочетания вроде: высокая ценность + бросает оформление, средняя ценность + реагирует в мессенджере, низкая ценность + активно смотрит категорию X. Это уже напрямую превращается в набор аудиторий для рекламы и сценариев для CRM.
Использование в рекламе и персонализации
Поведенческие сегменты особенно сильны там, где нужна точность момента и сообщения. Обычно это три направления.
Первое — ретаргетинг по намерению. Брошенная корзина, начало оформления, просмотр конкретной категории, повторные визиты без покупки — всё это даёт понятный креатив и посадочную.
Второе — исключения, которые экономят бюджет. Например, если человек уже купил, его можно временно исключить из дожима и переключить на допродажу. Если человек активно реагирует на мессенджер‑канал, можно снизить частоту платной рекламы и перенести часть коммуникаций в более дешевый канал.
Третье — look‑alike по поведению. Вместо того чтобы строить похожие аудитории на всех покупателей, можно брать покупателей с высоким намерением и быстрым циклом принятия решения или покупателей категории X с высокой повторяемостью. Такие аудитории часто получаются чище.
Важные ошибки, из‑за которых сегментация не работает
Поведенческая сегментация ломается не из‑за SQL запросов, а из‑за деталей данных и постановки.
- Если user_id нестабилен и часто меняется, сегменты будут рваться и недооценивать реальную активность.
- Если события не имеют единых названий и параметров, каждый новый отчёт превращается в ручную работу.
- Если нет событий отказов (ошибка оплаты, уход со шага доставки), вы видите только не купил, но не понимаете, где именно проблема.
- Если сегменты не привязаны к действиям (какая коммуникация, какой креатив, какое исключение), они остаются отчетом, а не инструментом.
Вывод
Поведенческая сегментация клиентов — это следующий шаг после RFM, который добавляет к оценке ценности клиентов понимание намерения и текущего состояния воронки. Через сегментацию по событиям вы получаете сегменты, которые проще применить: в триггерных сценариях, в персонализации, в исключениях и в построении аудиторий для рекламы. Ключ к успеху — нормальная структура событий, корректные окна времени и четкое соответствие: сегмент → действие → измерение результата.
Еще больше интересных и познавательных статей вы найдете в нашем блоге









































































