Changelog

Attention.

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.0.1

Released July 29, 2022

  • Fixed an issue that could cause repeated false installations.

Version 5.0.0

Released May 20, 2022

Note.

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.

Version 4.2.0

Released February 17, 2022

  • Added a new API to track crashes and errors from random plugins.

  • 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

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 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.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 clipboard

    Call:

        @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.
  • Fixed the price field logging in the Revenue class: GitHub Issue #31.

Version 3.16.1

Released 14 October 2020

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

Version 3.14.2

Released 8 July 2020

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.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:
  • 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

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 tracking INSTALL_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) to activate(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.

    Click to see the list
    • 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.

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 for 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>
  • 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 from com.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 to YandexMetrica.
  • All methods are now static, so any use of methods via the Counter.sharedInstance() object should involve the YandexMetrica 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 in receiver for com.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 the setLocation(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.