Mixpanel

Mixpanel is an analytics platform that tracks user interactions with web and mobile applications and provides tools for targeted communication with them. Apptimize integrates with Mixpanel by automatically importing the following for iOS (Objective-C) and Android:

  • Events
  • User Super Properties

You are also able to use the Apptimize TestInfo API and our participation callbacks to forward your experiment data to MixPanel. Please see our data export guidelines for more information on how to set this up.

Automatic Event Importing

Apptimize detects Mixpanel Events and automatically imports them for use as Goals within your Apptimize Experiments. Apptimize does not support event properties or attributes, so please note that your events will only be imported per their labels.

Please note that if you are using Mixpanel’s Swift library, Automatic Importing in Apptimize is currently not supported.

iOS (Objective-C)
// In this example, Apptimize will auto-import "Plan selected" as an event but will
// not include the "Plan: Premium" properties into your Goals.
  Mixpanel *mixpanel = [Mixpanel sharedInstance];
  [mixpanel track:@"Plan selected" properties:@{ @"Plan": @"Premium" }];
iOS (Swift)
// Apptimize auto-import is not supported if you are using the Mixpanel Swift library
Android
// In this example, Apptimize will auto-import "Plan selected" as an event but will
// not include the "Plan: Premium" properties into your Goals.
  MixpanelAPI mixpanel = MixpanelAPI.getInstance(context, MIXPANEL_TOKEN);
  JSONObject props = new JSONObject();
  props.put("Plan", "Premium");
  mixpanel.track("Plan Selected", props);

In order for the import to take place, you will first need to trigger your events in a live experiment. We recommend running an A/A test in your app so that you can successfully have all existing events triggered, without affecting your end-users. Once experiment results are posted from your A/A test, you will see your Mixpanel Events listed as selectable goals for use in your future experiments.

Mixpanel Events that have been automatically imported from Mixpanel will appear with the prefix “mp:” in your Goals like so:

../_images/mixpanel-events.png

If you wish to have other specific events reflected in your Apptimize results, we recommend tracking manually with our Apptimize track method where the event occurs.

Automatic Super Properties Importing

Apptimize automatically imports Mixpanel Super Properties and allows you to Target with them in your Apptimize Experiments.

To have Super Properties be available for targeting, you simply need to fire an event or reach a view that has an associated Mixpanel Super Property in your app while your device is paired with the Apptimize Dashboard. To pair with the Dashboard, you will need to open our Preview Variants tool, which will mirror your active device. Once you trigger the event or navigate to the view that contains registerSuperProperties, Apptimize will detect it and automatically import the property for use within Apptimize.

Once you have successfully paired and fired your events, you will see your Super Properties as selectable options in the Target & Launch filter dropdown:

../_images/mixpanel-user-props.png

You will also be able to filter by your Super Properties in your experiment’s Results:

../_images/mixpanel-filter.png

Managing User Identity and Additional Properties

Apptimize does not currently automatically import your Mixpanel unique identifier; however, if you are using the Mixpanel identify method, we recommend integrating the latest version of the Apptimize SDK and using our User Identification methods where you use the identify method as well.

If there are any additional user profiles or properties you wish to use for targeting in Apptimize, feel free to set these up as Custom Attributes.

Exporting Experiment Data

Apptimize maintains a TestInfo API which can be used to export Apptimize experiment results data to Mixpanel. Here are links to the documentation of this API:

Calling TestInfo will return a map of the following info for all actively running tests:

  • Experiment Name
  • Variant Name
  • Experiment ID
  • Variant ID
  • Enrollment in Experiment Date
  • Start Experiment Date
  • User has Participated since Enrollment

This data provides comprehensive detail around the user’s experiment participation, and can be parsed and/or passed along to Mixpanel or any other third party as you please.

As an example, your output might look like:

testinfo: {
 "New Experiment" = "Variant \"original\" (157581) of test \"New Experiment\" (11452),
 enrolled since 2015-06-06 01:15:56 +0000 (started on 2015-06-06 00:47:15 +0000)";

For additional details and sample implementation, please see our Data Export documentation page.

Mixpanel References