Changelog

AppMetrica SDK

Version 7.3.0

Release November 5, 2024

  • Added AppMetrica#reportAnr() and IReporter#reportAnr() methods that allow sending ANR information manually.
  • Fixed possible crash java.lang.IllegalArgumentException:... at io.appmetrica.analytics.impl.K7.a(K7.java:27).
  • Fixed Missing class com.google.android.gms.ads.AdValue warning during app build (issue#10).

Version 7.2.2

Release October 23, 2024

  • Added additional fully initialization verification.

Version 7.2.1

Release October 8, 2024

  • Improved auto-detection of non-first launch of the application when activating the adapter for third-party libraries.
  • Added ignoring events sent via the adapter for third-party libraries before it is activated (or incorrect events) instead of throwing an exception.

Version 7.2.0

Released September 11, 2024

  • Removed the local mechanism for detecting internal crashes of AppMetrica SDK and AppMetrica Push SDK in favor of a backend solution.
  • Added the io.appmetrica.analytics:analytics-apphud module for Apphud integration.
  • Added an API to facilitate sending ILRD (impression-level revenue data) from Google AdMob for the App Open Ad format.
  • Improved event logging.

Version 7.1.0

Released August 21, 2024

  • Added an API to facilitate sending of ILRD (impression-level revenue data) from:
  • Added support for accelerated sending of some events (attributions from external SDKs, e-commerce, revenue, and ad revenue (impression-level revenue data)) to the server.

Version 7.0.0

Released June 28, 2024

Breaking changes:

  • The current minSdkVersion has been upgraded to 21 (Android 5.0).
  • The sourceCompatibility and targetCompatibility versions have been upgraded to Java 1.8.

Additional changes:

  • Added invalid format correction for crash and error reports. This change resolves a potential crash

    java.lang.IllegalArgumentException: Unpaired surrogate at index 14 at io.appmetrica.analytics.protobuf.nano.CodedOutputByteBufferNano.encodedLengthGeneral(Unknown Source)
    
  • Fixed a possible ANR at io.appmetrica.analytics.impl.sk.a(sk.java:1).

  • Fixed a possible crash

    java.lang.NullPointerException: Attempt to invoke virtual method 'void io.appmetrica.analytics.impl.Nb.a(io.appmetrica.analytics.impl.ie)' on a null object reference at io.appmetrica.analytics.impl.Qb.b(SourceFile:10)
    
  • Introduced a limit of 100 events per server request. The limit is imposed to improve the SDK performance when the network channel is unstable.

  • Optimized threading on the client side and removed deprecated SDK integration checks. This optimization will reduce the time of synchronous SDK activation.

Version 6.5.0

Released April 26, 2024

Version 6.4.0

Released April 11, 2024

  • You can now receive impression-level revenue data automatically from the following sources: Ironsource V7 and Fyber V3.
  • Fixed the error that was logged to the system log:
    E ActivityThread: Failed to find provider info for com.yandex.preinstallsatellite.appmetrica.provider
    

Version 6.3.0

Released March 18, 2024

  • UUID format validation and recovery of invalid UUID values are now available.
  • ANR detection algorithm improved. Now, ANR is only registered if a single Runnable couldn't be executed within the allotted time on the main thread. The algorithm identifies heavy tasks that cause the main thread to freeze. Previously, ANR detection triggered when a large number of small Runnables were executed on the main thread. In such situations, the ANR stack trace was typically non-informative and quite useless.
  • Now, if a single Runnable freezes, a single ANR report is generated. This reduces the number of ANR reports, but increases their usefulness.
  • Fixed a possible ANR at io.appmetrica.analytics.internal.AppMetricaService.onCreate (issue#3).
  • Fixed potential crashing of org.json.JSONException: Forbidden numeric value: NaN when sending external attributions (AppMetrica#reportExternalAttribution(...)).

Version 6.2.1

Released January 26, 2024

  • Fixed an error in external attribution serialization.

Version 6.2.0

Released January 22, 2024

  • Added the AppMetrica.reportExternalAttribution method for sending attributions from external libraries. To learn more, see Importing attributions from other SDKs.
  • Fixed an issue that prevented logging of saving and sending events to the server.

Version 6.1.0

Released November 28, 2023

  • Increased buildToolsVersion to 34.0.0.
  • Increased targetSdkVersion and compileSdkVersion to 34.
  • Kotlin plugin updated to version org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21.
  • Now supports automatically collecting purchases and subscriptions made using the com.android.billingclient:billing:6.0.0 library. Automated collection of purchases and subscriptions using the com.android.billingclient:billing:4.+ library is no longer supported. Automated collection of purchases and subscriptions is now available for com.android.billingclient:billing:5.0.0 and higher.
  • Fixed a possible deadlock at io.appmetrica.analytics.networktasks.internal.NetworkCore.onDestroy.

Version 6.0.0

Released September 13, 2023

  • Updated the library ID, root package, and API. For more details, see the migration instructions.
  • Removed Breakpad integration. Only Crashpad is currently used. To catch native crashes, use the io.appmetrica.analytics:analytics-ndk-crashes:3.0.0 dependency. For more details, see the section about native crashes.
  • Updated Crashpad to the 9158eb7caa811b684c6bec7f9e9b5f52389d0ce0 commit in the io.appmetrica.analytics:analytics-ndk-crashes module.
  • Moved the com.google.android.gms.permission.AD_ID permission to the io.appmetrica.analytics:analytics-identifiers module.
  • Fixed the Class io.appmetrica.analytics.impl.ob.Zh failed lock verification and will run slower warning (and similar ones) that could have arisen when installing and starting the app.
  • Fixed a possible ANR error at io.appmetrica.analytics.impl.ob.p3$b.onServiceConnected(SourceFile:2).
  • Moved geo features to a separate dependency: io.appmetrica.analytics:analytics-location. You can now opt out of the AppMetrica SDK collecting location coordinates at the app build stage when needed. This may be needed for certain app categories to comply with Google Play policies. For more information, see the documentation.
  • Now supports API for obtaining the AppMetrica SDK IDs (DeviceId, DeviceIdHash, UUID) with the AppMetrica#requestStartupParams method. For more information, see the documentation.
  • Now supports the API for specifying the device type (phone, tablet, TV, car). For more information, see the documentation.

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 have arisen 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):
    • AdRevenue and AdRevenue.Builder classes.
    • reportAdRevenue(AdRevenue adRevenue) methods in the YandexMetrica class and reportAdRevenue(AdRevenue adRevenue) methods in the IReporter interface.
    • The AdType enumeration.
  • targetSdkVersion = 33.

Version 5.0.1

Released July 29, 2022

  • Fixed an issue that could cause repeated false installations.

Versions 5.0.0–4.0.0

5.0.0–4.0.0

Version 5.0.0

Released May 20, 2022

Note

Starting from Android AppMetrica SDK 5.0.0 and later, appmetrica_device_id changes when the app is reinstalled. 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:

    • YandexMetricaPlugins;
    • IPluginReporter.

    Classes:

    • PluginErrorDetails;
    • PluginErrorDetails.Builder;
    • StackTraceItem;
    • StackTraceItem.Builder.
  • Now supports 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.

  • Now supports 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 crash that could have occurred 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.

  • Now supports the 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.

Crash plugin (AppMetrica Build Plugin for Gradle)

Version 0.11.0

Released May 2, 2024

  • Fixed the error Cannot write a file to a location pointing at a directory.
  • Stopped using the deprecated VersionNumber class.

Version 0.10.0

Released April 26, 2024

  • Added a keep for the resources added by the plugin for AGP 8.2.+.

Version 0.9.0

Released February 26, 2024

  • Now supports AGP up to version 8.2.+ (excluding 8.0.+) and gradle up to 8.6.

Version 0.8.2

Released October 31, 2023

  • Fixed a StackOverflowError that occurred when there was a circular dependency.

Version 0.8.1

Released October 4, 2023

  • Fixed a possible crash when checking the use of two AppMetrica versions if there are multiple modules in a project.

Version 0.8.0

Released September 14, 2023

  • Changed the plugin name to io.appmetrica.analytics:gradle:0.8.0.
  • The com.yandex.android:mobmetricalib-ndk-crashes:1.1.0 dependency updated to io.appmetrica.analytics:analytics-ndk-crashes:3.0.0.
  • Now supports io.appmetrica.analytics:analytics:6.0.0.
  • Added the allowTwoAppMetricas parameter to disable checking the use of different AppMetrica versions.

Version 0.7.0

Released April 19, 2023.

  • Added more details to the error reporting that mapping files are missing.
  • Now supports AGP up to version 7.4.+ and gradle up to 7.5.

Version 0.6.2

Released July 28, 2022

  • Improved performance of the plugin.

Version 0.6.1

Released May 20, 2022

  • Improved performance of the plugin.

Version 0.6.0

Released May 17, 2022

  • Added the mappingFile parameter.
  • Fixed the "Cannot query the value of this property because it has no value available" error that occurred when retrieving the mapping file.

AppMetrica Push SDK

Version 4.0.0

Released July 11, 2024

  • The current minSdkVersion has been upgraded to 21 (Android 5.0).
  • Changed the AppMetricaPushTracker constructor from AppMetricaPushTracker() to AppMetricaPushTracker(Context).
  • Updated the PushServiceController interface:
    • Renamed the getTitle method to getTransportId.
    • Added the getExecutionRestrictions and shouldSendToken methods.
  • Improved the processing speed and delivery of push notifications.

Version 3.3.0

Released May 3, 2024

  • Fix push processing in plugin-adapter.

Version 3.2.0

Released April 22, 2024

  • Updated the supported RuStore version to ru.rustore.sdk:pushclient:2.1.1.
  • Added the plugin-adapter module to ensure proper Push SDK performance when used in plugins.
  • Added support for saving variable names in the public API.

Version 3.1.1

Released April 9, 2024

  • Removed debug logs.

Version 3.1.0

Released April 2, 2024

  • Fixed the delivery of silent push notifications when notifications are disabled.

Versions 3.0.0–2.0.0

3.0.0–2.0.0

Version 3.0.0

Released November 18, 2023

  • Updated the library ID, root package, and API. For more details, see the migration instructions.
  • Added an API for customizing the notifications created by the SDK.
  • Removed com.yandex.android:mobmetricalib support.

Version 2.3.3

Released November 10, 2023

  • Fixed a crash that occurred if the app had two different versions of AppMetrica SDK at the same time.

Version 2.3.2

Released October 4, 2023

  • Fixed a bug

    No field Companion of type Lio/appmetrica/analytics/ModuleEvent$Companion
    

Version 2.3.1

Released July 31, 2023

  • Improved performance and stability of the library.

Version 2.2.0

Released June 2, 2022

  • minSdkVersion (in appmetricapush-provider-hms) increased to 17.
  • Hms updated to version 6.5.0.300.
  • Accelerated PushSDK activation.

Version 2.1.1

Released March 14, 2022

  • Fixed a bug BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR.

Version 2.1.0

Released February 24, 2022

  • Improved token acquisition.
  • The YandexMetricaPush.getTokens method returns new tokens when called from TokenUpdateListener.onTokenUpdated.
  • Improved performance and stability of the library.

Version 2.0.0

Released October 28, 2021

  • Fixed a bug that occasionally occurred when processing a click on a push in Android 12.
  • Switching from support dependencies to AndroidX.