Skip to main content

Mixpanel Cohorts

Mixpanel is a leading user-behavior analysis solution for product teams.

The Kameleoon Mixpanel Cohorts integration automatically exports Mixpanel cohort data into Kameleoon, where it can be used to deliver personalized experiences and run highly targeted experiments, driving more impactful and data-driven optimizations.

Key benefits

  • Seamless cohort sync: Import user segments from Mixpanel into Kameleoon effortlessly.
  • Personalized targeting: Deliver tailored experiences based on user behavior.
  • Enhanced experimentation: Run precise A/B tests on specific audience groups.
  • Real-time updates: Keep user segments up-to-date automatically.

Use cases

Optimize experiments with behavioral targeting

Sync Mixpanel cohorts with Kameleoon to test variations on users based on their real-time behavior.

For example, run an A/B test on users who have viewed a product page multiple times, but haven't added anything to their cart. Test different incentives (for example, a limited-time offer versus social proof messaging) to determine which strategy drives the most conversions.

Analyze results with behavioral segmentation

Break down Kameleoon campaigns using Mixpanel cohorts for deeper insights.

For example, if a test or personalization campaign shows a drop in conversions, analyze key Mixpanel segments (for example, high-value customers, churn-prone users) to identify patterns. This analysis helps you understand which experiences resonate best with different user groups and refine your strategy accordingly.

Personalize experiences using Mixpanel's rich user insights

Leverage Mixpanel's deep user data—such as behavior, lifecycle stage, or purchase history—to create highly relevant experiences in Kameleoon.

For example, identify frequent buyers, users who recently downgraded their subscription, or those who engage with specific content. Then, tailor messaging, promotions, or feature recommendations in Kameleoon to maximize engagement and conversions.

Activate the Kameleoon integration in Mixpanel

You must activate the Kameleoon integration in your Mixpanel account to enable cohort synchronization. You can refer to this Mixpanel article.

note

You must add a Kameleoon API key. Ask your Kameleoon Customer Success Manager for it.

Only identified user profiles get exported to Kameleoon (no anonymous users). If you're using Mixpanel's identity merge feature and, as Mixpanel's distinct_id for a given user may change, you should set $kameleoon_mapping_id as an additional user property that contains the Kameleoon visitor code or your internal user ID if you use Kameleoon's SDKs. Mixpanel will automatically add the kameleoon_mapping_id in each cohort export it sends to Kameleoon.

You can set the kameleoon_mapping_id using the Mixpanel people.set method, right after the identify method is executed. Here is an example of code you can use with the Mixpanel JavaScript API:

mixpanel.people.set({
'$kameleoon_mapping_id': Kameleoon.API.Visitor.code
});

Underneath, Mixpanel uses Kameleoon's Data API map endpoint to send the cohorts to Kameleoon.

Use Mixpanel cohorts in your Kameleoon campaigns

Create a custom data to target Mixpanel cohorts in your experiments

To target Mixpanel cohorts, you must set up a custom data within Kameleoon to retrieve the cohort names for each user. For more information on creating custom data, refer to Create custom data.

Name your custom data Mixpanel cohorts and choose the Custom JavaScript code acquisition method if you're running a web experiment or the Kameleoon SDK acquisition method if you're running a server-side experiment or using a feature flag.

The custom data should be set to the list of and string types. The scope may be set to Page, depending on the scope you defined in Mixpanel; when set to Page whether a user belongs to a certain Mixpanel cohort is reevaluated on every page load.

External segment sync for web experiments

If you use the $kameleoon_mapping_id property, use the code below in the custom data acquisition method:

Kameleoon.API.Data.retrieveDataFromRemoteSource(Kameleoon.API.Visitor.code, function (data) {
if (data?.mixpanel_cohorts) {
data.mixpanel_cohorts.map(function (segment) {
if (segment?.mixpanel_cohort_id) {
Kameleoon.API.Data.setCustomData("Mixpanel cohorts", segment.mixpanel_cohort_id);
}
});
}
});
return { "value": null}

If you'd rather use the Mixpanel default distinct_id method to set your own user ID, use this code:

if (!window.mixpanel?.get_distinct_id) return null;
let id = mixpanel.get_distinct_id();
Kameleoon.API.Data.retrieveDataFromRemoteSource(id, function (data) {
if (data?.mixpanel_cohorts) {
data.mixpanel_cohorts.map(function (segment) {
if (segment?.mixpanel_cohort_id) {
Kameleoon.API.Data.setCustomData("Mixpanel cohorts", segment.mixpanel_cohort_id);
}
});
}
});
return { "value": null}

External segment sync for server-side

To use Mixpanel cohorts in server-side experiments or feature flags, consult the guidelines outlined in the documentation for each respective SDK.

Our SDKs use the getRemoteData() method, which is accessible across all our SDKs. This method fetches data stored by Mixpanel on Kameleoon's servers and makes it accessible within your backend code.

var xhr = new XMLHttpRequest();
xhr.open("GET", 'https://customers.kameleoon.com/mixpanel/cohorts/ADD_YOUR_PROJECT_ID_HERE', false);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var mixPanelSegments = [];
xhr.onreadystatechange = function() { // Call a function when the state changes.
if (this.readyState === XMLHttpRequest.DONE && this.status === 200)
{
var mixpanel = JSON.parse(xhr.response);
mixpanel.forEach(function (segment) {
if (segment.id && segment.name !== 'undefined')
{
mixPanelSegments.push({value: segment.id, label: segment.name});
}
});
}
}
xhr.send();
return mixPanelSegments;

Use Mixpanel cohort names in a Kameleoon segment

After you've set up the custom data for the Mixpanel cohort names, you can build segments within the Kameleoon segment builder by choosing the custom data and selecting is among the values, which will display a list of every Mixpanel cohort. Selecting a cohort will enable targeting in personalizations and experiments.