Яндекс AppMetrica для Android-приложения: установка SDK и базовая настройка аналитики
Чтобы подключить AppMetrica: создайте приложение в кабинете AppMetrica и получите API‑ключ, добавьте зависимость в Gradle, внесите meta-data и сервис в AndroidManifest, затем инициализируйте SDK в Application.onCreate — данные начнут приходить через пару минут.
Начните с создания отдельного тестового приложения в кабинете AppMetrica — так не смешаете тестовые данные с продакшн‑метриками.
Установка и инициализация SDK
- Регистрация в кабинете AppMetrica и получение API‑ключа (32‑символьная строка). Этот ключ потребуется в манифесте и при инициализации.
- Добавьте зависимость в модуль app (Gradle):
dependencies {
implementation 'com.yandex.android:appmetrica:6.2.0' // проверьте актуальную версию
}
- В AndroidManifest.xml добавьте необходимые разрешения и мета‑данные:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:name=".MyApplication"
...>
<meta-data
android:name="com.yandex.metrica.APPLICATION_ID"
android:value="ВАШ_API_КЛЮЧ"/>
<service android:name="com.yandex.metrica.CrashService" android:exported="false"/>
</application>
- Инициализация в Application.onCreate (Kotlin):
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = YandexMetricaConfig.newConfigBuilder("ВАШ_API_КЛЮЧ")
.withLogs() // для отладки, в проде убрать
.withSessionTimeout(10, TimeUnit.MINUTES)
.build()
YandexMetrica.activate(this, config)
YandexMetrica.enableActivityAutoTracking(this)
}
}
Инициализируйте AppMetrica прежде, чем SDK рекламных сетей или медиа‑трекеров: иначе attribution и источники установок могут быть неверными.
Трекинг сессий, экранов, событий и доходов
- Автоматически собирается: количество запусков, сессии (длительность), краши и ANR. Если включено enableActivityAutoTracking — переходы между Activity трекаются автоматически.
- Кастомные события:
val params = mapOf("screen" to "home", "button" to "buy")
YandexMetrica.reportEvent("button_click", params)
Ограничения: до ~500 уникальных событий на приложение; параметры — строки или числа.
- Отслеживание доходов (in-app purchases):
val revenue = Revenue(100.5) // сумма
revenue.setProductId("gold_100")
YandexMetrica.reportRevenue(revenue)
- Краши: AppMetrica отправляет стек‑трэйсы автоматически; вы получите подробный отчет в кабинете.
Проверка, отладка и развёртывание
- Для отладки включите .withLogs() и смотрите Logcat на устройстве/эмуляторе: adb logcat | grep YandexMetrica
- В кабинете данные обычно появляются с задержкой ~5–10 минут.
- Перед релизом: уберите .withLogs(), протестируйте на тестовом приложении и убедитесь, что ключ прописан верно.
В продакшне отключайте логи и используйте отдельные API‑ключи для теста и релиза.
Когда обновлять SDK
| Версия | Главное изменение | Рекомендация |
|---|---|---|
| 6.0+ | Revenue V2, улучшенный автотрекинг | Обновиться — совместимость с Android 15+ |
| 5.x | Базовая аналитика | Обновлять, если стабильна текущая |
| <5.0 | Устарело | Срочно мигрировать на новую ветку |
Частые ошибки
- Неправильно вставлен API‑ключ в meta‑data или опечатка — SDK не активируется.
- Инициализация после рекламных SDK — искажение attribution.
- Оставлены логи в проде — лишние данные и риск раскрытия внутренней информации.
- Тестовые и продакшн‑данные в одном приложении в кабинете — сложный анализ.
FAQ
- Как быстро увидеть данные в кабинете?
Около 5–10 минут после отправки события; для тестов используйте deviceId и фильтры. - Можно ли отключить автотрекинг экранов?
Да — не вызывайте enableActivityAutoTracking и отправляйте экранные события вручную. - Как пометить транзакцию?
Используйте Revenue.setProductId или setPayload для передачи идентификатора продукта. - Что делать при крашах без стека?
Убедитесь, что CrashService добавлен в манифест и SDK инициализирован раньше других компонентов.
С этой базовой настройкой вы получите ключевые метрики: DAU/MAU, retention, среднее время сессии и воронки доходов — достаточно, чтобы быстро анализировать поведение пользователей и принимать решения по улучшению приложения.