Integrations¶
Analytic Integrations¶
Apptimize can automatically capture event and attribute data that you have already instrumented with analytic frameworks. When you enable one of our analytics integrations, our SDK makes a copy of the data you are sending to that provider and sends the copy to Apptimize. These integrations allow you to analyze the impact of A/B experiments without any additional analytic setup work.
The analytic integrations will be off by default for all new customers. To enable these integrations for your app, go to Manage -> Integrations.
Note: Remote management of these integrations is supported as of Android SDK 3.6.0 and iOS SDK 3.3.0. For previous SDK versions, they are controlled only by SDK setup parameters. If the integrations have been disabled at the SDK level, data will not be sent to Apptimize, regardless of your settings on the Manage Integrations page.
A summary of currently supported integrations is listed below. If you use another analytics provider that we don’t support right now, please contact us.
Integration |
Import Events |
Import User Info |
Export |
Detail |
---|---|---|---|---|
Yes |
|
|||
Yes |
Yes |
|||
Yes |
Yes |
|
||
Yes |
Yes |
|
||
Yes |
|
|||
Yes |
Yes |
Yes |
|
|
Yes |
Yes |
Yes |
|
Important
Mixpanel users can be associated with Apptimize users manually by setting the $apptimize_user_id in Mixpanel with the Apptimize.getPartnerID method available in Apptimize. Do this if ThirdPartyImporting is disabled or when using the Mixpanel Swift SDK, which does not support ThirdPartyImporting.
For more information, see Matching Users between Apptimize and Mixpanel.
Manual Integration: you can manually move the data between SDKs by:
programatically sending Apptimize events and values
programatically setting Apptimize custom attributes
programatically exporting participation data
Integration Kits¶
We also support using Apptimize through integration kits. These are packages that you install using CocoaPods or Maven to add support for a particular third party integration.
When using an integration kit, the kit will handle import and initialization of the Apptimize SDK and will control whether the SDK should be exporting or importing data automatically from other third-party services. For example, mParticle disables all event exporting and importing within the Apptimize SDK to ensure that all data flows through mParticle and is not bypassed from the Apptimize SDK. Refer to the third-party integration kit documentation to determine exactly what the behavior of that kit is.
Integration |
Import Events |
Import User Info |
Export |
Details |
---|---|---|---|---|
Segment.io |
Yes |
Yes |
Yes |
|
mParticle |
Yes |
Yes |
Yes |
|
Important
mParticle custom attribute should only be strings
The underlying mParticle events API only accepts three types of values: strings, lists, and the JSON null sentinel in the case of tags. The Android SDK provides several helper methods that let you pass in non-strings - but these values will always be converted to strings.
For more information, see https://docs.mparticle.com/developers/sdk/android/users/#set-user-attributes
Customer Engagement Integrations¶
Our integrations with customer engagement products allow Apptimize experiments to be coordinated with relevant messaging campaigns. These integrations send user-level data related to experiment participation to the provider which can then be used for audience targeting.
Integration |
Integration Type |
Import User Info |
Export |
Details |
---|---|---|---|---|
Opt-in |
User ID Only |
Yes |
|
|
Sample Code |
No |
Yes |
|
Disable Integrations¶
Importing and exporting integrations can be disabled at the SDK level. If the integrations have been disabled at the SDK level, data will not be sent to Apptimize, regardless of your settings on the Manage Integrations page.
By default, both importing and exporting integrations are enabled at the SDK level. To turn off importing and exporting:
// If you're using the zero line setup (ApptimizeAppKey set in plist)
// Set following Keys to false in Info.plist
ApptimizeEnableThirdPartyEventExporting
ApptimizeEnableThirdPartyEventImporting
// If you're using the in code setup (Apptimize startApptimizeWithApplicationKey)
// Add the following ApptimizeOptions to setup
NSString *apptimizeAppKey = @"[YOUR_APP_KEY]";
NSDictionary *apptimizeOptions = @{ApptimizeEnableThirdPartyEventImportingOption : @NO,
ApptimizeEnableThirdPartyEventExportingOption : @NO};
[Apptimize startApptimizeWithApplicationKey:apptimizeAppKey options:apptimizeOptions];
// If you're using the zero line setup (ApptimizeAppKey set in plist)
// Set following Keys to false in Info.plist
ApptimizeEnableThirdPartyEventExporting
ApptimizeEnableThirdPartyEventImporting
// If you're using the in code setup (Apptimize startApptimizeWithApplicationKey)
// Add the following ApptimizeOptions to setup
let apptimizeAppKey = "[YOUR_APP_KEY]"
let apptimizeOptions = [ApptimizeEnableThirdPartyEventImportingOption : false,
ApptimizeEnableThirdPartyEventExportingOption : false]
Apptimize.start(withApplicationKey: apptimizeAppKey, options: apptimizeOptions)
String apptimizeAppKey = "YOUR_APP_KEY";
ApptimizeOptions apptimizeOptions = new ApptimizeOptions();
apptimizeOptions.setThirdPartyEventExportingEnabled(false);
apptimizeOptions.setThirdPartyEventImportingEnabled(false);
Apptimize.setup(context, apptimizeAppKey, apptimizeOptions);
val apptimizeAppKey = "YOUR_APP_KEY"
apptimizeOptions = ApptimizeOptions()
apptimizeOptions.setThirdPartyEventExportingEnabled(false)
apptimizeOptions.setThirdPartyEventImportingEnabled(false)
Apptimize.setup(context, apptimizeAppKey, apptimizeOptions)
- 1(1,2)
Apptimize will import the corresponding double value included for Results calculations
- 2
Note that revenueV2 event names are tracked but the corresponding double value is not available within Apptimize
- 3
Note that if logError and logEvent are used in timing methods, they will not be automatically imported to Apptimize