Условие
Дан датасет с дневной usage-статистикой приложения за год. Колонки:
Date,MedianSessionLength,TotalTimeSpentInAppByAllUsers,AvgSessionLength,NewUsers,ActiveUsers,Sessions,- разбивка пользователей по числу сессий за день:
1 session,2 sessions,3-4,5-6,7-9,10-14,15-19,20+, # of events A,Unique users performing event A.
Нужно ответить на 4 вопроса:
- Как развивались app-метрики в течение года? Какие тренды? Что их объясняет?
- Что вызвало рост среднего времени сессии в конце декабря 2015 и падение в начале июня 2016?
- Какие другие полезные метрики можно посчитать?
- Презентовать результаты в виде, понятном топ-менеджменту.
Решение
Шаг 1. EDA
Минимум, что нужно:
- Длинная динамика DAU/Active Users, NewUsers, Sessions, AvgSessionLength, MedianSessionLength.
- Сравнить average и median (большой разрыв = тяжёлый хвост power-users).
- Распределение пользователей по числу сессий (отношения «1 / 2 / 3-4 / …»).
- Отдельные графики для кохорт по неделям (первый день —
NewUsers). - Сезонность по дню недели и месяцу.
Шаг 2. Объяснение тренда
Типичная картина для freemium-app:
- Рост NewUsers — маркетинг или сезон (декабрь — высокий сезон установок: подарки, праздники).
- Рост ActiveUsers идёт с лагом за NewUsers.
- AvgSessionLength меняется обратно числу новых пользователей: новые сессии короче (онбординг, оценка).
Причины «роста среднего времени сессии в конце декабря 2015»:
- Пик NewUsers падает после Нового года (январский откат), доля «старых» пользователей выше → они в среднем проводят дольше → AvgSessionLength растёт.
- Длинные выходные — больше времени дома, длиннее сессии.
- (Менее вероятно) релиз обновления с новой механикой.
Падение в начале июня 2016:
- Возврат школьников/студентов в активность после экзаменов? Скорее наоборот — в июне сезон отпусков, у части пользователей тратят меньше времени на приложения.
- Большая маркетинг-кампания → много новых = короткие сессии = average падает.
- Изменение в продукте: в мае-июне могли убрать функцию, которая удерживала.
Чтобы это проверить — поднимаем календарь релизов, маркетинг-расходы, push-кампании. Без них — это гипотезы.
Шаг 3. Дополнительные метрики
Из имеющихся данных можно посчитать:
- Sessions per Active User =
Sessions / ActiveUsers— насколько часто люди возвращаются за день. - NewUser ratio =
NewUsers / ActiveUsers— доля новых. - Stickiness =
DAU / MAU(если есть MAU; иначе скользящая 28d). - Power-user share = доля пользователей с ≥ 7 сессиями в день.
- Event A rate per user =
# of events A / Unique users performing event A. - Event A penetration =
Unique users performing event A / ActiveUsers— какая доля активных совершает целевое действие. - AvgTimePerActiveUser =
TotalTimeSpentInAppByAllUsers / ActiveUsers.
Шаг 4. Декомпозиция AvgSessionLength
TotalTimeSpentInAppByAllUsers = AvgSessionLength × Sessions
Если AvgSessionLength падает, проверяем:
- Total time in app падает? (если да — реальный спад вовлечения).
- Total time стабилен, а Sessions растёт? (тогда «среднее на сессию» падает арифметически — это перераспределение, а не падение интереса).
Это разные истории, но в обеих интерпретациях AvgSessionLength снижается. Без декомпозиции легко сделать неправильный вывод.
Шаг 5. Презентация для топ-менеджмента
Один-два слайда:
- График ActiveUsers + NewUsers за год с маркерами (праздники, релизы, кампании).
- Главные числа: рост ActiveUsers, средняя длина сессии, % power-users (один-два числа на слайд).
- Объяснение аномалий: 1 строка под графиком («декабрь — лагающий хвост зимней кампании, июнь — сезонный спад + новая фича X не зашла»).
- Главный вывод и рекомендация: «Сезонность ярко выражена в декабре, но июньский спад — не сезонный → копать релиз X».
Подводные камни
- Average vs Median. Медиана 22 секунды и среднее 8 минут — это hint, что данные дисперсные. Никогда не делать выводы только по среднему.
AvgSessionLengthобманчив. Может расти просто потому, что упало число коротких сессий новых пользователей, а не потому, что вовлечение выросло.- Аномалии без календаря. Без календаря релизов, маркетинговых кампаний и сезонности любые «причины» — гипотезы.
- Срез только по дням. Без разбивки по платформам/гео/когортам можно пропустить, что весь рост идёт от одной страны/устройства.
- «Просто графики» в презентации. Топ-менеджмент хочет 2 числа и 1 вывод. Не показываем raw-таблицы.
- Ивент A. Без описания, что это за событие, нельзя сказать, хорошо или плохо, что его penetration упал.
Эталонный ответ
- EDA: динамика NewUsers, ActiveUsers, Sessions, AvgSession и MedianSession за год; сравнение среднего и медианы; распределение по бакетам сессий; YoY/MoM.
- Декабрь 2015: рост AvgSessionLength объясняется снижением доли новых пользователей после новогоднего пика установок + длинные праздники = более длинные сессии у «старых».
- Июнь 2016: падение AvgSession — проверять две гипотезы: волна новых (короткие сессии тянут среднее вниз) или продуктовое изменение/релиз. Привязывать к календарю.
- Дополнительные метрики: stickiness, sessions per AU, power-user share, event A penetration, avg time per AU.
- Презентация: один график + 3 числа + 1 рекомендация.