Amplitude. Лучшая система аналитики для мобильных приложений и веб сервисов

Почти два года назад я делал сравнение популярных систем аналитики для мобильных приложений. Тогда моим фаворитом была система аналитики Mixpanel. Но рынок не стоит на месте, и теперь у меня появилась новая любимая система аналитики – Amplitude.

Далее в статье я подробно расскажу про все преимущества  Amplitude, но вот краткий набор причин, почему это система аналитики для мобильных приложений и веб сервисов заслуживает вашего внимания:

  1. Amplitude – улучшенная версия Mixpanel в плане возможностей для аналитики (сегментация ивентов, воронки, ретеншн, когортный анализ, профили пользователей, live view, очень гибкое формирование  сегментов и когорт, дешборды, данные в реальном времени и многое другое)
  2. Amplitude в разы дешевле Mixpanel. А при объеме ивентов менее 10 миллионов в месяц и вовсе бесплатная.

Заинтересовал? Тогда к деталям.

 

система аналитики мобильных приложений Amplitude

 

 

Краткая история системы аналитики Amplitude

Первый раз я столкнулся с Amplitude около 2 лет назад. Сервис был достаточно молодым, выглядел интересно и позиционировался как дешевая альтернатива Mixpanel.

Звучало очень заманчиво (меня поймут пользователи Mixpanel), но тогда в Amplitude не было двух вещей, которые для меня были критичны (на тот момент я рассматривал системы аналитики в контексте анализа мобильных игр):

  1. Провязки системы аналитики с сервисами трекинга источников трафика (Appsflyer, MAT и прочие)
  2. Возможность агрегации (сумма, среднее, максимум, минимум) числовых параметров ивентов и их последующей сегментации (для анализа внутренней экономики игр)

Но я продолжил наблюдать за сервисом, и за прошлые 2 года Amplitude превратился в самый мощный и гибкий инструмент для аналитики, реализовав все то, чего так не хватало в Mixpanel.

В свою очередь Mixpanel за это время потерял фокус на аналитике. Прошлые 2 года Mixpanel в основном развивал свой маркетинговый продукт People, куда входят пуши, профили, опросы, аб тесты и прочее.

Далее я опишу ключевые возможности системы аналитики Amplitude. Инструмент гибкий и мощный, поэтому все аспекты я осветить не смогу. Более подробно почитать про сервис вы можете на сайте.

 

Параметры ивентов, user properties, профили пользователей

Начнем с основ. Работая с данными, я хочу знать состояние пользователя на момент выполнения конкретного действия в приложении. Для этого я раньше рекомендовал вводить специальные глобальные переменные, которые надо было передавать со всеми ивентами. В таких глобальных переменных хранилось состояние пользователя на текущий момент: количество потраченных денег, дата прихода, количество пройденных уровней.

Это немного костыльное решение было призвано решить проблему того, что Mixpanel разделил все то, что связано с ивентами, и все то, что связано с профилями пользователей (People). Кроме всего прочего, подключение People существенно увеличивало стоимость сервиса.

Amplitude сделал все намного логичнее. Для каждого пользователя они хранят его профиль (аналог People в Mixpanel). Профиль состоит из по умолчанию собираемой информации и из user properties (характеристики пользователя), которые вы определяете самостоятельно.

профиль пользователя в системе аналитики мобильных приложений Amplitude

При отправке любого ивента вся информация про пользователя из его профиля к этому ивенту прикрепляется. В итоге мы знаем все о состоянии пользователя на момент совершения определенного действия, так как ивент состоит из параметров ивентов и текущего состояния профиля пользователя.

event structure 1

event structure 3

event structure 2

 

Сегментация ивентов и сегменты пользователей

За последние несколько лет я пообщался с огромным количеством компаний, разрабатывающих системы аналитики. Что удивительно, большинство из них не понимают разницы между сегментацией ивентов и выделением сегментов пользователей. А она есть.

Amplitude позволяет очень гибко работать с сегментацией ивентов по их параметрам. Тут их возможности похожи на то, что позволяет Mixpanel:

  1. Сегментация ивента с неограниченным количеством условий по всем его параметрам
  2. Возможность получить разбику ивента по какому-то параметру.
  3. Umique / total / average / % dau / sum,avg,min,max
  4. Возможность вывести несколько ивентов на один график
  5. Возможность использования формул над числовыми рядами двух выбранных ивентов

segmentation инструмент сегментации в системе аналитики мобильных приложений Amplitude

Amplitude также позволяет выделять сегменты пользователей. Например, я могу выделить сегмент пользователей из США и сегмент пользователей из Канады и сравнивать их поведение. А могу выделить сегмент пользователей, которые пришли в версию 1.2, а также сегмент пользователей, которые пришли в версию 1.3.

выделение сегментов в системе аналитики мобильных приложений Amplitude

Возможность выделить сегмент размещена справа от основной рабочей области.

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

Сегменты протянуты через все основные инструменты, предоставляемые Amplitude: сегментация, воронки, ретеншн, анализ денег.

В Mixpanel сегментов нет, поэтому при необходимости исследовать несколько групп пользователей приходится регулярно переключаться между вкладками, а при каждой выборке данных заново вводить все параметры, характеризующие нужную тебе группу пользователей.

 

Retention

Казалось бы, что можно придумать в отчете Retention? Но и тут в Amplitude есть приятные возможности:

  1. Amplitude умеет считать обычный Retention, Rolling Retention, а также Retention с заданными вами временными интервалами (например, вы можете выставить следующие границы: 1 день, 2-5 день, 6-12 день).
  2. В отчете Retention можно выделять и сравнивать разные сегменты пользователей (по странам, по версиям и тд)
  3. Retention можно визуализировать в формате Retention Over Time, где будет показана динамика Retention нескольких конкретных дней (очень удобно для мониторинга влияния изменений в продукте)

retention отчет в системе аналитики мобильных приложений Amplitude

retention сравнение разных сегментов в системе аналитики Amplitude

retention over time динамика retention в системе аналитики Amplitude

 

Воронки

Воронки похожи на то, что есть в Mixpanel. Из приятных возможностей:

  1. Неограниченное количество условий на параметры у ивента, характеризующего определенный шаг. В Mixpanel это теперь тоже возможно, но реализовано крайне неудобно.
  2. Выделение сегментов для быстрого сравнения между собой.
  3. Возможность ограничить окно конверсии воронки (на сколько дней вперед от первого ивента в воронке надо искать конверсионный ивент)
  4. Отслеживание динамики определенного шага воронки.

funnels воронки в системе аналитики мобильных приложений Amplitude

 

Выделение и исследование когорт пользователей

А вот теперь, когда я рассказал про все стандартные инструменты, можно перейти к самому крутому, что есть в Amplitude.

Представьте, что вы анализируете воронку и видите, что на определенном шаге у вас потерялось 30% пользователей. C помощью Amplitude вы можете создать из этих пользователей отдельную когорту, а потом изучать ее с помощью всех инструментов, которые мы обсуждали ранее. Что особенно удобно – такие когорты можно использовать как сегменты пользователей.

когортный анализ в системе аналитики мобильных приложений Amplitude

Создавать поведенческие когорты пользователей можно:

  1. Из инструмента сегментации (нажимаешь на интересующую тебя точку и создаешь когорту)
  2. Из инструмента ретеншена (например, выделить тех, кто не вернулся после на 1 день в продукт)
  3. Из воронок (можно взять тех, кто дошел до определенного шага, либо же не дошел)
  4. А также в специальном конструкторе (позволяет задавать очень гибкие условия для определения интересующей группы пользователей)

cohort creation в системе аналитики мобильных приложений Amplitude

Amplitude дает еще одну классную возможность для изучения полученных когорт пользователей. Можно открыть профили пользователей, которые попали в когорту, и детально изучить каждого из них (в профиле у каждого пользователя отображается последовательность всех его ивентов). Это как раз тот подход, что я описывал в статье про анализ сессий пользователей.

event stream live view профиль пользователя в системе аналитики мобильных приложений Amplitude

Amplitude очень активно продвигают еще один свой инструмент, который они называют Compass.  Compass отвечает на вопрос – какие действия пользователей повышают шанс того, что они останутся в продукте / сделают покупку и тд. По сути они ищут корреляцию между действиями пользователей в начале использования продукта и выполнением определенных действий в будущем.

Лично я, к сожалению, пока не нашел большой пользы от этого инструмента – результаты получаются весьма очевидные. Если у вас будут какие-то интересные кейсы использования, то поделитесь, пожалуйста, в комментариях.

compass в системе аналитики мобильных приложений Amplitude

 

Live View

В Amplitude есть возможность следить за приходящими ивентами в режиме реального времени. Очень удобно для проверки правильности интеграции аналитики в мобильное приложение.

 

Аналитика денег и проверка валидности покупок

Amplitude в своем продукте решили одну очень критичную проблему всех монетизируемых клиентских мобильных приложений.  Они сделали на своей стороне проверку валидности совершаемых пользователями покупок in-app продуктов. Для этого надо лишь добавить нужные данные в настройках Amplitude.

Это означает, что теперь приложения, которые раньше не могли реализовать самостоятельно серверную верификацию покупок, могут, наконец, полноценно анализировать все метрики, связанные с деньгами. Раньше они этого делать не могли, так как ненастоящие покупки портили всю картину.

Amplitude также умеет считать все стандартные денежные метрики, что весьма удобно.

arpu

 

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

Amplitude имеет множество полезных интеграций:

  1. C сервисами атрибуции трафика
  2. С сервисами для АБ тестов
  3. С сервисами рассылки пушей
  4. С Redshift и сервисами для визуализации данных

 

Стоимость

Цена – важный аспект при выборе системы аналитики. А в случае Amplitude одной лишь цены было бы достаточно, чтобы задуматься о переходе на этот сервис.

До 10 миллионов ивентов в месяц сервис бесплатный. Есть ограничения по доступным фичам и интеграциям, но для большинства это не будет критичным.

До 100 миллионов ивентов сервис стоит $995. Для сравнения 20 миллионов ивентов в Mixpanel будут стоить $2000, а если еще подключать People, то стоимость можно смело умножать на два. Таким образом, Amplitude дешевле Mixpanel более, чем в 10 раз.

Более подробно с ценами можно ознакомиться здесь.

pricing стоимость системы аналитики Amplitude

 

В заключение

Когда я пользовался Mixpanel и размышлял над тем, какой должна быть идеальная система аналитики, то в моей голове рисовалось что-то похожее на Amplitude.

Важную часть в этих размышлениях занимали возможность снизить стоимость сервиса в разы, а также возможность выделения когорт на основе действий пользователей для последующего их изучения.

Надеюсь, что обзор был вам полезен. Поделитесь им – помогите вашим знакомым и друзьями сэкономить на аналитике и при этом получить очень мощный инструмент.

 



Подписка на рассылку новых материалов

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



Запись опубликована в рубрике Аналитика, Без рубрики, Маркетинг, Мобильная разработка. Добавьте в закладки постоянную ссылку.
  • Mikhail Trofimov

    Спасибо за обзор, уже год присматриваюсь к ней, но до реальных проектов руки не доходили. Больше всего порадовало сохранение состояния пользователя в событиях, совмещенные с people. Читал, что у них были проблемы с потерей данных на серверах, но вроде как они справились.

    • Олег Якубенков

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

      • Mikhail Trofimov

        Да, я про аварию и говорил. Думаю, в связи с этим у них были серьезные репутационные потери. Но, судя по всему действительно ничего лучше на рынке нет. Так что мы у себя обязательно попробуем.

        • Олег Якубенков

          Если бы потеряли данные, то было бы совсем плохо.
          А так лишь несколько дней работали в режиме Flurry :)

  • Alexander Brovko

    Я так понимаю, что своей системы нотификации там нет, и Cohorts From Microscope, Behavioral Cohorting есть только в энтерпрайз тарифе, а это как-раз самые крутые и интересные фишки, на мой взгляд.

  • Alexey Ivanov

    Спасибо отличная статья, уже интегрировал в свой продукт и получил несколько инсайтов благодаря amplitude.
    У меня есть вопрос: Compass выглядит очень привлекательно, но это платная фича. Как сделать тоже самое вручную ?

    • Олег Якубенков

      Пожалуйста
      По поводу Compass – выгрузить данные и считать корреляции между разными величинами. Скорее всего, как-то так

  • Андрей Морозов

    Решил тоже попробовать. Почему то все мои проперти в COMPOSITION показаны как none

  • Максим

    Олег, подскажите в user id в amplitude можно передать свое название пользователя? Делать анализ с id- ками стандартными не очень удобно.

    • Олег Якубенков

      Максим, привет, Да, можно. В документации у них точно есть.

  • Sergey Zuev Vl.

    я правильно понимаю, что амплитуда не позволяет сразу сегментировать пользователей по usage time, total sessions, total events? Не могу понять, почему данные собираются, но в compare user segments их нет

    • Олег Якубенков

      Да, не позволяет
      Надо вручную их записывать, чтобы использовать потом
      По поводу Compare User Segments – почитайте внимательно документацию их, там есть особенности с тем, как формируются эти сегменты

  • Anastasiya Semynina

    Олег, здравствуйте! А подскажите, почему вы передаете три юзер-параметра (cohort_day, _week и _month) вместо того чтобы передавать дату регистрации? Неудобно работать с типом данных дата?

    • Олег Якубенков

      Здравствуйте!
      Здесь две причины:
      1) Amplitude не поддерживает формат данных дат (как минимум пока), поэтому выделить когорту по датам сложно (нельзя поставить условие больше такой даты и меньше такой)
      2) иногда бывает нужно сегментировать какую-то метрику по месяцу прихода или неделе прихода – тогда при такой структуре ивентов достаточно сделать by cohort_month (by cohort_week)

      • Anastasiya Semynina

        спасибо большое за ответ! Про 2) понятно, а вот что они с типом даты не работает, удивило :)

  • Ivan Ovechkin

    Олег, приветствую.

    В первую очередь, благодарю за такой объем полезного материала, очень помогает в повседневной деятельности. А теперь ближе к моему вопросу.

    Плотно пользоваться аналитикой начал совсем недавно и возник животрепещущий вопрос: кому доверять?

    Поясню:

    1. При запуске приложения подключили Flurry

    2. Две недели назад подключили параллельно Amplitude

    3. Данные из приложения передаются через общий метод, при вызове которого данные передаются сразу в два сервиса

    4. Полученные результаты сильно расходятся, на 5 и более процентов

    Скажите может это штатная ситуация или это из ряда вон выходит и надо искать ошибку в интеграции с SDK.

    Измерения провожу на выборках размеров в 500 человек.

    • Олег Якубенков

      Иван, приветствую

      Ситуация достаточно стандартная. Проверить интеграцию в любом случае имеет смысл, но расхождение между разными системами аналитики – обычная ситуация.

      Обычно причины кроются в часовых поясах (скорее всего, они разные во Flurry и Amplitude), в способе определения времени ивента (некоторые считают временем события – время на девайсе, другие время на сервере в момент получения, Amplitude использует смешанную схему), в способе определения уникальности пользователя, в методах работы с ивентами, которые были сгенерены пока приложение было в оффлайне (Flurry очень медленно их досчитывает) и так далее.

      Так как в Amplitude есть возможность выгрузить данные и проверить их достоверность, то рекомендую детально их посмотреть и если все ок, то дальше уже верить им. Flurry использовать для проверок, если что-то вызывает сомнения.

      • Ivan Ovechkin

        Олег, благодарю со совет.

        На счет часовых поясов тоже подумал, так как Flurry ведет отсчет новых суток от 10 утра по Москве, а Amplitude равняется на выставленный часовой пояс приложения.

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

        Единственным вариантом вижу собрать события в которых есть разница и понять что же на самом деле не ловит Flurry. Так как именно в этой системе аналитики событий получается меньше.

  • Дмитрий Шерстобитов

    Такой вопрос – а можно ли туда как-то выгружать числовые данные с дальнейшим анализом. Например, в приложении есть форма, куда люди добавляют некие данные и нам очень важно анализировать количество добавленных данные каждый день, и сравнивать в среднем по пользователям. Такого плана можно как-то сделать анализ?

  • Андрей

    Олег, привет!

    А как на iOS трекать in-app покупки, которые в валюте отличной от USD?

    Судя по их документации https://github.com/amplitude/Amplitude-iOS#tracking-revenue , они умеют принимать только price (3,99$, например) и ждут, что он в долларах будет. А, если покупка в русском сторе в рублях (149р), то что делать?

    В AppsFlyer это реализовано так, что ты можешь в AppsFlyer отправить с price ещё и currencyCode и AppsFlyer на своей стороне сам всё посчитает в долларах.

    • Олег Якубенков

      Андрей, привет

      Тут есть два варианта – либо самим делать перевод по курсу, либо всегда передавать стоимость покупки в долларах (мы обычно делали так).

      К сожалению, Appsflyer не умеет приводить курсы валют, как это делает Appsflyer.

      • Андрей

        Спасибо за ответ!

        А откуда вы брали стоимость покупки в долларах? С сервера или она на клиенте хранилась? Пардон, за такие технические вопросы :)

        • Олег Якубенков

          Все ок.
          Стоимости инапов хранились в конфиге, который подгружался с сервера.