Что такое когортный анализ?
На данный момент существует большое количество решений по анализу поведения аудитории. Когортный анализ одно из таких решений.
В этой статье мы разберём, как в AW BI проанализировать покупателей, совершивших первую покупку в определённый месяц, и оценить влияние маркетинговых акций на их удержание.
Когортный анализ — это метод анализа данных, который изучает поведение групп объектов (когорт), объединённых общим признаком или временным периодом.
Когорта — группа пользователей, клиентов или других объектов, которые совершили определённое действие в один и тот же период (например, сделали первую покупку в январе 2025 года).
Этот метод помогает:
- Оценить удержание клиентов (какая доля пользователей возвращается).
- Измерить эффективность маркетинговых кампаний (какие акции привлекли больше лояльных клиентов).
- Выявить закономерности поведения (как часто клиенты совершают повторные покупки).
- Сравнить разные группы пользователей (например, клиенты из разных каналов привлечения).
Результаты когортного анализа позволяют определить, насколько принятые решения были эффективны, увидеть отложенный эффект от маркетинговых активностей.
Как провести когортный анализ в AW BI
1. Определяем, какой именно показатель будем анализировать
Предположим у нас есть задача проанализировать поведение покупателей, совершивших первую покупку в определённый месяц, и оценить эффективность маркетинговых акций в последующие месяцы, направленные на возвращение покупателей и совершение ими повторных покупок.
В таком случае нашими показателями будут количество повторных покупок клиентов и % повторных покупок.
2. Определение когорт
Выбор критериев, по которым будет формироваться когорта (дата регистрации, первый заказ, источник трафика и т.д.).
Для данного исследования мы выделяем когорты на основе месяца совершения первой покупки. Такой подход позволяет:
- Группировать покупателей по временным периодам их первого взаимодействия с продуктом
- Отслеживать динамику поведения после начальной транзакции
- Оценивать эффективность удержания клиентов на разных этапах
Такой анализ особенно ценен для оценки долгосрочного эффекта от маркетинговых кампаний и выявления сезонных закономерностей в покупательском поведении.
3. Выбор временного интервала
Определяем периоды времени для анализа поведения когорт (день, неделя, месяц и т.д.).
В нашем примере мы анализируем когорты по месяцам.
4. Подготовка данных
У нас есть исходные данные в источнике:
- id_polzovatela — уникальный ID покупателя.
- buy_date — дата покупки.
На базе источника была создана модель данных, которую дополнили следующими вычисляемыми полями, которые понадобятся на этапе создания виджета:
Поле | Формула | Описание |
---|---|---|
first_buy_date | min(buy_date) over (partition by id_polzovatela) | Дата первой покупки пользователя |
m_y_first_buy | concat(month(min(buy_date) over (partition by id_polzovatela)), ‘.’, year(min(buy_date) over (partition by id_polzovatela))) | Месяц и год первой покупки (когорта) |
months | case when extract(month from first_buy_date) = extract(month from buy_date) and extract(year from first_buy_date) = extract(year from buy_date) then ‘Месяц 0’ else concat('Месяц ', abs(extract(year from buy_date)*12 + extract(month from buy_date) - (extract(year from first_buy_date)*12 + extract(month from first_buy_date))))end | Определяем временные интервалы, на основе которых будем оценивать созданные когорты |
sort_x | case when extract(month from first_buy_date) = extract(month from buy_date) and extract(year from first_buy_date) = extract(year from buy_date) then ‘00’ else right(‘00’ | Данное вычисляемое поле создано для сортировки временных интервалов |
где
Ø concat() – это функция, предназначенная для объединения двух или нескольких строковых значений в одну строку
Ø функция extract() служит для извлечения отдельных компонентов из временной метки
Результат
5. Визуализация данных
Выбираем тип виджета «Сводная таблица».
Для визуализации когортного анализа будут использоваться расчетный агрегат, переменные (для выбора типа расчета, проценты или штуки, и расчета процентного анализа).
Структура виджета следующая:
- Строки: Месяц и год первой покупки (когорты).
- Столбцы: Месяцы (временные интервалы).
- Переменные:
Нужно создать переменные, которые в последующих расчетах помогут подсчитать процент повторных покупок. Для этого создадим переменные 1.2025-7.2025. Также, нам нужна переменная для переключения типа расчетов между штуками и процентами.
Алиас | Наименование | Тип данных | Тип переменной | Вид расчетов | Описание |
---|---|---|---|---|---|
1.2025 | period_1 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘1.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 1.2025 |
2.2025 | period_2 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘2.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 2.2025 |
3.2025 | period_3 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘3.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 3.2025 |
4.2025 | period_4 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘4.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 4.2025 |
5.2025 | period_5 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘5.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 5.2025 |
6.2025 | period_6 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘6.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 6.2025 |
7.2025 | period_7 | Число(целое) | Расчетная | COUNT_IF([id_polzovatela], [calc__m_y_first_buy] = ‘7.2025’ and [calc__months] = ‘Месяц 0’) | Расчет начального показателя покупок для подсчета процентов за 1.2025 |
Повторные покупки | tab | Строка | Редактируемая | Тип отображения: Список. Получение значений: Ручной ввод. Значения:в %в штуках | Переменная нужна для выбора типа расчета (проценты или штуки) |
4.Расчетные агрегаты:
Расчетны агрегат для подсчета повторных покупок в штуках и в процентах использует следующую формулу:
IF [tab] = 'в штуках' THEN
STR(COUNT([id_polzovatela]))
ELSEIF [tab] = 'в %' THEN
STR(ROUND(
(COUNT([id_polzovatela]) /
INT(
ANY
(
CASE [calc__m_y_first_buy]
WHEN '1.2025' THEN STR([period_1])
WHEN '2.2025' THEN STR([period_2])
WHEN '3.2025' THEN STR([period_3])
WHEN '4.2025' THEN STR([period_4])
WHEN '5.2025' THEN STR([period_5])
WHEN '6.2025' THEN STR([period_6])
WHEN '7.2025' THEN STR([period_7])
ELSE '1'
END
)
)
)*100,2)
)
ELSE
'0'
END
- Скрытые поля для сортировки:
· Дата покупки - сортировка по возрастанию, уровень группировки: Месяц и год первой покупки
· Сортировка по Х - сортировка по возрастанию, уровень группировки: Месяцы
Настройка визуализации
- Форматирование:
Форматирование применяется для расчетного агрегата Покупки. Во вкладке Форматирование, под строкой Агрегаты выберете «Добавить группу», тип форматирования: гистограмма, вид: градиент по столбцу без индикатора. Кнопка «Добавить цвет» позволит добавить новый слот окрашивания.
6. Анализ результатов:
На основании данных когортного анализа можно наблюдать следующие закономерности:
- Для когорты марта 2025 года на 4-й месяц после первой покупки и для когорты апреля 2025 года на 3-й месяц (июль 2025) зафиксирован значительный рост повторных покупок. Показатель повторных покупок превысил значения предыдущих месяцев
- Выявленная динамика позволяет сделать следующие выводы:
Маркетинговая кампания, проведенная в июле 2025 года, продемонстрировала высокую эффективность и реализованные в этот период рекламные активности успешно стимулировали клиентов к повторным покупкам.
Совет: Для углублённого анализа добавьте фильтры по каналам привлечения или категориям товаров.
Пример выше можно посмотреть и клонировать для использования на собственных данных по ссылке.