Кейс 1: падение вовлечённости
Это кейс, а не урок. Здесь нет готовых заданий с проверкой. Задача — понять, почему упала вовлечённость, и предложить, что делать. Перед началом прочитайте описание кейсов и Yammer и правила работы.
Решайте сами, без AI. Ответы откройте только после того, как попробовали сами: разбор.
Вы пришли на работу во вторник, 2 сентября 2014 года. Руководитель продукта подходит к вашему столу. Он просит посмотреть на дашборд вовлечённости. На дашборде видно падение в конце графика.
Что показывает график:
- по оси X — неделя;
- по оси Y — число вовлечённых пользователей за неделю.
В Yammer пользователь «вовлечён», если сделал хотя бы один запрос к серверу, пока работал с продуктом. В данных это события с event_type = 'engagement'.
Одна точка графика читается так: «сколько пользователей сделали хотя бы одно engagement-событие за неделю, которая начинается с этой даты».
Ваша задача:
- найти причину падения;
- если нужно, предложить решение.
Первый шаг: ориентация
Заголовок раздела «Первый шаг: ориентация»Не открывайте данные сразу. Сначала подумайте.
- Составьте список возможных причин падения.
- Запишите, как вы проверите каждую причину.
- Расставьте причины по порядку проверки. Запишите правило, по которому вы их сортировали.
- Поймите, что график показывает, а чего не показывает. Например, из него не видно, кто именно перестал заходить.
Нужны четыре таблицы. Данные не настоящие. Мы сгенерировали их сами. Структура похожа на данные Yammer.
tutorial.yammer_users
Заголовок раздела «tutorial.yammer_users»Одна строка на пользователя.
| Колонка | Что это |
|---|---|
user_id | Уникальный ID пользователя. Связывает с user_id в других таблицах. |
created_at | Когда пользователь зарегистрировался. |
state | Статус: active или pending. |
activated_at | Когда пользователь активировался (если активен). |
company_id | ID компании пользователя. |
language | Язык, который выбрал пользователь. |
tutorial.yammer_events
Заголовок раздела «tutorial.yammer_events»Одна строка на событие. Событие — это действие пользователя в Yammer: вход, сообщение, поиск, шаг регистрации.
| Колонка | Что это |
|---|---|
user_id | Кто совершил событие. |
occurred_at | Когда произошло событие. |
event_type | Общий тип. signup_flow — процесс регистрации. engagement — работа с продуктом после регистрации. |
event_name | Конкретное действие (список ниже). |
location | Страна, из которой пришло событие (по IP). |
device | Устройство, с которого пришло событие. |
user_type | Тип пользователя: число 1, 2 или 3. |
Значения event_name:
| Значение | Что значит |
|---|---|
create_user | Пользователя добавили в базу при регистрации. |
enter_email | Начал регистрацию, ввёл email. |
enter_info | Ввёл имя и личные данные. |
complete_signup | Завершил регистрацию. |
home_page | Открыл главную страницу. |
like_message | Поставил лайк чужому сообщению. |
login | Вошёл в Yammer. |
search_autocomplete | Выбрал результат из подсказок поиска. |
search_run | Запустил поиск и открыл страницу результатов. |
search_click_result_X | Нажал на результат поиска номер X (X от 1 до 10). |
send_message | Написал сообщение. |
view_inbox | Открыл входящие. |
tutorial.yammer_emails
Заголовок раздела «tutorial.yammer_emails»События, связанные с письмами. Структура похожа на таблицу событий.
| Колонка | Что это |
|---|---|
user_id | Пользователь, которому относится событие. |
occurred_at | Когда произошло событие. |
action | Что произошло (список ниже). |
user_type | Тип пользователя (число). |
Значения action:
| Значение | Что значит |
|---|---|
sent_weekly_digest | Пользователю отправили письмо-дайджест с актуальными обсуждениями. |
sent_reengagement_email | Пользователю отправили письмо, чтобы вернуть его в продукт. |
email_open | Пользователь открыл письмо. |
email_clickthrough | Пользователь нажал на ссылку в письме. |
benn.dimension_rollup_periods
Заголовок раздела «benn.dimension_rollup_periods»Справочник скользящих периодов. Он нужен, чтобы построить график выше. Вам не обязательно его использовать. Но стоит понять, как он работает.
| Колонка | Что это |
|---|---|
period_id | Тип периода. Дашборд использует 1007 — скользящие 7 дней. |
time_id | Точка на графике. Для 2014-08-01 это 7 дней, которые закончились 2014-08-01. |
pst_start | Начало периода по тихоокеанскому времени. Для 2014-08-01 это 2014-07-25. |
pst_end | Конец периода по тихоокеанскому времени. Для 2014-08-01 это 2014-08-01. |
utc_start | Начало периода по UTC. |
utc_end | Конец периода по UTC. |
Так выглядит запрос, который строит график скользящих 7 дней. Он берёт по одной точке в неделю.
SELECT p.time_id::DATE AS day, COUNT(DISTINCT e.user_id) AS engaged_users_7dFROM benn.dimension_rollup_periods pJOIN tutorial.yammer_events e ON e.occurred_at >= p.pst_start AND e.occurred_at < p.pst_end AND e.event_type = 'engagement'WHERE p.period_id = 1007 AND p.time_id BETWEEN '2014-07-20' AND '2014-09-01' AND DAYOFWEEK(p.time_id) = 1GROUP BY 1ORDER BY 1;Что нужно сделать
Заголовок раздела «Что нужно сделать»Идите по списку гипотез по порядку. Сохраняйте запросы в файл. Затем ответьте на вопросы:
- Привели ли ответы на первые гипотезы к новым вопросам?
- Если да, какие это вопросы и как вы их проверите?
- Если на вопрос нельзя ответить только данными, как вы получите ответ? Представьте, что вы работаете в этой компании.
- Какая причина падения кажется самой вероятной?
- Что компании стоит сделать?
Когда закончите, откройте разбор.