0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке мы рассмотрим, что такое Funnel analysis, для чего он используется, и как строить воронки. Мы проведем агрегацию по количеству посещений страниц сайта и покупок с них. В итоге убедимся, что во второй месяц происходит отток покупателей. Также мы проверим три гипотезы и найдем причины оттока.</p>
1
<p>В этом уроке мы рассмотрим, что такое Funnel analysis, для чего он используется, и как строить воронки. Мы проведем агрегацию по количеству посещений страниц сайта и покупок с них. В итоге убедимся, что во второй месяц происходит отток покупателей. Также мы проверим три гипотезы и найдем причины оттока.</p>
2
<p>Умение использовать Funnel analysis позволяет эффективно работать с такими данными, как таблицы действий пользователей системы, а еще выдвигать и проверять гипотезы.</p>
2
<p>Умение использовать Funnel analysis позволяет эффективно работать с такими данными, как таблицы действий пользователей системы, а еще выдвигать и проверять гипотезы.</p>
3
<h2>Funnel analysis</h2>
3
<h2>Funnel analysis</h2>
4
<p><strong>Funnel analysis</strong>- это метод, который помогает узнать, как посетители пользуются веб-сайтом или приложением. Он используется в маркетинге и разработке продуктов, чтобы понять, где пользователи могут отказаться от покупки или заполнения формы, и где скрыта проблема.</p>
4
<p><strong>Funnel analysis</strong>- это метод, который помогает узнать, как посетители пользуются веб-сайтом или приложением. Он используется в маркетинге и разработке продуктов, чтобы понять, где пользователи могут отказаться от покупки или заполнения формы, и где скрыта проблема.</p>
5
<p>Разберем это на примере. Представим, что у нас есть таблица с действиями посетителя на сайте интернет-магазина:</p>
5
<p>Разберем это на примере. Представим, что у нас есть таблица с действиями посетителя на сайте интернет-магазина:</p>
6
<p><strong>сlickstream</strong></p>
6
<p><strong>сlickstream</strong></p>
7
<p>Мы видим таблицу действий посетителя на сайте. Такие таблицы еще называются<strong>clickstream</strong>. Здесь есть следующие столбцы:</p>
7
<p>Мы видим таблицу действий посетителя на сайте. Такие таблицы еще называются<strong>clickstream</strong>. Здесь есть следующие столбцы:</p>
8
<ul><li>datetime - дата и время действия на сайте</li>
8
<ul><li>datetime - дата и время действия на сайте</li>
9
<li>device - устройство, с которого посетитель совершил действие</li>
9
<li>device - устройство, с которого посетитель совершил действие</li>
10
<li>browser - браузер посетителя</li>
10
<li>browser - браузер посетителя</li>
11
<li>clientId - ID клиента</li>
11
<li>clientId - ID клиента</li>
12
<li>page - страница сайта</li>
12
<li>page - страница сайта</li>
13
<li>action - действие, которое совершил посетитель</li>
13
<li>action - действие, которое совершил посетитель</li>
14
</ul><p>Нам нужно проанализировать, как посетители интернет-магазина вели себя на сайте. В итоге нам нужно понять, почему в последнюю неделю происходит отток клиентов, и что на это влияет.</p>
14
</ul><p>Нам нужно проанализировать, как посетители интернет-магазина вели себя на сайте. В итоге нам нужно понять, почему в последнюю неделю происходит отток клиентов, и что на это влияет.</p>
15
<p>Funnel analysis позволяет дата-аналитику выявить источник проблем, например, почему в какой-то момент уменьшился поток клиентов.</p>
15
<p>Funnel analysis позволяет дата-аналитику выявить источник проблем, например, почему в какой-то момент уменьшился поток клиентов.</p>
16
<p>Когда мы занимаемся Funnel analysis, мы строим воронку. Воронка - это диаграмма, которая позволяет статистически проследить, к примеру, сколько людей посетили сайт и сколько из них совершили покупку.</p>
16
<p>Когда мы занимаемся Funnel analysis, мы строим воронку. Воронка - это диаграмма, которая позволяет статистически проследить, к примеру, сколько людей посетили сайт и сколько из них совершили покупку.</p>
17
<p>Посмотрим на пример воронки:</p>
17
<p>Посмотрим на пример воронки:</p>
18
<p>На этой воронке видно два столбца: toPage и buy. Около 120 пользователей посетили сайт, и около 25 совершили на нем покупку.</p>
18
<p>На этой воронке видно два столбца: toPage и buy. Около 120 пользователей посетили сайт, и около 25 совершили на нем покупку.</p>
19
<p>В этом уроке мы агрегируем синтетические данные действий посетителей сайта для построения воронок и выясним причины оттока покупателей во второй месяц.</p>
19
<p>В этом уроке мы агрегируем синтетические данные действий посетителей сайта для построения воронок и выясним причины оттока покупателей во второй месяц.</p>
20
<h2>Агрегация для Funnel analysis</h2>
20
<h2>Агрегация для Funnel analysis</h2>
21
<p>Мы будем строить воронки и определять причины оттока в несколько этапов:</p>
21
<p>Мы будем строить воронки и определять причины оттока в несколько этапов:</p>
22
<ul><li>Проанализируем данные с помощью агрегации для столбцов device, browser, page и action и определим уникальные значения</li>
22
<ul><li>Проанализируем данные с помощью агрегации для столбцов device, browser, page и action и определим уникальные значения</li>
23
<li>Построим воронки посещения и покупок на страницах сайта за первый и второй месяцы и проверим, что есть отток покупателей</li>
23
<li>Построим воронки посещения и покупок на страницах сайта за первый и второй месяцы и проверим, что есть отток покупателей</li>
24
<li>Выдвинем гипотезы о том, почему происходит отток</li>
24
<li>Выдвинем гипотезы о том, почему происходит отток</li>
25
<li>Проверим каждую из этих гипотез и сделаем выводы</li>
25
<li>Проверим каждую из этих гипотез и сделаем выводы</li>
26
</ul><h3>Агрегация для воронки</h3>
26
</ul><h3>Агрегация для воронки</h3>
27
<h4>График воронки</h4>
27
<h4>График воронки</h4>
28
<p>Мы будем анализировать данные из базы<a>clickstream</a>. В ней содержится одна таблица clickstream. Посмотрим на эту таблицу с помощью SQL-запроса:</p>
28
<p>Мы будем анализировать данные из базы<a>clickstream</a>. В ней содержится одна таблица clickstream. Посмотрим на эту таблицу с помощью SQL-запроса:</p>
29
<p>В результате мы видим таблицу из 300 строк, которая содержит данные за два месяца. Таблица выглядит так:</p>
29
<p>В результате мы видим таблицу из 300 строк, которая содержит данные за два месяца. Таблица выглядит так:</p>
30
<p><strong>сlickstream</strong></p>
30
<p><strong>сlickstream</strong></p>
31
<p><a>Ссылка на таблицу</a></p>
31
<p><a>Ссылка на таблицу</a></p>
32
<p>В этой таблице есть шесть параметров:</p>
32
<p>В этой таблице есть шесть параметров:</p>
33
<ul><li>datetime - дата и время события</li>
33
<ul><li>datetime - дата и время события</li>
34
<li>device и browser - говорят, с какого устройства и браузера посетитель зашел на сайт</li>
34
<li>device и browser - говорят, с какого устройства и браузера посетитель зашел на сайт</li>
35
<li>clientId - уникальный ID посетителя</li>
35
<li>clientId - уникальный ID посетителя</li>
36
<li>page - страница, на которую зашел посетитель</li>
36
<li>page - страница, на которую зашел посетитель</li>
37
<li>action - действие посетителя</li>
37
<li>action - действие посетителя</li>
38
</ul><p>Проверим, какие существуют уникальные устройства, браузеры, страницы и действия, и сколько их. Для этого мы агрегируем данные по интересующему для нас параметру и используем функцию count. Также мы отсортируем значения от самых популярных устройств до наименее популярных.</p>
38
</ul><p>Проверим, какие существуют уникальные устройства, браузеры, страницы и действия, и сколько их. Для этого мы агрегируем данные по интересующему для нас параметру и используем функцию count. Также мы отсортируем значения от самых популярных устройств до наименее популярных.</p>
39
<p>Напишем запрос для устройств:</p>
39
<p>Напишем запрос для устройств:</p>
40
<p>В результате запроса мы получили такую таблицу:</p>
40
<p>В результате запроса мы получили такую таблицу:</p>
41
<p><strong>devices</strong></p>
41
<p><strong>devices</strong></p>
42
<p><a>Ссылка на таблицу</a></p>
42
<p><a>Ссылка на таблицу</a></p>
43
<p>В этой таблице мы видим, что самое популярное устройство - POCO M4 Pro, а самое непопулярное - Xiaomi RedmiBook. Всего уникальных устройств восемь.</p>
43
<p>В этой таблице мы видим, что самое популярное устройство - POCO M4 Pro, а самое непопулярное - Xiaomi RedmiBook. Всего уникальных устройств восемь.</p>
44
<p>Напишем такие же запросы для подсчета браузеров, страниц и действий:</p>
44
<p>Напишем такие же запросы для подсчета браузеров, страниц и действий:</p>
45
<p>Результаты запросов дали нам такие таблицы:</p>
45
<p>Результаты запросов дали нам такие таблицы:</p>
46
<p><strong>browsers</strong></p>
46
<p><strong>browsers</strong></p>
47
<p><strong>pages</strong></p>
47
<p><strong>pages</strong></p>
48
<p><strong>actions</strong></p>
48
<p><strong>actions</strong></p>
49
<p><a>Ссылка на таблицу</a></p>
49
<p><a>Ссылка на таблицу</a></p>
50
<p>По таблицам у нас есть семь уникальных браузеров, пять уникальных страниц и три уникальных значения действий.</p>
50
<p>По таблицам у нас есть семь уникальных браузеров, пять уникальных страниц и три уникальных значения действий.</p>
51
<p>Рассмотрим подробнее таблицу pages. В ней есть главная страница main и другие страницы, которые обозначают категории товаров.</p>
51
<p>Рассмотрим подробнее таблицу pages. В ней есть главная страница main и другие страницы, которые обозначают категории товаров.</p>
52
<p>В таблице actions есть три возможных действия:</p>
52
<p>В таблице actions есть три возможных действия:</p>
53
<ul><li>toPage - переход на страницу</li>
53
<ul><li>toPage - переход на страницу</li>
54
<li>buy - покупка</li>
54
<li>buy - покупка</li>
55
<li>пустое значение - отсутствие действия</li>
55
<li>пустое значение - отсутствие действия</li>
56
</ul><h3>Анализ оттока покупателей</h3>
56
</ul><h3>Анализ оттока покупателей</h3>
57
<p>Определить причину оттока покупателей - это задача, которая часто встречается в работе дата-аналитика. Project manager сообщил нам, что во второй месяц в наших данных наблюдается отток покупателей на сайте. Проверим это.</p>
57
<p>Определить причину оттока покупателей - это задача, которая часто встречается в работе дата-аналитика. Project manager сообщил нам, что во второй месяц в наших данных наблюдается отток покупателей на сайте. Проверим это.</p>
58
<p>Построим воронки для каждого отдельного месяца в виде столбчатых диаграмм и сравним их.</p>
58
<p>Построим воронки для каждого отдельного месяца в виде столбчатых диаграмм и сравним их.</p>
59
<p>В таблице clickstream мы видим данные за период с 1 февраля 2023 года по 31 марта 2023 года. Возьмем первый месяц и проведем агрегацию по действиям:</p>
59
<p>В таблице clickstream мы видим данные за период с 1 февраля 2023 года по 31 марта 2023 года. Возьмем первый месяц и проведем агрегацию по действиям:</p>
60
<p>Мы получили таблицу количества разных действий за первый месяц:</p>
60
<p>Мы получили таблицу количества разных действий за первый месяц:</p>
61
<p><strong>First month actions</strong></p>
61
<p><strong>First month actions</strong></p>
62
<p><a>Ссылка на таблицу</a></p>
62
<p><a>Ссылка на таблицу</a></p>
63
<p>В этой таблице мы видим, что за первый месяц совершилось 116 переходов на страницы и 34 покупки. При этом нет пустых значений, когда не было совершено ни одного действия.</p>
63
<p>В этой таблице мы видим, что за первый месяц совершилось 116 переходов на страницы и 34 покупки. При этом нет пустых значений, когда не было совершено ни одного действия.</p>
64
<p>Скопируем эту таблицу в Google Sheets и построим столбчатую диаграмму:</p>
64
<p>Скопируем эту таблицу в Google Sheets и построим столбчатую диаграмму:</p>
65
<p>На этой диаграмме мы видим воронку количества пользователей, которые переходили на страницы на сайте, и тех, кто совершал покупки.</p>
65
<p>На этой диаграмме мы видим воронку количества пользователей, которые переходили на страницы на сайте, и тех, кто совершал покупки.</p>
66
<p>Теперь агрегируем данные для второго месяца и построим воронку:</p>
66
<p>Теперь агрегируем данные для второго месяца и построим воронку:</p>
67
<p><a>Ссылка на таблицу</a></p>
67
<p><a>Ссылка на таблицу</a></p>
68
<p>Здесь мы видим, что число покупок уменьшилось, и появились посетители, которые не совершили никаких действий с текущей страницы.</p>
68
<p>Здесь мы видим, что число покупок уменьшилось, и появились посетители, которые не совершили никаких действий с текущей страницы.</p>
69
<p>Для поиска проблемы дата-аналитик выдвигает гипотезы, которые он потом проверяет. Мы предполагаем, что проблема во второй месяц может быть в некорректном отображении сайта у некоторых посетителей. В таблице clickstream есть информация об устройстве, браузере и страницах. Поэтому мы проверим три гипотезы:</p>
69
<p>Для поиска проблемы дата-аналитик выдвигает гипотезы, которые он потом проверяет. Мы предполагаем, что проблема во второй месяц может быть в некорректном отображении сайта у некоторых посетителей. В таблице clickstream есть информация об устройстве, браузере и страницах. Поэтому мы проверим три гипотезы:</p>
70
<ol><li>На каком-то из устройств сайт отображается некорректно</li>
70
<ol><li>На каком-то из устройств сайт отображается некорректно</li>
71
<li>В каком-то из браузеров сайт отображается некорректно</li>
71
<li>В каком-то из браузеров сайт отображается некорректно</li>
72
<li>Какая-то из страниц сайта отображается некорректно</li>
72
<li>Какая-то из страниц сайта отображается некорректно</li>
73
</ol><p>Проверим каждую из этих гипотез.</p>
73
</ol><p>Проверим каждую из этих гипотез.</p>
74
<h3>Проверка гипотезы об устройствах</h3>
74
<h3>Проверка гипотезы об устройствах</h3>
75
<p>Чтобы построить воронку за первый месяц, нам понадобятся две вспомогательные таблицы: для агрегации действий toPage и buy по устройствам. Создадим их:</p>
75
<p>Чтобы построить воронку за первый месяц, нам понадобятся две вспомогательные таблицы: для агрегации действий toPage и buy по устройствам. Создадим их:</p>
76
<p>Агрегируем данные по устройствам для действия toPage:</p>
76
<p>Агрегируем данные по устройствам для действия toPage:</p>
77
<p>В результате у нас есть таблица:</p>
77
<p>В результате у нас есть таблица:</p>
78
<p><strong>toPage_count_first_month</strong></p>
78
<p><strong>toPage_count_first_month</strong></p>
79
<p><a>Ссылка на таблицу</a></p>
79
<p><a>Ссылка на таблицу</a></p>
80
<p>Мы агрегировали данные для действия toPage по устройствам за первый месяц.</p>
80
<p>Мы агрегировали данные для действия toPage по устройствам за первый месяц.</p>
81
<p>Такую же агрегацию мы проведем и для действия buy:</p>
81
<p>Такую же агрегацию мы проведем и для действия buy:</p>
82
<p><a>Ссылка на таблицу</a></p>
82
<p><a>Ссылка на таблицу</a></p>
83
<p>Теперь мы получили две таблицы, которые мы объединим в одну с помощью LEFT JOIN:</p>
83
<p>Теперь мы получили две таблицы, которые мы объединим в одну с помощью LEFT JOIN:</p>
84
<p>Наша таблица после LEFT JOIN выглядит так:</p>
84
<p>Наша таблица после LEFT JOIN выглядит так:</p>
85
<p><strong>first_month_device_count</strong></p>
85
<p><strong>first_month_device_count</strong></p>
86
<p><a>Ссылка на таблицу</a></p>
86
<p><a>Ссылка на таблицу</a></p>
87
<p>Мы объединили две таблицы, в которых агрегировали количество переходов на страницу и покупок по устройствам.</p>
87
<p>Мы объединили две таблицы, в которых агрегировали количество переходов на страницу и покупок по устройствам.</p>
88
<p>Такие таблицы еще называются pivot table: по оси х мы агрегируем таблицу по одному параметру, а по оси y - по другому.</p>
88
<p>Такие таблицы еще называются pivot table: по оси х мы агрегируем таблицу по одному параметру, а по оси y - по другому.</p>
89
<p>Скопируем эту таблицу в Google Sheets и построим столбчатую диаграмму:</p>
89
<p>Скопируем эту таблицу в Google Sheets и построим столбчатую диаграмму:</p>
90
<p>Google Sheets также дает возможность строить pivot table. Построим с его помощью pivot table для второго месяца.</p>
90
<p>Google Sheets также дает возможность строить pivot table. Построим с его помощью pivot table для второго месяца.</p>
91
<p>Для этого получим данные за второй месяц SQL-запросом:</p>
91
<p>Для этого получим данные за второй месяц SQL-запросом:</p>
92
<p><a>Ссылка на таблицу</a></p>
92
<p><a>Ссылка на таблицу</a></p>
93
<p>Скопируем таблицу clickstream за второй месяц в Google Sheets. Теперь перейдем по "Вставка" - "Создать сводную таблицу". Откроется новый лист с пустой сводной таблицей:</p>
93
<p>Скопируем таблицу clickstream за второй месяц в Google Sheets. Теперь перейдем по "Вставка" - "Создать сводную таблицу". Откроется новый лист с пустой сводной таблицей:</p>
94
<p>На рисунке мы видим пустую pivot table.</p>
94
<p>На рисунке мы видим пустую pivot table.</p>
95
<p>Чтобы провести агрегацию, нужно заполнить ее параметры. В параметре "Строки" выберем "device", в параметре "Столбцы" - "action" и в "Значения" - "action". Теперь для строк укажем сортировку по убыванию, а в "Сортировать по" - "COUNTA для параметра "action" по" -> "toPage".</p>
95
<p>Чтобы провести агрегацию, нужно заполнить ее параметры. В параметре "Строки" выберем "device", в параметре "Столбцы" - "action" и в "Значения" - "action". Теперь для строк укажем сортировку по убыванию, а в "Сортировать по" - "COUNTA для параметра "action" по" -> "toPage".</p>
96
<p>Столбцы отсортируем по убыванию по параметру "action", чтобы получить тот же порядок столбцов, что и в диаграмме за первый месяц. В итоге у нас есть такая таблица:</p>
96
<p>Столбцы отсортируем по убыванию по параметру "action", чтобы получить тот же порядок столбцов, что и в диаграмме за первый месяц. В итоге у нас есть такая таблица:</p>
97
<p>На этом рисунке мы видим итоговую pivot table для устройств за второй месяц. Здесь есть агрегация не только по устройствам и действиям, но и сумма всех значений "Итого".</p>
97
<p>На этом рисунке мы видим итоговую pivot table для устройств за второй месяц. Здесь есть агрегация не только по устройствам и действиям, но и сумма всех значений "Итого".</p>
98
<p>Выделим строки и столбцы, не включая "Итого", и построим по ним столбчатую диаграмму:</p>
98
<p>Выделим строки и столбцы, не включая "Итого", и построим по ним столбчатую диаграмму:</p>
99
<p>Мы построили воронку посещений и покупок с разных устройств за второй месяц.</p>
99
<p>Мы построили воронку посещений и покупок с разных устройств за второй месяц.</p>
100
<p>По сравнению с первым месяцем в этот месяц не было совершено покупок с устройства Xiaomi Redmi 10C, хотя в прошлом месяце их количество составляло девять. Поэтому есть вероятность, что с устройства Xiaomi Redmi 10C сайт отображается некорректно. Запомним это и перейдем к агрегации по браузерам и страницам.</p>
100
<p>По сравнению с первым месяцем в этот месяц не было совершено покупок с устройства Xiaomi Redmi 10C, хотя в прошлом месяце их количество составляло девять. Поэтому есть вероятность, что с устройства Xiaomi Redmi 10C сайт отображается некорректно. Запомним это и перейдем к агрегации по браузерам и страницам.</p>
101
<h3>Проверка гипотез о браузерах и страницах</h3>
101
<h3>Проверка гипотез о браузерах и страницах</h3>
102
<p>Для агрегации по браузерам и страницам мы также используем сводные таблицы в Google Sheets. Построим сводные таблицы для браузеров и изобразим две воронки рядом для удобства сравнения:</p>
102
<p>Для агрегации по браузерам и страницам мы также используем сводные таблицы в Google Sheets. Построим сводные таблицы для браузеров и изобразим две воронки рядом для удобства сравнения:</p>
103
<p>Мы построили две воронки посещений и покупок в разных браузерах за первый и второй месяцы. Значимых различий между ними нет.</p>
103
<p>Мы построили две воронки посещений и покупок в разных браузерах за первый и второй месяцы. Значимых различий между ними нет.</p>
104
<p>Теперь проделаем то же для разных страниц:</p>
104
<p>Теперь проделаем то же для разных страниц:</p>
105
<p>Мы построили воронки для посещений и покупок с разных страниц сайта за первый и второй месяцы. Из значимых отличий мы видим, что во втором месяце отсутствуют покупки со страницы "childrenClothes", хотя в первом месяце было много покупок с нее. Поэтому есть вероятность, что на странице "childrenClothes" есть ошибка, которая не позволяет пользователям совершить покупку.</p>
105
<p>Мы построили воронки для посещений и покупок с разных страниц сайта за первый и второй месяцы. Из значимых отличий мы видим, что во втором месяце отсутствуют покупки со страницы "childrenClothes", хотя в первом месяце было много покупок с нее. Поэтому есть вероятность, что на странице "childrenClothes" есть ошибка, которая не позволяет пользователям совершить покупку.</p>
106
<p>Подведем итоги. В ходе funnel analysis мы обнаружили отток покупателей за второй месяц пользованием сайтом интернет-магазина. Мы выдвинули три гипотезы о том, что сайт может отображаться некорректно на одном из устройств, браузеров или страницы сайта.</p>
106
<p>Подведем итоги. В ходе funnel analysis мы обнаружили отток покупателей за второй месяц пользованием сайтом интернет-магазина. Мы выдвинули три гипотезы о том, что сайт может отображаться некорректно на одном из устройств, браузеров или страницы сайта.</p>
107
<p>Гипотеза о браузерах не подтвердилась, однако гипотезы об устройствах и страницах отклонить нельзя. С этими гипотезами дата-аналитики идут к разработчикам, которые должны их проверить и устранить возможные ошибки.</p>
107
<p>Гипотеза о браузерах не подтвердилась, однако гипотезы об устройствах и страницах отклонить нельзя. С этими гипотезами дата-аналитики идут к разработчикам, которые должны их проверить и устранить возможные ошибки.</p>
108
<h2>Выводы</h2>
108
<h2>Выводы</h2>
109
<p>В этом уроке мы определили, что такое Funnel analysis и как с помощью этого метода анализировать данные типа clickstream. Мы выдвинули три гипотезы о том, почему происходит отток покупателей во второй месяц на сайте интернет-магазина, агрегировали данные и построили по ним воронки в виде столбчатых диаграмм. Также мы опровергли одну из гипотез и отдали разработчикам на проверку две другие.</p>
109
<p>В этом уроке мы определили, что такое Funnel analysis и как с помощью этого метода анализировать данные типа clickstream. Мы выдвинули три гипотезы о том, почему происходит отток покупателей во второй месяц на сайте интернет-магазина, агрегировали данные и построили по ним воронки в виде столбчатых диаграмм. Также мы опровергли одну из гипотез и отдали разработчикам на проверку две другие.</p>