52

Александр Лукин

Embed Size (px)

Citation preview

Аналитика мобильного проектапроверяй и доверяй

Александр Лукин

Тестируем концепции, проводим эксперименты

Аналитика

Следим за показателями - AU, retention, вовлеченность, целевые события

Улучшаем пользовательский опыт

Трекинг

Отслеживание источников трафика и построение отчетов по кампаниям

Оптимизация CPI,CPA кампаний

Crash Reporting

Следим за стабильностью приложения

Оперативно узнаем о новых проблемах, воспроизводим, исследуем и фиксим

End-to-end платформа аналитики

Crash ReportingAd TrackingApp Analytics

Real-time отчеты и обработка

Нет ограничений на объем данных

Доступ к сырым данным

Бесплатно

End-to-end платформа аналитики

SDK под все платформы (почти)

End-to-end платформа аналитики

Взгляните на демо и начните пользоваться appmetrica.yandex.com

“Trust, but verify”R. Reagan

Проекты с правильной аналитикой проектируют метрики и все остальное заранее

Часто используется несколько платформ аналитики

Нужно больше аналитики

Нужно больше аналитики

В чем проблема?

Аналитика N

Аналитика K

Расхождение в Active Users

117,500

125,000

132,500

140,000

147,500

155,000

07 мар 08 мар 09 мар 10 мар 11 мар 12 мар 13 мар

AppMetrica Flurry

Расхождение в Active Users

Dimension AppMetrica Flurry Diff

07 мар 115,221 114,494 -0.63%

08 мар 123,848 127,870 3.25%

09 мар 147,606 149,915 1.56%

10 мар 149,263 146,349 -1.95%

11 мар 134,026 127,214 -5.08%

12 мар 119,622 115,269 -3.64%

13 мар 126,212 128,931 2.15%

Расхождение может быть незначительным - решать вам.

Это может влиять на

Расхождение в Active Users

проектные решения (thx captain)

Расхождение может быть незначительным - решать вам.

Это может влиять на

Расхождение в Active Users

проектные решения (thx captain)

прогнозирование

Расхождение может быть незначительным - решать вам.

Это может влиять на

Расхождение в Active Users

проектные решения (thx captain)

прогнозирование

другие агрегатные метрики - например, retention

Расхождение в retention W2

43%

51%

59%

67%

75%

6-Apr 20-Apr 4-May 18-May 1-Jun 15-Jun

MAT Flurry AppMetrica

Разлет значений - 10-20%

Действительно плохо - совсем разные тренды

Расхождение в retention W2

Очевидно, что разница - в исходных данных

Как определена метрика Active Users?

Active Users

An active user is defined as a user that has had at least one session with your application during a given time period (days, weeks, months)…

Yahoo Developer Network

https://developer.yahoo.com/flurry/docs/overview/

Расхождение в Sessions

577,000

604,000

631,000

658,000

685,000

712,000

739,000

766,000

793,000

820,000

07 мар 08 мар 09 мар 10 мар 11 мар 12 мар 13 мар

AppMetrica Flurry

Расхождение в Sessions

Dimension AppMetrica Flurry Diff AU Diff

07 мар 591,413 601,259 1.66% -0.63%

08 мар 626,159 666,287 6.41% 3.25%

09 мар 766,076 785,369 2.52% 1.56%

10 мар 782,661 778,891 -0.48% -1.95%

11 мар 689,813 654,401 -5.13% -5.08%

12 мар 589,589 576,078 -2.29% -3.64%

13 мар 662,192 690,016 4.20% 2.15%

Число и продолжительность сессии - хорошие метрики для оценки вовлеченности пользователей.

Расхождение в Sessions

Число и продолжительность сессии - хорошие метрики для оценки вовлеченности пользователей.

Расхождение в Sessions

Нужно понять причину расхождения

Число и продолжительность сессии - хорошие метрики для оценки вовлеченности пользователей.

Расхождение в Sessions

Почему при большем числе сессий одна система рассчитывает меньшее количество пользователей?

Нужно понять причину расхождения

Число и продолжительность сессии - хорошие метрики для оценки вовлеченности пользователей.

Расхождение в Sessions

Почему при большем числе сессий одна система рассчитывает меньшее количество пользователей?

Нужно понять причину расхождения

Очевидно, сессии генерируются разными множествами устройств

Как определена метрика Sessions?

Sessions

A session is one use of the application by an end user. This typically begins when the application is launched and ends when the application is terminated. Depending on the platform, the Flurry SDK may allow you to specify when a session starts and stops, in which case the definition can vary depending on your implementation.

Yahoo Developer Network

https://developer.yahoo.com/flurry/docs/overview/

Insight #1 - трекинг сессий

Сессия привязана к жизненному циклу приложения - вызов методов вручную или автотрекинг

onStart()/onStop()

onStart()

Пользовательская сессия in progress

onStop()

Входящий звонок (2 минуты)

onStart()

Новая сессия или продолжение?

Insight #1 - трекинг сессий

Insight #1 - трекинг сессий

Сессия привязана к жизненному циклу приложения - вызов методов вручную или автотрекинг

Конфигурируемый таймаут сессии - решайте сами

onStart()/onStop()

setSessionTimeout(60)

Пользователи без сессии

Приложение Yandex.Disk. Синхронизация файлов в бэкграунде

AppMetrica SDK

t

Events

File Sync Successful Folder Sync Failed Photo Sync Successful

Пользователи без сессии

В отчете События хотим увидеть % пользователей с успешными/неуспешными синхронизациями.

Event Name Users, % Events

File Sync Successful 95% 1,789,687

Folder Sync Failed 5% 1,432

Photo Sync Successful 99% 1,809,888

Insight #2 - метрика Devices

Device - уникальным образом идентифицированный отправитель событий

Если есть хотя бы одно событие - есть и device

Device - уникальным образом идентифицированный отправитель событий. Если есть хотя бы одно событие - есть и device

Insight #2 - итого

Device - уникальным образом идентифицированный отправитель событий. Если есть хотя бы одно событие - есть и device

Session - сеанс использования приложения, определенный реализацией разработчика или автотрекингом

Insight #2 - итого

Device - уникальным образом идентифицированный отправитель событий. Если есть хотя бы одно событие - есть и device

Session - сеанс использования приложения, определенный реализацией разработчика или автотрекингом

Active User - это device, имеющий за требуемый период хотя бы одну сессию

Insight #2 - итого

N.B. - у приложения Я.Диск различие Users и Devices - в 3 раза

Выбираем метрику в зависимости от бизнес-логики отчета!

Dimension Users Devices

Insight #2 - итого

Ничего не помогает

onStart()

Пользовательская сессия in progress

onStop()

Прослушивание в фоне

Анализируем поведение:

Приложение Yandex.Music

пока идет воспроизведение - считаем пользовательскую сессию

по событиям (pause/play…)

Как это работает сейчас

Приложение Yandex.Music. Воспроизведение в фоне

AppMetrica SDK

t

Events

Play Pause

START

Уходим в bg

START

SessionID = 1 SessionID = 2

Push ReceivedSwitch track

Как это можно решить - hit-based подход

Никто не знает контекста лучше вашего прикладного кода.

Как это можно решить - hit-based подход

Разделим все события на 2 типа:

USER INTERACTION

Событие, связанное с пользовательской активностью

Метрика Active Users считается не по сессиям, а по событиям данного типа

Никто не знает контекста лучше вашего прикладного кода.

USER INTERACTION BACKGROUND ACTIVITY

Событие, связанное с пользовательской активностью

Метрика Active Users считается не по сессиям, а по событиям данного типа

Событие, связанное с бэкграундной активностью самого приложения

Разделим все события на 2 типа:

Никто не знает контекста лучше вашего прикладного кода.

Как это можно решить - hit-based подход

Откажемся от общего понятия Session

Как это можно решить - hit-based подход

Откажемся от общего понятия Session

Как это можно решить - hit-based подход

Предоставим возможность самостоятельно определять начало и конец сессии

SDK только проверяет консистентность начал и концов

Откажемся от общего понятия Session

Как это можно решить - hit-based подход

Предоставим возможность самостоятельно определять начало и конец сессии

SDK только проверяет консистентность начал и концов

Сессии получают текстовые метки

“Сессия UI-взаимодействия”, “Сессия прослушивания”, etc.

Проверим

Приложение Yandex.Music. Воспроизведение в фоне

AppMetrica SDK

t

Events

Play Pause

START “Music Play”

Уходим в bgPush Received

Switch trackUI

BG

Session Track END “Music Play”

Используем в отчетах метрики по новым, промеченным сессиям

Dimension Users Devices Music Play

Проверим

Как сделать?

AppMetrica позволяет в добавить любой JSON-payload в событие. Используем их для разметки событий и трекинга промеченных сессий.

Map<String, Object> eventAttributes = new HashMap<String, Object> ();

eventAttributes.put("EventType", “USER_INTERACTION");

YandexMetrica.reportEvent("Play", eventAttributes);

Как сделать?

In-house analytics

Для построения отчета необходимо получить сырые данные и выполнить агрегацию самостоятельно

Logs API

Выгрузка большой

плоской таблицы

Агрегация

Pandas + Highcharts

Excel

Важно понимать методологию расчета метрик, которыми вы пользуетесь

Мораль

Расчет собственных метрик на hit’ах - next-level

Исследуйте, как работает ваша платформа аналитики

Centimeters

Free install attribution and mobile analytics platform

appmetrica.yandex.com