Ошибки интеграции аналитики в iOS приложение: Flurry, MixPanel и Localytics
Ошибки интеграции аналитики в iOS приложение: Flurry, MixPanel и Localytics

Ошибки интеграции аналитики

в iOS приложение: Flurry, MixPanel и Localytics
Я экспериментировал с разными сервисами мобильной аналитики в приложениях Follow ME и WAYD, делюсь обнаруженными ошибками интеграции.
Одна аналитикаБольшинство ошибок я смог обнаружить, сравнивая данные нескольких аналитик. И самое главное, смог получить ответы, несмотря на ошибки интеграции.

Что делать. Внедрите несколько систем аналитики в приложение. Хотя бы Flurry и Google Analytics. Отсутствие события APP_LAUNCH_FIRSTMixPanel и Localytics не умеют строить воронки для новых пользователей. А без этого не построить воронки Активации и Stickness.

Что делать. Рекомендация: при первом запуске didFinishLaunchingWithOptions шлите событие APP_LAUNCH_FIRST и сохраняйте в NSUserDefault факт отправки.

Если есть туториал или другой экран, отображаемый один раз после установки, можно обойтись без APP_LAUCH_FIRST.
Слишком много сервисных событийПри запуске приложения Follow Me я генерирую следующую цепочку событий (пользователь ничего не делает, события генерируются просто при запуске):

APP_LAUCH_FIRST
APP_LAUCH
SESSION_START
RADIO_SHOWN
RADIO_CHANNEL_CHANGED

В итоге события перемешиваются и отчет Flurry User Paths становится бесполезным.

Что делать. Не посылайте сервисные события во Flurry, у него есть встроенное событие First App Launch.

На самом деле, это не очень критично. Отчет User Paths не самый полезный для мобильного приложения, если он вам нужен, используйте Google Analytics или Localytics, где события отделены от экранов.

Неокругленные числовые параметрыВ Follow ME генерируется событие, когда пользователь перематывает подкаст.



В событие передается id подкаста и позиция, на которую перематывают. Позиция — дробное число от 0 до 1. В итоге получаем такой отчет:


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

Что делать. Округляйте вещественные параметры до одного-двух знаков после запятой. Еще лучше передавать несколько версий параметра с разной точностью.

DEV ключ в продакшенеДля того, чтобы тестеры и программисты не портили статистику , мы заводим два ключа для всех систем аналитики: Разработка/Тестирование и AppStore-ключ. Иногда случается, что проект отправляют в App Store с ключом для разработки. Это печально, соотнести данные для разных версий становится сложнее, retention отчеты ломаются.

14 ноября выпустили версию с DEV ключом аналитики, 26 починили

Что делать. Быть внимательнее или собирать билды в App Store автоматически на билд-сервере.

MixPanel identify без createAliasMixPanel позволяет использовать ваш собственный идентификатор пользователя: логин, email, номер телефона… Это включает расширение People и полезно, например, для пользователей с несколькими устройствами или выключившими IDFA. Метод identify говорит MixPanel использовать ваш идентификатор вместо системного.

Пример профиля пользователя в MixPanel People

В Follow Me сразу после событий APP_LAUNCH_FIRST вызывался MixPanel Identify. Это была глупая ошибка, в результате MixPanel считал пользователя, дошедшего до первого экрана после установки, уже другим. В результате — невозможно построить воронки.

Цитата из документации:

Calling identify: with a new ID will change the ID being sent with future events. If you change the ID in the middle of a funnel, the funnel will break — we won’t be able to associate the old ID with the new.

Что делать. Используйте Identify только после вызова createAlias.

MixPanel Identify с createAliasЯ так до конца не разобрался в чем причина, но после правильного вызова createAlias и identify, MixPanel все равно ломает воронки. Причем, следующее после identify событие исчезает не полностью, а частично, что мешает обнаружить ошибку.
Пример,  активация в MixPanel — 11,31%, во Flurry 57.6%

Воронка MixPanel

Нормальная воронка во Flurry

Что делать. Я пока не разобрался в чем ошибка, жду нового релиза WAYD. Рекомендую пока не использовать createAlias и identify.

APP_FIRST_LAUCH в didFinishLauchingWithOptions для LocalyticsLocalytics открывает сессию в событиях в applicationWillEnterForeground и applicationDidBecomeActive, а у нас APP_LAUNCH_FIRST генерировался в didFinishLaunchingWithOptions. После интеграции событие APP_LAUCH_FIRST в Localytics не появилось, воронки для новых пользователей не построить.

Что делать. После инициализации Localytics вызвать [[LocalyticsSession shared] resume].


От редактора


Поделитесь, какие ошибки интеграции аналитики в приложение находили вы? al@touchin.ru

С наступающим!

Все выпуски рассылки touchin.ru/letters
Рекомендуйте друзьям.
 
ООО «Тач Инстинкт» 18 линия В.О. 29 Санкт-Петербург 199034 Russia 



Дополнения к письму

Доклад Анатолия Шарифулина о том, что будет если доверить интеграцию аналитики разработчикам.

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

×