Here are the key considerations that would guide you along in choosing the right approach as we go through each one:

It is important to choose an ingestion method that fits your current needs and available resources, at the same time, factoring for some flexibility in scaling your approach as your product evolves. Most of our customers tend to start with the simplest approach of using our SDKs and slowly migrate to more complex architectures like CDPs or Reverse ETLs.

This table provides a quick overview of the different approaches

image

SDKs: Client-Side vs Proxy vs Server-Side

Mixpanel supports a wide range of Client-Side and Server-Side SDKs.

In general, we recommend utilizing Client-Side SDKs if you have limited development resources, no existing data collection infrastructure, or have no reliable method to track clickstream data. Whilst they might be initially the easiest to set up, ad-blockers can impact your ability to track data accurately. Furthermore, it can be difficult to keep metrics consistent when utilizing client-side SDKs across multiple platforms such as across both a website and mobile app.


Alternatively, you may want to consider using Server-Side SDKs, which are not susceptible to ad blockers, and provide more consistency when tracking users across platforms. It does require some custom code to track your anonymous (non-logged in) users.


As an in-between, consider client-side tracking via a proxy. This will help reduce the likelihood of ad-blockers impacting your tracking (opens in a new tab), while allowing you to automatically capture certain default client-side properties. For more details, please see this article on how to set up a proxy.

A full list of Mixpanel SDKs can be found in our documentation.

Client Data Platforms (CDP)

If you currently utitilise a Customer Data Platform (eg mParticle, Rudderstack, Segment), you can also use this to send your data to Mixpanel. If you're switching to Mixpanel from another analytics tool, CDPs will also allow you to easily migrate your historical data into Mixpanel.


Please refer to the documentation by your respective CDP provider for more information on how to connect your data to Mixpanel.

Reverse ETL: Data Warehouse

If your data is already stored in a data warehouse, our Warehouse Sync allows you to import events, user profiles, and group profiles into your Mixpanel project via recurring syncs to ensure that your data in Mixpanel matches your trusted data source.


Another option to send data from your data warehouse to Mixpanel would be to utilize a Reverse ETL tool (eg Census, Hightouch). These third-party tools will allow you to make any necessary transformations to the data and set up sync schedules to import data from your warehouse to Mixpanel. Please refer to the respective documentation of whichever reverse ETL tool your team chooses to utilize.

Event Streaming / Cloud Ingestion

If your company already has an existing event stream pipeline, you could use it to send data into Mixpanel as you receive it. You can refer to our documentation for examples on how to setup a pipeline from Amazon S3, Google Cloud Storage, Google Pubsub.


Direct API Ingestion

If you would like to send data directly to Mixpanel servers without the need of any sort of intermediary layer, you can utilize our Ingestion API to send in events (opens in a new tab). and add / update / delete existing user profiles (opens in a new tab).


Identity Management Best Practices

Note: This section explains identity management using the Simplified Identity Management setting. If you are unsure, do refer to the Setup section to check your organization and project settings.

As users navigate through your website or application, it is common for them to move between anonymous (logged out) to identified (logged in) states. Users can also use multiple devices or platforms that you may provide for your product. As such, it is crucial that you ensure correct identity management throughout in order to accurately track your users.


If you're utilizing our Mixpanel SDKs, especially Client-Side, you should carefully manage all the identifiers belonging to a user correctly to ensure that all of their pre-auth and post-auth activity is tracked as one user.

In the following video, we walkthrough how you should manage identifying your users using the Simplified Identity Management method.


Do note that the mixpanel.identify() call does not create a User Profile in Mixpanel. The people.set() method is the required call to set user properties on a user profile. However, the people.set() call also requires an identify() call at some point in the same session, so that Mixpanel knows which User ID to associate the profile properties to. If there is no identify() call in a user’s session where people.set() is called, we store the user profile properties locally until that user hits an identify() call.

For more detailed user flows and FAQs refer to our documentation on Identifying Users.

Tracking StrategyQA and Data Audit

Was this page useful?