Changelog
This is an archived version of documentation. You can find the current documentation for all platforms here.
Version 5.3.0
Released March 3, 2023
Fixed the
Class com.yandex.metrica.impl.ob.Zh failed lock verification and will run slower
warning (and similar ones) that could've appeared at app installation and launch.Fixed a possible ANR
at com.yandex.metrica.impl.ob.p3$b.onServiceConnected(SourceFile:2)
.Fixed errors and improved stability.
Version 5.2.0
Released September 19, 2022
- Added the AdRevenue API for transmitting advertising monetization revenue at the impression level (Impression-Level Revenue Data):
- The AdRevenue, AdRevenue.Builder classes.
- The reportAdRevenue(AdRevenue adRevenue) methods in the
YandexMetrica
, reportAdRevenue(AdRevenue adRevenue) class in theIReporter
interface. - The AdType enumeration.
targetSdkVersion = 33.
Version 5.0.1
Released July 29, 2022
Fixed an issue that could cause repeated false installations.
Version 5.0.0
Released May 20, 2022
Starting from Android AppMetrica SDK 5.0.0 and higher, appmetrica_device_id
changes when the app is reinstalled on a smartphone. This is due to new Google policies. For more information, see the documentation.
Moved the feature of getting advertising IDs to a separate library named com.yandex.android:mobmetricalib-identifiers. For more information, see Getting advertising IDs.
The flag to send information about the device location is disabled by default. To enable sending location data along with events, use one of the following methods: withLocationTracking(boolean enabled) or setLocationTracking(boolean enabled).
Added
@NonNull
annotations for the arguments of the DeferredDeeplinkParametersListener interface methods.The reportNativeCrash method is deprecated and will be removed in future versions.
Version 4.2.0
Released February 17, 2022
Added a new API to track crashes and errors from random plugins.
Interfaces:- Supported downgrade to version 4.2.0 and higher with saving important data, such as the device ID. It is not recommended to use downgrade, as it can cause data loss and corruption. Repeated attribution for such users will not be supported.
- Added support for Google Play Billing Library version 4.0.0. Support is still provided for versions 3.x.
- In the DeferredDeeplinkParametersListener method, the
referrer
argument became@NonNull
. If it is missing, you will get an empty string. - Removed ROOT status detection on devices running Android 12 and higher. Now all devices running Android 12 will be considered devices without ROOT access.
- Fixed errors and improved stability:
- Fixed a possible crash when trying to connect to 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)
. - Fixed a possible ANR in the process:
Metrica: at com.yandex.metrica.impl.ob.jg.a (jg.java) at com.yandex.metrica.MetricaService.onConfigurationChanged(MetricaService.java:2)
. - Fixed a possible crash:
java.lang.NullPointerException: Attempt to read from null array at com.yandex.metrica.impl.ob.tz.a
.
Version 4.1.1
Released December 17, 2021
- Added com.google.android.gms.permission.AD_ID permission. For more information, see the documentation.
- In DeferredDeeplinkListener.Error and DeferredDeeplinkParametersListener.Error, added
NO_REFERRER
value. - Added preliminary support for App Set ID to receive a referrer from Google Play (dependency
com.google.android.gms:play-services-appset:16.0.0
). - SDK optimization is supported due to the correction of possible VerifyError when initializing classes.
- Mac address collection is disabled.
Version 4.0.0
Released September 20, 2021
- Google Play Install Referrer via BroadcastReceiver is no longer supported:
- Removed MetricaEventHandler from AndroidManifest.
- Removed the
YandexMetrica#registerReferrerBroadcastReceivers
method. - Removed the
YandexMetricaConfig#installedAppCollecting
flag. - Removed the
YandexMetricaConfig.Builder#withInstalledAppCollecting
methods.
- Added the YandexMetricaConfig.Builder#withSessionsAutoTrackingEnabled(boolean enabled) method for automatic session tracking.
- Added the revenueAutoTrackingEnabled method for the automatic collection of data on In-App purchases.
- Supported publication of the ".module" file for the Google Play SDK Console.
- Auto-tracking of deeplinks has been implemented and enabled by default.
- AppMetrica SDK migrated to AndroidX.
- Added basic support for Android 12: the main functionality of the AppMetrica SDK is available on Android 12 devices in apps with targetSdkVersion = 31.
- minSdkVersion has been upgraded to 14.
Version 3.21.1.
Released 3 June 2021
- The YandexMetricaConfig.Builder#withInstalledAppCollecting method is marked as
deprecated
. The flag value will be ignored (alwaysfalse
).
Version 3.21.0
Released May 26, 2021
- Added the YandexMetrica#initWebViewReporting method for sending events from the WebView's JS code.
- Upgraded Play Install Referrer Library to version 2.2.
- Crashpad supported for collecting native crashes. The native library ver. 2.0.0 and higher uses crashpad. Previous versions support breakpad. The mechanism used depends on the version of the native library attached.
- Fixed errors and improved stability.
Version 3.20.2
Released April 29, 2021
- Fixed Unity compatibility issue.
Version 3.20.1
Released April 14, 2021
- Added the option to set user profile ID during activation (YandexMetricaConfig.Builder#withUserProfileID) or before activation (YandexMetrica#setUserProfileID). Use this to get rid of empty profiles without an ID.
- Upgraded Play Install Referrer Library to version 2.1.
Fixed incorrect deeplink processing from callback
Activity#onNewIntent(Intent)
. You need to make the following changes to the integration:Instead of calling:
@Override protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); YandexMetrica.reportAppOpen(this); }
Copied to clipboardCall:
@Override protected void onNewIntent(final Intent intent) { super.onNewIntent(intent); YandexMetrica.reportAppOpen(intent); }
Copied to clipboard- Fixed errors and improved stability.
Version 3.18.0
Released January 15, 2021
- Supported compliance with new Google policies in the context of location data collection.
Version 3.16.2
Released 13 November 2020
- Fixed a possible crash:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ComponentName android.app.Activity.getComponentName()' on a null object reference
.
Version 3.16.1
Released 14 October 2020
- Added a new API for sending E-Commerce events:
For more information about E-Commerce events, see .
- Improved sending native crash data.
- Improved the performance of the library and the quality of statistical data.
Version 3.15.0
Released 29 July 2020
- Improved the performance of the library and the quality of statistical data.
Version 3.14.3
Released 9 July 2020
- Fixed a possible Mobile Ads SDK compatibility issue.
Version 3.14.2
Released 8 July 2020
- Added a new API for sending crashes and errors:
- Added the putErrorEnvironment(String key, String value) method to the YandexMetrica class. You can use it to set the error environment.
- Added the reportError(String groupIdentifier, String message) and reportError(String groupIdentifier, String message, Throwable error) methods to the YandexMetrica and IReporter classes. They can be used to pass IDs that crashes and errors are grouped by.
- Added the YandexMetrica.requestDeferredDeeplink(DeferredDeeplinkListener listener) method and DeferredDeeplinkListener interface for getting a deferred deeplink. For more information, see Usage examples.
- Added the AppMetrica SDK dependency on the Install Referrer Library.
- Stopped supporting the YandexMetrica.registerReferrerBroadcastReceivers(BroadcastReceiver... anotherReferrerReceivers) method. The method is deprecated since Google stopped sending Broadcast as of March 1, 2020.
- Improved the performance of the library and the quality of statistical data.
Version 3.13.1
Released 3 March 2020
- Improved the performance of the library and the quality of statistical data.
Version 3.10.0
Released 4 February 2020
- Fixed the reportReferralUrl method of the YandexMetrica class. It is no longer deprecated.
- Improved crash handling.
- Improved the performance of the library and the quality of statistical data.
Version 3.8.0
Released 8 October 2019
- Added the ability uploading mapping files using the special plugin.
- Improved the performance of the library and the quality of statistical data.
Version 3.7.2
Released 20 September 2019
- Improved the quality of event delivery.
- Added sending suppressed exceptions along with crashes.
- Added the withMaxReportsInDatabaseCount(int value) method to theYandexMetricaConfig.Builder class. It allows setting the maximum number of events that can be stored in a phone's database before being sent to AppMetrica.
- Added the maxReportsInDatabaseCount field to the YandexMetricaConfig class.
- Fixed a possible
java.lang.SecurityException
crash.
Version 3.6.4
Released 13 June 2019
- Fixed an issue that could cause events to be lost.
- Improved the performance of the library and the quality of statistical data.
Version 3.6.2
Released 21 May 2019
- Improved the performance of the library and the quality of statistical data.
Version 3.6.1
Released 15 May 2019
- Improved the performance of the library and the quality of statistical data.
Version 3.6.0
Released 23 April 2019
- Added the following to the Revenue class:
- Method newBuilderWithMicros(). Use it instead of deprecated newBuilder().
- Field priceMicros. Use it instead of deprecated price.
- Updated Google Breakpad. The new version supports all processor architectures. For more information, see Usage examples.Note. There are possible errors when collecting native crash data on devices with the x86 processor architecture.
- Improved crashes collecting during the application start.
- Added a thread dump for crashes.
- Fixed an issue that could cause memory leaks in threads.
Version 3.5.3
Released 30 January 2019
- Improved the performance of the library and the quality of statistical data.
Version 3.5.1
Released 28 December 2018
- Improved the performance of the library and the quality of statistical data.
Version 3.5.0
Released 14 December 2018
- Improved the performance of the library and the quality of statistical data.
Version 3.4.0
Released 5 November 2018
- Added support for Android 9.
- Improved library logging.
- Improved the performance of the library and the quality of statistical data.
Version 3.2.2
Released 9 August 2018
- Improved the performance of the library and the quality of statistical data.
Version 3.2.1
Released 30 July 2018
- Improved the performance of the library and the quality of statistical data.
Version 3.2.0
Released 23 July 2018
- Added the setStatisticsSending() method to disable statistics sending.
- Added the requestAppMetricaDeviceID() method to retrieve the AppMetrica device ID (
appmetrica_device_id)
. - Added the sendEventsBuffer() method to force sending stored events from the buffer.
- Improved the performance of the library and the quality of statistical data.
Version 3.1.0
Released 30 May 2018
- Added deeplink attribution (Re-engagement).
- Added a mechanism to speed up sending event postbacks for high-frequency events.
- Added integration with the
Play Install Referrer Library
. The library provides information about when the app started downloading from Google Play. This can improve attribution accuracy.
Version 3.0.0
Released 25 April 2018
- Added methods for creating user profiles.
- Added revenue tracking.
- Unified and revised the API. Read more in the migration guide to Android SDK 3.0.0.
- Improved support for working the library in several processes (with the restriction on activation with the same configuration).
- Changed the way of application crashes tracking in native code. For more information, see Usage examples.
- Improved performance and bug fixes.
Version 2.80
Released 27 December 2017
- Added fixes and minor improvements to the library for Android 8.
- Updated information about the integration process using
.jar
. - The library's
API LEVEL
is 64. Change it in the AndroidManifest.xml file.
Version 2.78
Released 19 November 2017
- Added fixes and minor improvements to the library.
- The library's
API LEVEL
is 63. Change it in the AndroidManifest.xml file.
Version 2.77
Released 9 October 2017
- Added support for Android 8.
- Added fixes and minor improvements to the library.
- The library's
API LEVEL
is 62. Change it in the AndroidManifest.xml file.
Version 2.76
Released 17 August 2017
- Added the
reportReferralUrl()
method which sets referral URL for app installs. - Updated information about the integration process by using
.jar
. - Added fixes and minor improvements to the library.
- The library's
API LEVEL
is 61. Change it in the AndroidManifest.xml file.
Version 2.73
Released 15 June 2017
- Added fixes and minor improvements to the library.
- The library's
API LEVEL
is 58. Change it in the AndroidManifest.xml file.
Version 2.71
Released 1 June 2017
- Added the
reportAppOpen(String deeplink)
method to track app openings with a string deeplink. - Fixed an error occurred during the deferred deeplink parameters obtaining.
- The library's
API LEVEL
is 56. Change it in the AndroidManifest.xml file.
Version 2.70
Released 16 May 2017
- Added the deferred deeplink support.
- Improved the stability of the library.
- Improved crash detection during the launch of the app.
- Added logging events attributes.
- The library's
API LEVEL
is 55. Change it in the AndroidManifest.xml file.
Version 2.62
Released 30 December 2016
- Improved the stability of the library.
- Added fixes and minor improvements to the library.
- The library's
API LEVEL
is 52. Change it in the AndroidManifest.xml file.
Version 2.60
Released 21 November 2016
- Added tracking of app openings with a deeplink.
- Added the ability to tell AppMetrica that the app was installed on the device before the AppMetrica SDK library was enabled. This allows AppMetrica to distinguish the first app start after integrating the SDK from the very first app start. This type of app launch won't be interpreted as a new user.
- Improved the stability of the library.
- The library's
API LEVEL
is 50. Change it in the AndroidManifest.xml file.
Version 2.51
Released 29 September 2016
- Improved the stability of the library.
- Added support for Android 7.
- Prohibited using a Google account for making backup copies of AppMetrica SDK data.
- The library's
API LEVEL
is 48. Change it in the AndroidManifest.xml file.
Version 2.42
Released 17 June 2016
- Improved performance and bug fixes.
- The library's
API LEVEL
is 45. Change it in the AndroidManifest.xml file.
Version 2.41
Released 27 March 2016
- Optimized energy consumption when sending data.
- The library's
API LEVEL
is 44. Change it in the AndroidManifest.xml file.
Version 2.40
Released 28 March 2016
- Added the ability to send statistics using an API key that differs from the app's API key.
- The library's
API LEVEL
is 43. Change it in the AndroidManifest.xml file.
Version 2.32
Released 29 November 2016
- Improved the stability of the library and the quality of statistical data.
- The library's
API LEVEL
is 41. Change it in the AndroidManifest.xml file.
Version 2.30
Released 16 December 2015
- Added the ability to initialize the library using the extended configuration, which guarantees that all the configuration parameters will be applied when the first event is sent.
- Added the ability to specify information for tracking pre-installed apps.
- Optimization for improved quality of statistics.
- The library's
API LEVEL
is 39. Change it in the AndroidManifest.xml file.
Version 2.23
Released 25 November 2015
- Added support for Yandex Mobile Ads 2.00.
- The library's
API LEVEL
is 38. Change it in the AndroidManifest.xml file.
Version 2.21
Released 20 October 2015
- The library's
API LEVEL
is 36. Change it in the AndroidManifest.xml file. - Removed the
YandexMetrica.isMetricaProcess()
method. - Disabled transmitting data about installed apps by default.
- Added the
isCollectInstalledApps()
method for determining whether transmitting information about installed apps on the device is enabled. - Added the method
enableActivityAutoTracking(final Application application)
for enabling automatic app lifecycle tracking. - Added the method
registerReferrerBroadcastReceivers(BroadcastReceiver...anotherReferrerReceivers)
, which allows registering any number of BroadcastReceivers in AppMetrica for trackingINSTALL_REFERRER
from GooglePlay when using other tracking systems. - The AAR format of the library is now added from Maven Central by default. To enable the library in JAR format, you must explicitly specify the classifier:
compile "com.yandex.android:mobmetricalib-internal:2.21:jar"
. - Added the
setLogEnabled()
method, which lets you enable logging the library's activity. - Fixed an error that led to app crashes:
java.lang.NullPointerException at com.yandex.metrica.impl.ob.f.b
.
Version 2.0
Released 27 August 2015
- The library's
API LEVEL
is 32. Change it in the AndroidManifest.xml file. The format of the API key has been changed. The app ID in a new format is available in the AppMetrica web interface when the app editing mode is engaged.
Where to find the API key- The method of initializing the library in the app has been renamed from
initialize(android.content.Context, java.lang.String)
toactivate(android.content.Context, java.lang.String)
. - Changed the length of the session timeout. Now it is 10 seconds, by default.
- The library has been adapted for Android M.
- Significantly improved performance and reduced power consumption.
Deprecated methods have been removed.
setReportsEnabled(boolean enabled)
— lets you enable and disable sending reports.setDispatchPeriod(int dispatchPeriodSeconds)
— allows you to set the interval in seconds between sending accumulated events to the server.setMaxReportsCount(int maxReportsCount)
— Allows you to set the maximum number of events that can be stored up before sending all accumulated events to the server.startNewSessionManually()
— allows you to start a new session manually.sendEventsBuffer()
— Allows you to send all accumulated events without waiting for them to automatically be sent to the server.
Click to see the list
Version 1.82
Released 19 June 2015
- The library's
API LEVEL
is 31. Change it in the AndroidManifest.xml file. - Improved quality of calculating statistics for sessions and installs.
- Migrated to protobuf-nano — the overall size of the library is smaller and it works faster. If you were using the protobuf-2.5.0 library with the AppMetrica library, delete it.
The AndroidManifest.xml file does not specify
provider
:<provider android:name="FULL_PACKAGE_PATH_TO_YOUR_PROVIDER.MetricaContentProvider" android:authorities="ROOT_PACKAGE_PATH.MetricaContentProvider" android:enabled="true" android:exported="true"/>
the following
intent-filter
forcom.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>
- To use the AppMetrica library, you do not need to create a custom provider class in the application package with the name
MetricaContentProvider
that inherits fromcom.yandex.metrica.MetricaContentProvider
. Delete it from your app.
Version 1.65
Released 24 February 2015
- The library's
API LEVEL
is 21. Change it in the AndroidManifest.xml file. - Improved reliability of statistics.
Version 1.60
Released 28 October 2014
- Added free support for tracking app installations.
- The library's
API LEVEL
is 16. Change it in the AndroidManifest.xml file. - The main API class has been renamed from
Counter
toYandexMetrica
. - All methods are now static, so any use of methods via the
Counter.sharedInstance()
object should involve theYandexMetrica class
. - The API key (metrica:api:key) in the AndroidManifest.xml file is ignored. It is set programmatically during library initialization in the app: the "activate" method passes the context and API key of your app.
The AndroidManifest.xml file does not specify the receiver for
com.yandex.metrica.CampaignReceiver
. Its intent-filter is specified inreceiver
forcom.yandex.metrica.MetricaEventHandler
:... <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER"/> </intent-filter> ...
- The
setLocation(double, double)
method is prohibited for setting location. Use thesetLocation(android.location.Location)
method. - Added support for native app crashes.
- Added events with additional parameters (Json, Attributes).
- Improved stability and performance.
- Optimized library start.
- Improved location handling.