Собесов

Кейс — анализ годовых трендов app-метрик и аномалий сессий

Кейсы и метрикиПродуктовая аналитикаСредняяMiddle

Условие

Дан датасет с дневной 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 вопроса:

  1. Как развивались app-метрики в течение года? Какие тренды? Что их объясняет?
  2. Что вызвало рост среднего времени сессии в конце декабря 2015 и падение в начале июня 2016?
  3. Какие другие полезные метрики можно посчитать?
  4. Презентовать результаты в виде, понятном топ-менеджменту.

Решение

Шаг 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».

Подводные камни

  1. Average vs Median. Медиана 22 секунды и среднее 8 минут — это hint, что данные дисперсные. Никогда не делать выводы только по среднему.
  2. AvgSessionLength обманчив. Может расти просто потому, что упало число коротких сессий новых пользователей, а не потому, что вовлечение выросло.
  3. Аномалии без календаря. Без календаря релизов, маркетинговых кампаний и сезонности любые «причины» — гипотезы.
  4. Срез только по дням. Без разбивки по платформам/гео/когортам можно пропустить, что весь рост идёт от одной страны/устройства.
  5. «Просто графики» в презентации. Топ-менеджмент хочет 2 числа и 1 вывод. Не показываем raw-таблицы.
  6. Ивент A. Без описания, что это за событие, нельзя сказать, хорошо или плохо, что его penetration упал.

Эталонный ответ

  1. EDA: динамика NewUsers, ActiveUsers, Sessions, AvgSession и MedianSession за год; сравнение среднего и медианы; распределение по бакетам сессий; YoY/MoM.
  2. Декабрь 2015: рост AvgSessionLength объясняется снижением доли новых пользователей после новогоднего пика установок + длинные праздники = более длинные сессии у «старых».
  3. Июнь 2016: падение AvgSession — проверять две гипотезы: волна новых (короткие сессии тянут среднее вниз) или продуктовое изменение/релиз. Привязывать к календарю.
  4. Дополнительные метрики: stickiness, sessions per AU, power-user share, event A penetration, avg time per AU.
  5. Презентация: один график + 3 числа + 1 рекомендация.

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти