Analytics integrations

Learn how to set up integration with analytics services. Adapty supports Amplitude, Mixpanel, AppMetrica

Adapty sends all subscription events to analytical services, such as Amplitude, Mixpanel, and AppMetrica. We can also send events to your server using webhook integration. The best thing about this is that you don't have to send any of the events, we'll do it for you. Just make sure to configure the integration in the Adapty Dashboard.

Adapty supports the integration with the following 3d-party analytics services:


Don't see your analytics provider?

Let us know! Write to the Adapty support and we'll consider adding it.

Setting the profile's identifier

Set the profile's identifier for the selected analytics using .updateProfile() method. For example, for Amplitude integration, you can set either amplitudeUserId or amplitudeDeviceId. For Mixpanel integration, you have to set mixpanelUserId. When these identifiers are not set, Adapty will use customerUserId instead. If the customerUserId is not set, we will use our internal profile id.


Avoiding duplication

Don't forget to turn off sending subscription events from devices and your server to avoid duplication

Disabling external analytics for a specific customer

You may want to stop sending analytics events for a specific customer. This is useful if you have an option in your app to opt-out of analytics services.

To disable external analytics for a customer, use updateProfile() method. Create AdaptyProfileParameters.Builder object and set corresponding value to it.
When external analytics is blocked, Adapty won't be sending any events to any integrations for the specific user. If you want to disable an integration for all users of your app, just turn it off in Adapty Dashboard.

let builder = AdaptyProfileParameters.Builder()
    .with(analyticsDisabled: true)

val builder = AdaptyProfileParameters.Builder()
AdaptyProfileParameters.Builder builder = new AdaptyProfileParameters.Builder()

final builder = AdaptyProfileParametersBuilder()

try {
  await Adapty().updateProfile(;
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
adapty.updateProfile({ analyticsDisabled: true });
var builder = new Adapty.ProfileParameters.Builder()

Adapty.UpdateProfile(builder.Build(), (error) => {
    if(error != null) {
      // handle the error

Disable collection of IDFA


You can disable IDFA collecting by using property idfaCollectionDisabled. Make sure you call it before .activate() method.

Adapty.idfaCollectionDisabled = true

Flutter, React Native, Unity

You can disable IDFA collecting by adding specific key to the Adapty-Info.plist file:


React Native

You also can disable IDFA collecting by setting idfaCollectionDisabled flag in your activation flow:

adapty.activate('PUBLIC_SDK_KEY', {
  ios: {
    idfaCollectionDisabled: false,