Когда приложение «падает», это не нравится никому. Экстренные завершения выводят из себя пользователей и треплют нервы разработчикам. Ошибки в коде ухудшают пользовательский опыт и, как следствие, влияют на конверсии. Поэтому без крэш-аналитики не обходится ни одна продуктовая команда. Новые отчёты AppMetrica помогут держать руку на пульсе приложения и ускорить решение возникающих проблем.
Отчёты покажут количество крэшей, отсортируют их по типам, «популярности» и предоставят детальную статистику по каждому падению. Отчасти так было и раньше, но полностью переработанный интерфейс оброс дополнительными фичами. Под капотом теперь новые механизмы доставки крэшей с устройств, автоматическая загрузка dSYM, mapping-файлов, и тут же — символизация.
Но обо всём по порядку…
Упрощённо, процесс делится на три этапа, на каждый из которых в AppMetrica приходится по компоненту:
Если приложение экстренно закрывается, операционная система формирует файл с информацией о падении, содержащий стек вызовов. AppMetrica SDK на устройстве пользователя получает его от ОС и отправляет на свой сервер.
Те, кто давно пользуется AppMetrica, помнят, что сбор крэшей — встроенная функция основной библиотеки. Но с ростом количества фич размер SDK увеличивается. Поэтому мы выделили сбор крэшей для iOS в отдельный компонент. Не забудьте подключить его.
Бэкенд AppMetrica принимает крэши от SDK и автоматически декодирует стек вызовов. Это стало возможным благодаря интеграции с API операционных систем и автоматической загрузке dSYM и mapping-файлов.
Крэш-лог, в читаемом виде, сохраняется в базе данных.
Чтобы крэши автоматически декодировались, загрузите в AppMetrica mapping-файлы и dSYM, либо настройте их загрузку по API.
Все крэши группируются по типам и месту возникновения, после чего данные пересекаются с остальной информацией, собранной AppMetrica. Считаются все необходимые метрики: число затронутых устройств и сессий, % затронутой активной аудитории и другие.
AppMetrica показывает данные из базы в человеческом виде: группирует крэши, систематизирует информацию, строит полезные срезы и пересечения.
Обновленный интерфейс позволяет ежедневно мониторить стабильность приложения. Исследовать проблемы можно на трёх уровнях:
Появившиеся дашборды с метриками crash-free, долей затронутых пользователей и другими показателями помогут контролировать SLA и оценивать приоритетность крэшей в очереди.
Уже знакомые цифры никуда не делись. Среди них — общее количество крэшей и число затронутых устройств.
Таблицу под графиком тоже обновили, добавив следующие колонки:
Воспроизводимость крэша зависит от множества факторов. Поэтому, как и раньше, крэши можно сегментировать и группировать: по версии приложения, ОС и другим фильтрам, — аналогично отчёту Аудитория. Прямо как в таск-трекерах, крэши можно закрывать, если они исправлены. При воспроизведении в новой версии приложения крэш автоматически переоткроется.
Из отчёта можно перейти к конкретной проблеме и изучить подробности. Карточка крэша — тоже дашборд, с самыми важными данными на видном месте:
Здесь пригодятся новые метрики:
– Background: даже если крэш массово воспроизводится, на некоторые вещи можно сделать поправку. Может быть, пользователи ничего не заметили, если приложение падает в фоне.
– А может, оно падает только у пауэр-юзеров, которые слишком сильно модифицировали систему с помощью jailbreak или прав суперпользователя — такие устройства помечаются тегом Rooted.
Мы не говорим, что эти случаи недостойны правок кода, но иногда они снижают приоритет :)
Из карточки крэша доступен просмотр стека вызовов. Именно эта информация наиболее полезна разработчикам и даёт шанс исправить крэш:
Если лога недостаточно, на помощь приходят профили пользователей. Из них мы знаем, какие действия совершил «пострадавший», перед тем как приложение упало. Эта информация бесценна для QA-инженеров, если ошибку не удаётся воспроизвести. Чтобы изучить список недавних событий, нажмите Посмотреть события сессии на странице стека вызовов.
Все отчёты по крэшам уже доступны для полноценного использования. В ближайших релизах обновится отчёт по ошибкам и появится ещё пара фич, о которых мы расскажем отдельно.
Первым делом — интегрируйте последнюю версию AppMetrica SDK. Не забудьте подключить компонент для сбора крэшей — он теперь поставляется отдельно.
Чтобы привести стек вызовов в читаемую форму, AppMetrica нужны dSYM для iOS и mapping-файлы для Android. Их можно загрузить вручную, либо настроить автоматическую загрузку с помощью Post API key. Все функции, связанные с расшифровкой крэшей, расположились в настройках приложения. Там же можно посмотреть, для каких версий приложения маппинги отсутствуют.
Но AppMetrica в любом случае оповестит вас о недостающих файлах расшифровки:
Мы переработали отчёт на всех уровнях и этапах, упростив солидную часть рутины: крэши теперь декодируются автоматически, а интерфейс позволяет разработчикам и QA-инженерам в пару кликов получить гораздо больше полезной информации. Надеемся, такие масштабные изменения будут исключительно полезны :)
Как обычно, всегда рады фидбеку. Пишите в чат — если хотите поделиться опытом, или в форму для голосований — если считаете, что мы забыли добавить что-то важное.
Здоровье приложения — в ваших руках!
Команда AppMetrica