3rd party analytics

Apple and Google send subscription events directly to the server using Subscription Status URL and Real-time developer notifications (RTDN). Therefore, apps can not send events to analytical systems correctly and on-time. For example, if the user subscribed and then didn't open the app, without a server developer will get zero information about subscription status.

It's not a raw events proxy from Apple/Google. Adapty processes events into human-readable format instantly as they created and enriches them with additional information, such as customer ID, consecutive payments, and others. Besides that Apple doesn't send events about subscription renewals but we do.

You don't need to implement custom server logic to process Apple and Google Play subscription events, Adapty does it for you. Make sure to set up Subscription Status URL for iOS and Real-time developer notifications (RTDN) for Android.

Each integration is native, so Adapty maps some properties to system-native.

If you leave the Event Name blank, Adapty won't send it.

AppsFlyer

To integrate AppsFlyer go to Integrations -> AppsFlyer and set credentials.

To find App ID, open your app page in App Store Connect, go to the App Information page in section General and find Apple ID in the left bottom part of the screen.

To find Android Package Name, open your app page on Google Play Console. You can see it under the app name.

Open AppsFlyer and navigate to your app page. Scroll the left menu bar, find App Settings, and use Dev Key.

Finding Dev Key in AppsFlyer

AppsFlyer doesn't have a Sandbox mode for server2server integration. So you need a different application/account in AppsFlyer to for Sandbox Dev Key.

DO NOT USE YOUR MAIN DEV KEY AS A SANDBOX KEY

Adapty maps some events to AppsFlyer standard events by default. With such configuration, AppsFlyer can further send events to each ad network that you use without additional setup.

SDK configuration.

It's very important to send AppsFlyer attribution data from the device to Adapty using Adapty.updateAttribution() SDK method. The example below shows how to do that.

iOS (Swift)
iOS (Swift)
import AppsFlyerLib
extension AppDelegate: AppsFlyerTrackerDelegate {
func onConversionDataSuccess(_ conversionInfo: [AnyHashable : Any]) {
// It's important to include the network user ID
Adapty.updateAttribution(conversionInfo, source: .appsflyer, networkUserId: AppsFlyerTracker.shared().getAppsFlyerUID())
}
}

Mixpanel

To integrate Adapty with Mixpanel you need only one variable: Mixpanel access token. Find the token in your Mixpanel project. If you need help, here's the official docs.

Token that Adapty needs for the integration

Adapty maps some properties such as user id and revenue of the event to Mixpanel-native properties. With such mapping, Mixpanel is able to show you correct data in the profile and events timeline.

Adapty also accumulates revenue from each user.

SDK configuration.

Use Adapty.updateProfile() method to set mixpanelUserId. If not set, Adapty uses your user ID (customerUserId) or if it's null, Adapty ID. Make sure that the user id you use to send data to Mixpanel from your app is the same you send to Adapty.

Amplitude

The same way as with Mixpanel, Adapty maps properties to Amplitude-native properties.

You need to enter API Key into Adapty. To find a token go to your Project settings in Amplitude. In case you need help refer to official docs.

Amplitude API key. Copy in and paste into Adapty

SDK configuration.

Use Adapty.updateProfile() method to set amplitudeDeviceId or amplitudeUserId. If not set, Adapty uses your user ID (customerUserId) or if it's null, Adapty ID. Make sure that the user id you use to send data to Amplitude from your app is the same you send to Adapty.

Facebook Ads integration is different from all others. Usually, companies create ads using Facebook and would like to optimize campaigns based on customers behaviour. Optimization is available only for Facebook standard events. That's why editing event names is not available for Facebook Ads integration. Adapty properly maps customers event into Facebook events in the following way

Adapty event

Facebook Ads event

Subscription initial purchase

Subscribe

Subscription renewed

Subscribe

Subscription cancelled

CancelSubscription

Trial started

StartTrial

Trial converted

Subscribe

Trial cancelled

CancelTrial

Non subscription purchase

fb_mobile_purchase

Billing issue detected

billing_issue_detected

Entered grace period

entered_grace_period

Auto renew off

auto_renew_off

Auto renew on

auto_renew_on

Auto renew off subscription

auto_renew_off_subscription

Auto renew on subscription

auto_renew_on_subscription

StartTrial, Subscribe, CancelSubscription are standard events.

You need an application on Facebook Developers platform. Log in to your app and then find advanced settings.

Scroll down and find a Client Token. Also, find the App ID in the header.

App ID and Client Token

Adjust

Adjust works a bit different from other platforms. You need to manually create events in Adjust dashboard, get event tokens, and copy-paste them to appropriate events in Adapty.

Open your Adjust dashboard and you'll see your apps.

App in Adjust

You may have different Adjust applications for iOS and Android, so in Adapty you have two independent sections for that. If you have only one Adjust app, just fill the same information

Copy App Token and paste it to Adapty.

Copy App Token

Now you need to find event tokens for all events that you want Adapty to send. To do that go to All Settings.

All Settings
Events
Event token

Copy event token and paste to Adapty.

SDK configuration.

It's very important to send Adjust attribution data from the device to Adapty using Adapty.updateAttribution() SDK method. The example below shows how to do that.

iOS (Swift)
iOS (Swift)
import Adjust
extension AppDelegate: AdjustDelegate {
func adjustAttributionChanged(_ attribution: ADJAttribution?) {
if let attribution = attribution?.dictionary() {
Adapty.updateAttribution(attribution, source: .adjust)
}
}
}

Branch

Open your Branch Account Settings and find the Branch Key field. Use it for Key test or Key live in Adapty dashboard. In Branch, switch between Live and Tests environments for the appropriate key.

You can send an event with Proceeds (after Apple/Google cut) or just revenue. Also, you can check a box for reporting in the user's currency.

Branch Account Settings

SDK configuration.

It's very important to send Branch attribution data from the device to Adapty using Adapty.updateAttribution() SDK method. The example below shows how to do that.

To connect Branch user and Adapty user, make sure you provide your customerUserId as Branch Identity id. If you prefer not to use customerUserId in Branch, use networkUserId param in attribution method to specify the Branch user ID to attach to.

iOS (Swift)
iOS (Swift)
import Branch
// login
Branch.getInstance().setIdentity("YOUR_USER_ID")
// logout
Branch.getInstance().logout()

Next, pass the attribution you receive from initialize method of Branch iOS SDK to Adapty.

iOS (Swift)
iOS (Swift)
import Branch
Branch.getInstance().initSession(launchOptions: launchOptions) { (data, error) in
if let data = data {
Adapty.updateAttribution(data, source: .branch)
}
}

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

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 you send to Adapty. These links should help to set up a user id for AppMetrica in your app.