История изменений
Это архивная версия документации. Актуальная документация по всем платформам находится здесь.
Версия 5.3.0
Релиз 3 марта 2023 г.
Исправлен возможный warning при установке и запуске приложения C
lass com.yandex.metrica.impl.ob.Zh failed lock verification and will run slower
и аналогичные.Исправлен возможный ANR
at com.yandex.metrica.impl.ob.p3$b.onServiceConnected(SourceFile:2)
.Исправлены ошибки и повышена стабильность.
Версия 5.2.0
Релиз 19 сентября 2022 г.
- Добавлен API AdRevenue для передачи доходов рекламной монетизации на уровне показа (Impression-Level Revenue Data):
- классы AdRevenue, AdRevenue.Builder;
- методы reportAdRevenue(AdRevenue adRevenue) в классе
YandexMetrica
, reportAdRevenue(AdRevenue adRevenue) в интерфейсеIReportet
; - перечисление AdType.
Версия targetSdkVersion = 33.
Версия 5.0.1
Релиз 29 июля 2022 г.
Исправлена проблема, которая могла приводить к повторным ложным установкам.
Версия 5.0.0
Релиз 20 мая 2022 г.
Начиная с версии AppMetrica Android SDK 5.0.0 и выше при переустановке приложения на смартфоне меняется appmetrica_device_id
. Это обусловлено новыми политиками Google. Подробности в документации.
Получение рекламных идентификаторов вынесено в отдельную библиотеку com.yandex.android:mobmetricalib-identifiers. Подробнее в разделе Получение рекламных идентификаторов.
По умолчанию выключен признак отправки информации о локации устройства. Чтобы включить отправку локации с событиями используйте один из методов: withLocationTracking(boolean enabled) или setLocationTracking(boolean enabled).
Добавлены
@NonNull
-аннотации для аргументов методов интерфейса DeferredDeeplinkParametersListener.Метод reportNativeCrash устарел и в будущих версиях будет удален.
Версия 4.2.0
Релиз 17 февраля 2022 г.
Добавлен новый API для отслеживания крэшей и ошибок из произвольных плагинов.
Интерфейсы:- Поддержан даунгрейд на версию 4.2.0 и выше с сохранением важных данных: идентификаторов устройства и т. д. Использовать даунгрейд не рекомендуется, это может привести к потере и искажению данных. Повторная атрибуция для таких пользователей не произойдет.
- Добавлена поддержка Google Play Billing Library версии 4.0.0. Поддержка версий 3.x продолжается.
- В методе DeferredDeeplinkParametersListener аргумент
referrer
стал@NonNull
. В случае его отсутствия придет пустая строка. - Убрали определение ROOT-статуса на устройствах с Android 12 и выше. На текущий момент все устройства с Android 12 будут считаться устройствами без ROOT-доступа.
- Исправлены ошибки и повышена стабильность:
- Исправлен возможный крэш при попытке подключения к сервису MetricaService:
Process: com.yandex :Metrica java.lang.RuntimeException: Unable to bind to service com.yandex.metrica.MetricaService Caused by: java.lang.IllegalArgumentException at android.os.Parcel.nativeAppendFrom(Native Method)
. - Исправлен возможный ANR в процессе:
Metrica: at com.yandex.metrica.impl.ob.jg.a (jg.java) at com.yandex.metrica.MetricaService.onConfigurationChanged(MetricaService.java:2)
. - Исправлен возможный крэш:
java.lang.NullPointerException: Attempt to read from null array at com.yandex.metrica.impl.ob.tz.a
.
Версия 4.1.1
Релиз 17 декабря 2021 г.
- Добавлено разрешение com.google.android.gms.permission.AD_ID. Подробности читайте в документации.
- В DeferredDeeplinkListener.Error и DeferredDeeplinkParametersListener.Error добавлено значение
NO_REFERRER
. - Добавлена предварительная поддержка App Set ID для получения реферрера из Google Play (зависимость
com.google.android.gms:play-services-appset:16.0.0
). - Поддержана оптимизация SDK из-за исправления возможных VerifyError при инициализации классов.
- Отключен сбор mac адресов.
Версия 4.0.0
Релиз 20 сентября 2021 г.
- Google Play Install Referrer через BroadcastReceiver больше не поддерживается:
- удален из AndroidManifest MetricaEventHandler;
- удален метод
YandexMetrica#registerReferrerBroadcastReceivers
; - удален флаг
YandexMetricaConfig#installedAppCollecting
; - удалены методы
YandexMetricaConfig.Builder#withInstalledAppCollecting
.
- Добавлен метод YandexMetricaConfig.Builder#withSessionsAutoTrackingEnabled(boolean enabled) для автоматического отслеживания сессий.
- Добавлен метод revenueAutoTrackingEnabled для автоматического сбора данных по in-app покупкам.
- Поддержана публикация ".module" файла для Google Play SDK Console.
- Реализован и включен по умолчанию автотрекинг диплинков.
- AppMetrica SDK смигрирован на AndroidX.
- Добавлена базовая поддержка Android 12 — основной функционал AppMetrica SDK доступен на устройствах с Android 12 в приложениях с targetSdkVersion = 31.
- minSdkVersion повышен до 14.
Версия 3.21.1
Релиз 3 июня 2021 г.
- Метод YandexMetricaConfig.Builder#withInstalledAppCollecting помечен как
deprecated
. Значение флага будет проигнорировано (всегда будетfalse
).
Версия 3.21.0
Релиз 26 мая 2021 г.
- Добавлен метод YandexMetrica#initWebViewReporting для отправки событий из JS-кода WebView.
- Обновлена версия Play Install Referrer Library до 2.2.
- Поддержан crashpad для сбора нативных крешей. Нативная библиотека версии 2.0.0 и выше использует crashpad, более ранние версии — breakpad. Используемый механизм зависит от версии подключенной нативной библиотеки.
- Исправлены ошибки и повышена стабильность.
Версия 3.20.2
Релиз 29 апреля 2021 г.
- Исправлена совместимость с Unity.
Версия 3.20.1
Релиз 14 апреля 2021 г.
- Добавлена возможность задавать идентификатор пользовательского профиля во время активации (YandexMetricaConfig.Builder#withUserProfileID) или до активации (YandexMetrica#setUserProfileID), что позволяет избавиться от пустых профилей без идентификатора.
- Обновлена версия Play Install Referrer Library до 2.1.
Исправлена некорректная обработка deeplink из обратного вызова
Activity#onNewIntent(Intent)
. Необходимо внести следующие правки в интеграцию:Вместо вызова:
@Override protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); YandexMetrica.reportAppOpen(this); }
СкопированоНеобходим вызов:
@Override protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); YandexMetrica.reportAppOpen(intent); }
Скопировано- Исправлены ошибки и повышена стабильность.
Версия 3.18.0
Релиз 15 января 2021 г.
- Поддержано соответствие новым политикам Google в контексте сбора геолокации.
Версия 3.16.2
Релиз 13 ноября 2020 г.
- Исправлен возможный крэш:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ComponentName android.app.Activity.getComponentName()' on a null object reference
.
Версия 3.16.1
Релиз 14 октября 2020 г.
- Добавлен новый API отправки E-Commerce событий:
- Добавлены новые классы:
Подробнее о E-Commerce событиях в разделе .
- Улучшена отправка нативных крэшей.
- Повышены производительность и качество статистических данных.
Версия 3.15.0
Релиз 29 июля 2020 г.
- Повышены производительность и качество статистических данных.
Версия 3.14.3
Релиз 9 июля 2020 г.
- Исправлена возможная проблема совместимости с Mobile Ads SDK.
Версия 3.14.2
Релиз 8 июля 2020 г.
- Добавлен новый API отправки крэшей и ошибок:
- В класс YandexMetrica добавлен метод putErrorEnvironmentValue(String key, String value). С помощью него можно задавать окружение ошибки.
- В классы YandexMetrica и IReporter добавлены методы reportError(String groupIdentifier, String message) и reportError(String groupIdentifier, String message, Throwable error). В них можно передавать идентификаторы, по которым будут группироваться крэши и ошибки.
- Добавлен метод YandexMetrica.requestDeferredDeeplink(DeferredDeeplinkListener listener) и интерфейс DeferredDeeplinkListener для получения отложенного deeplink. Подробнее в разделе Примеры использования.
- Добавлена зависимость AppMetrica SDK от Install Referrer Library.
- Прекращена поддержка метода YandexMetrica.registerReferrerBroadcastReceivers(BroadcastReceiver... anotherReferrerReceivers). Метод устарел в связи с тем, что Google начиная с 1 марта 2020 года перестал отправлять Broadcast.
- Повышены производительность и качество статистических данных.
Версия 3.13.1
Релиз 3 марта 2020 г.
- Повышены производительность и качество статистических данных.
Версия 3.10.0
Релиз 4 февраля 2020 г.
- Возобновлена поддержка метода reportReferralUrl класса YandexMetrica.
- Повышено качество обработки крэшей.
- Повышены производительность и качество статистических данных.
Версия 3.8.0
Релиз 8 октября 2019 г.
- Добавлена возможность загрузки mapping-файлов с помощью специального плагина.
- Повышены производительность и качество статистических данных.
Версия 3.7.2
Релиз 20 сентября 2019 г.
- Улучшено качество доставки событий.
- Добавлена отправка suppressed-исключения вместе с крэшами.
- В класс YandexMetricaConfig.Builder добавлен метод withMaxReportsInDatabaseCount(int value). Он позволяет задать максимальное количество событий, которое может храниться в базе данных на телефоне до отправки в AppMetrica.
- В класс YandexMetricaConfig добавлено поле maxReportsInDatabaseCount.
- Исправлено возможное падение
java.lang.SecurityException
.
Версия 3.6.4
Релиз 13 июня 2019 г.
- Исправлена проблема, которая могла приводить к потере событий.
- Повышены производительность и качество статистических данных.
Версия 3.6.2
Релиз 21 мая 2019 г.
- Повышены производительность и качество статистических данных.
Версия 3.6.1
Релиз 15 мая 2019 г.
- Повышены производительность и качество статистических данных.
Версия 3.6.0
Релиз 23 апреля 2019 г.
- В класс Revenue добавлены:
- Метод newBuilderWithMicros(). Используйте его вместо устаревшего newBuilder().
- Поле priceMicros. Используйте его вместо устаревшего price.
- Обновлен Google Breakpad. Новая версия поддерживает все архитектуры процессоров. Подробнее в разделе Примеры использования методов.Примечание. При сборе нативных крэшей на устройствах с x86 архитектурой процессора возможны ошибки.
- Повышено качество сбора крэшей при запуске приложения.
- Добавлен дамп потоков для крэшей.
- Исправлена проблема, которая могла приводить к утечке памяти в потоках.
Версия 3.5.3
Релиз 30 января 2019 г.
- Повышены производительность и качество статистических данных.
Версия 3.5.1
Релиз 28 декабря 2018 г.
- Повышены производительность и качество статистических данных.
Версия 3.5.0
Релиз 14 декабря 2018 г.
- Повышены производительность и качество статистических данных.
Версия 3.4.0
Релиз 5 ноября 2018 г.
- Добавлена поддержка Android 9.
- Улучшено логирование работы библиотеки.
- Повышены производительность и качество статистических данных.
Версия 3.2.2
Релиз 9 августа 2018 г.
- Повышены производительность и качество статистических данных.
Версия 3.2.1
Релиз 30 июля 2018 г.
- Повышены производительность и качество статистических данных.
Версия 3.2.0
Релиз 23 июля 2018 г.
- Добавлен метод setStatisticsSending() для отключения отправки статистики.
- Добавлен метод requestAppMetricaDeviceID() для получения уникального идентификатора AppMetrica (
appmetrica_device_id)
. - Добавлен метод sendEventsBuffer() для принудительной отправки событий из буфера.
- Повышены производительность и качество статистических данных.
Версия 3.1.0
Релиз 30 мая 2018 г.
- Добавлена возможность атрибуции через deeplink (Re-engagement).
- Добавлен механизм, позволяющий ускорить отправку event-постбеков для высокочастотных событий.
- Добавлена интеграция с библиотекой
Play Install Referrer Library
. Библиотека предоставляет информацию о том, когда началась загрузка приложения из Google Play. Это позволяет улучшить аттрибуцию.
Версия 3.0.0
Релиз 25 апреля 2018 г.
- Добавлена возможность создания пользовательских профилей.
- Добавлен трекинг покупок в приложении.
- Изменены методы API. Подробнее в руководстве по переходу на Android SDK 3.0.0.
- Улучшена поддержка работы в нескольких процессах (с ограничением на активацию с одинаковой конфигурацией).
- Изменен способ отслеживания аварийных остановок приложения в нативном коде. Подробнее в разделе Примеры использования методов.
- Повышена производительность и исправлены ошибки.
Версия 2.80
Релиз 27 декабря 2017 г.
- Добавлены исправления и незначительные улучшения работы библиотеки для Android 8.
- Внесены изменения в процесс интеграции через
.jar
. API LEVEL
библиотеки — 64. Измените его в файле AndroidManifest.xml.
Версия 2.78
Релиз 19 ноября 2017 г.
- Добавлены исправления и незначительные улучшения работы библиотеки.
API LEVEL
библиотеки — 63. Измените его в файле AndroidManifest.xml.
Версия 2.77
Релиз 9 октября 2017 г.
- Добавлена поддержка Android 8.
- Добавлены исправления и незначительные улучшения работы библиотеки.
API LEVEL
библиотеки — 62. Измените его в файле AndroidManifest.xml.
Версия 2.76
Релиз 17 августа 2017 г.
- Добавлен метод
reportReferralURL()
задающий referral URL установки приложения. - Внесены изменения в процесс интеграции через
.jar
. - Добавлены исправления и незначительные улучшения работы библиотеки.
API LEVEL
библиотеки — 61. Измените его в файле AndroidManifest.xml.
Версия 2.73
Релиз 15 июня 2017 г.
- Добавлены исправления и незначительные улучшения работы библиотеки.
API LEVEL
библиотеки — 58. Измените его в файле AndroidManifest.xml.
Версия 2.71
Релиз 1 июня 2017 г.
- Добавлен метод для трекинга открытий приложения с помощью deeplink:
reportAppOpen(String deeplink)
. - Исправлена ошибка при получении параметров отложенных deeplinks.
API LEVEL
библиотеки — 56. Измените его в файле AndroidManifest.xml.
Версия 2.70
Релиз 16 мая 2017 г.
- Добавлена поддержка отложенного deeplink.
- Повышена стабильность работы библиотеки.
- Улучшен отлов крэшей, возникающих при запуске приложения.
- Добавлен вывод в лог параметров отправляемых событий.
API LEVEL
библиотеки — 55. Измените его в файле AndroidManifest.xml.
Версия 2.62
Релиз 30 декабря 2016 г.
- Повышена стабильность работы библиотеки.
- Добавлены исправления и незначительные улучшения работы библиотеки.
API LEVEL
библиотеки — 52. Измените его в файле AndroidManifest.xml.
Версия 2.60
Релиз 21 ноября 2016 г.
- Добавлено отслеживание открытий приложения через deeplink.
- Добавлена возможность сообщить AppMetrica, что приложение было установлено на устройство до подключения библиотеки AppMetrica SDK. Это позволит AppMetrica отличать первый запуск приложения после интеграции с SDK от первого запуска приложения в его истории. Такой запуск не будет являться признаком нового пользователя.
- Повышена стабильность работы библиотеки.
API LEVEL
библиотеки — 50. Измените его в файле AndroidManifest.xml.
Версия 2.51
Релиз 29 сентября 2016 г.
- Повышена стабильность работы библиотеки.
- Добавлена поддержка Android 7.
- Добавлен запрет на резервное копирование данных AppMetrica SDK в Google-аккаунт.
API LEVEL
библиотеки — 48. Измените его в файле AndroidManifest.xml.
Версия 2.42
Релиз 17 июня 2016 г.
- Повышена производительность и исправлены ошибки.
API LEVEL
библиотеки — 45. Измените его в файле AndroidManifest.xml.
Версия 2.41
Релиз 27 марта 2016 г.
- Оптимизация энергопотребления при отправке данных.
API LEVEL
библиотеки — 44. Измените его в файле AndroidManifest.xml.
Версия 2.40
Релиз 28 марта 2016 г.
- Добавлена отправка статистики с использованием API key, отличного от API key приложения.
API LEVEL
библиотеки — 43. Измените его в файле AndroidManifest.xml.
Версия 2.32
Релиз 29 января 2016 г.
- Повышены стабильность библиотеки и качество статистических данных.
API LEVEL
библиотеки — 41. Измените его в файле AndroidManifest.xml.
Версия 2.30
Релиз 16 декабря 2015 г.
- Добавлена возможность инициализации библиотеки с помощью расширенной конфигурации, которая гарантирует, что все параметры конфигурации будут применены при отправке первого события.
- Добавлена возможность задавать информацию для отслеживания предустановленных приложений.
- Оптимизация для повышения качества статистики.
API LEVEL
библиотеки — 39. Измените его в файле AndroidManifest.xml.
Версия 2.23
Релиз 25 ноября 2015 г.
- Добавлена поддержка Yandex Mobile Ads 2.00.
API LEVEL
библиотеки — 38. Измените его в файле AndroidManifest.xml.
Версия 2.21
Релиз 20 октября 2015 г.
API LEVEL
библиотеки — 36. Измените его в файле AndroidManifest.xml.- Удален метод
YandexMetrica.isMetricaProcess()
. - Отключена отправка по умолчанию сведений об установленных приложениях.
- Добавлен метод
isCollectInstalledApps()
— позволяет узнать, включена ли отправка сведений об установленных на устройстве приложениях. - Добавлен метод
enableActivityAutoTracking(final Application application)
, который позволяет включить автоматическое отслеживание жизненного цикла приложения. - Добавлен метод
registerReferrerBroadcastReceivers(BroadcastReceiver...anotherReferrerReceivers)
, который позволяет зарегистрировать в AppMetrica произвольное число BroadcastReceiver для трекингаINSTALL_REFERRER
от GooglePlay при использовании других систем трекинга. - По умолчанию, из Maven Central теперь подключается библиотека в AAR-формате. Для подключения библиотеки в JAR-формате, необходимо явно указывать классификатор:
compile "com.yandex.android:mobmetricalib-internal:2.21:jar"
. - Добавлен метод
setLogEnabled()
, который позволяет включить логирование работы библиотеки. - Исправлена ошибка, которая приводила к аварийной остановке приложения:
java.lang.NullPointerException at com.yandex.metrica.impl.ob.f.b
.
Версия 2.0
Релиз 27 августа 2015 г.
API LEVEL
библиотеки — 32. Измените его в файле AndroidManifest.xml.Изменен формат API key. Идентификатор приложения в новом формате доступен в веб-интерфейсе AppMetrica в режиме редактирования приложения.
Где найти API key- Метод инициализации библиотеки в приложении переименован c
initialize(android.content.Context, java.lang.String)
наactivate(android.content.Context, java.lang.String)
. - Изменена длительность тайм-аута сессии. По умолчанию значение составляет 10 секунд.
- Библиотека адаптирована к Android M.
- Повышена производительность и снижено энергопотребление.
Удалены устаревшие методы.
setReportsEnabled(boolean enabled)
— позволяет включить и отключить отправку отчетов.setDispatchPeriod(int dispatchPeriodSeconds)
— позволяет задать интервал в секундах между отправками накопившихся событий на сервер.setMaxReportsCount(int maxReportsCount)
— позволяет задать число событий в хранилище, при достижении которого происходит отправка всех накопившихся событий на сервер.startNewSessionManually()
— позволяет запустить новую сессию вручную.sendEventsBuffer()
— позволяет отправить все накопившиеся события, не дожидаясь автоматической отправки на сервер.
Нажмите, чтобы посмотреть список
Версия 1.82
Релиз 19 июня 2015 г.
API LEVEL
библиотеки — 31. Измените его в файле AndroidManifest.xml.- Повышено качество подсчета статистики сессий и установок.
- Осуществлен переход на protobuf-nano — увеличена скорость работы и сокращен общий размер библиотеки. Если вы использовали библиотеку protobuf-2.5.0 для работы с библиотекой AppMetrica, удалите ее.
В файле AndroidManifest.xml не указываются
provider
:<provider android:name="FULL_PACKAGE_PATH_TO_YOUR_PROVIDER.MetricaContentProvider" android:authorities="ROOT_PACKAGE_PATH.MetricaContentProvider" android:enabled="true" android:exported="true"/>
следующие
intent-filter
дляcom.yandex.metrica.MetricaEventHandler
:<intent-filter> <action android:name="com.yandex.metrica.intent.action.SYNC"/> </intent-filter> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED"/> <action android:name="android.intent.action.PACKAGE_DATA_CLEARED"/> <data android:scheme="package"/> </intent-filter>
- Для работы библиотеки AppMetrica не требуется создавать в пакете приложения собственный класс провайдера с названием
MetricaContentProvider
, наследующий классcom.yandex.metrica.MetricaContentProvider
. Удалите его из своего приложения.
Версия 1.65
Релиз 24 февраля 2015 г.
API LEVEL
библиотеки — 21. Измените его в файле AndroidManifest.xml.- Повышена надежность статистики.
Версия 1.60
Релиз 28 октября 2014 г.
- Добавлена бесплатная поддержка трекинга установок приложений.
API LEVEL
библиотеки — 16. Измените его в файле AndroidManifest.xml.- Главный класс API переименован из
Counter
вYandexMetrica
. - Все методы стали статическими, поэтому любое использование методов через объект
Counter.sharedInstance()
производите с помощью классаYandexMetrica
. - API-ключ (metrica:api:key) в файле AndroidManifest.xml игнориуется. Он задается программно во время инициализации библиотеки в приложении: в методе activate передается контекст и API-ключ вашего приложения.
В файле AndroidManifest.xml не указывается receiver для
com.yandex.metrica.CampaignReceiver
. Его intent-filter указывается вreceiver
дляcom.yandex.metrica.MetricaEventHandler
:... <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> ...
- Запрещен метод
setLocation(double, double)
для установки локации. Используйте методsetLocation(android.location.Location)
. - Добавлена поддержка нативных аварийных остановок приложения.
- Добавлена отправка событий с дополнительными параметрами (Json, Attributes).
- Повышена стабильность и улучшено быстродействие.
- Ускорен запуск библиотеки.
- Улучшена работа с локацией.