Learn how to set up integration with AppMetrica

AppMetrica is a no-cost tool that helps you track advertisements and analyze how your mobile app is doing. It works in real-time, so you see things right away.

How to set up AppMetrica integration

To integrate AppMetrica go to Integrations > AppMetrica and set credentials.

Open AppMetrica apps list. Choose the app you want to send events to and go to Settings. Copy Application ID and Post API key and use them to set up the integration in Adapty.


AppMetrica dashboard

AppMetrica syncs events every 4 hours, so it may take some time for events to appear in the dashboard. AppMetrica doesn't support sending events revenue, but we send it as regular property.

Events and tags

Below the credentials, there are three groups of events you can send to AppMetrics from Adapty. Simply turn on the ones you need. Check the full list of the events offered by Adapty here.

Subscriptions, trials, issues events in Adapty integration interface

Subscriptions, trials, issues events in Adapty integration interface

We recommend using the default event names provided by Adapty. But you can change the event names based on your needs.

SDK configuration

Use Adapty.updateProfile() method to set appmetricaProfileId or appmetricaDeviceId. If not set, Adapty uses your user ID (customerUserId). Make sure that the user id you use to send data to AppMetrica from your app is the same one you send to Adapty. These links should help to set up a user id for AppMetrica in your app.

import YandexMobileMetrica

YMMYandexMetrica.requestAppMetricaDeviceID(withCompletionQueue: .main) { deviceId, error in
    guard let deviceId = deviceId else { return }
    let builder = AdaptyProfileParameters.Builder()
        .with(appmetricaDeviceId: deviceId)
        .with(appmetricaProfileId: "YOUR_ADAPTY_CUSTOMER_USER_ID")

val params = AdaptyProfileParameters.Builder()
Adapty.updateProfile(params) { error ->
    if (error != null) {
        // handle the error
import 'package:appmetrica_plugin/appmetrica_plugin.dart';

final builder = AdaptyProfileParametersBuilder()
    ..setAppmetricaDeviceId(await AppMetrica.requestAppMetricaDeviceID())

try {
    await adapty.updateProfile(;
} on AdaptyError catch (adaptyError) {
    // handle error
} catch (e) {}
import { adapty } from 'react-native-adapty';

// ...
try {
  await adapty.updateProfile({
    appmetricaProfileId: appmetricaProfileId,
    appmetricaDeviceId: appmetricaDeviceId,
} catch (error) {
  // handle `AdaptyError`
AppMetrica.Instance.RequestAppMetricaDeviceID((deviceId, error) => {
    if (error != null) {
        // handle error

    var builder = new Adapty.ProfileParameters.Builder();


    Adapty.UpdateProfile(builder.Build(), (error) => {
        // handle error