Перейти к содержимому
TelegramGitHub

Кейс 1: падение вовлечённости

Это кейс, а не урок. Здесь нет готовых заданий с проверкой. Задача — понять, почему упала вовлечённость, и предложить, что делать. Перед началом прочитайте описание кейсов и Yammer и правила работы.

Решайте сами, без AI. Ответы откройте только после того, как попробовали сами: разбор.

Вы пришли на работу во вторник, 2 сентября 2014 года. Руководитель продукта подходит к вашему столу. Он просит посмотреть на дашборд вовлечённости. На дашборде видно падение в конце графика.

Что показывает график:

  • по оси X — неделя;
  • по оси Y — число вовлечённых пользователей за неделю.

В Yammer пользователь «вовлечён», если сделал хотя бы один запрос к серверу, пока работал с продуктом. В данных это события с event_type = 'engagement'.

Одна точка графика читается так: «сколько пользователей сделали хотя бы одно engagement-событие за неделю, которая начинается с этой даты».

Ваша задача:

  • найти причину падения;
  • если нужно, предложить решение.

Не открывайте данные сразу. Сначала подумайте.

  • Составьте список возможных причин падения.
  • Запишите, как вы проверите каждую причину.
  • Расставьте причины по порядку проверки. Запишите правило, по которому вы их сортировали.
  • Поймите, что график показывает, а чего не показывает. Например, из него не видно, кто именно перестал заходить.

Нужны четыре таблицы. Данные не настоящие. Мы сгенерировали их сами. Структура похожа на данные Yammer.

Одна строка на пользователя.

КолонкаЧто это
user_idУникальный ID пользователя. Связывает с user_id в других таблицах.
created_atКогда пользователь зарегистрировался.
stateСтатус: active или pending.
activated_atКогда пользователь активировался (если активен).
company_idID компании пользователя.
languageЯзык, который выбрал пользователь.

Одна строка на событие. Событие — это действие пользователя в 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Открыл входящие.

События, связанные с письмами. Структура похожа на таблицу событий.

КолонкаЧто это
user_idПользователь, которому относится событие.
occurred_atКогда произошло событие.
actionЧто произошло (список ниже).
user_typeТип пользователя (число).

Значения action:

ЗначениеЧто значит
sent_weekly_digestПользователю отправили письмо-дайджест с актуальными обсуждениями.
sent_reengagement_emailПользователю отправили письмо, чтобы вернуть его в продукт.
email_openПользователь открыл письмо.
email_clickthroughПользователь нажал на ссылку в письме.

Справочник скользящих периодов. Он нужен, чтобы построить график выше. Вам не обязательно его использовать. Но стоит понять, как он работает.

КолонкаЧто это
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_7d
FROM benn.dimension_rollup_periods p
JOIN 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) = 1
GROUP BY 1
ORDER BY 1;

Идите по списку гипотез по порядку. Сохраняйте запросы в файл. Затем ответьте на вопросы:

  1. Привели ли ответы на первые гипотезы к новым вопросам?
  2. Если да, какие это вопросы и как вы их проверите?
  3. Если на вопрос нельзя ответить только данными, как вы получите ответ? Представьте, что вы работаете в этой компании.
  4. Какая причина падения кажется самой вероятной?
  5. Что компании стоит сделать?

Когда закончите, откройте разбор.