Send Your Data


If you have already created your tracking plan and know what you want to track, the next step is to start implementing. However, if you have not done so, it's good to catch-up reading on Plan first.

  • Send Your Data - walkthrough the different ways you can send data into Mixpanel and guide you on choosing the most suitable approach.
  • QA and Data Audit - covers QA (Quality Assurance testing) and auditing of your implementation before you send live data into your Mixpanel production project.
  • Establish Governance - guide you in establishing good data governance practices beyond the initial onboarding to you keep your implementation clean, concise and consistent.

Send Your Data: Implement Your Tracking Plan

Mixpanel provides a variety of methods to send your data. Depending on your existing infrastructure, availability of development team resources, and the type of data you plan to collect, this section will help guide you in selecting the right ingestion method to implement your tracking plan.

Choosing an Ingestion Method

When it comes to deciding which ingestion approach to use, there are no fixed rules; and each approach comes with its own advantages and limitations.

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

  • Source of Truth: Does your company have data that is considered the "source of truth" when it comes to business reporting?
  • Data Tools: Do you use any existing Event Streaming, Customer Data Platform (CDP), or Reverse ETL tools?
  • Clickstream Data: Are you already collecting any clickstream data, and if not, do you have the ability to collect them?
  • Development Team: What available development resources does your company have to implement the ingestion approaches?

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


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.

Backfilling Historical Data

If you've previously collected data in other systems and wish to analyze it in Mixpanel, you have the option to backfill it into Mixpanel. We recommend backfilling a year’s worth (or less) of historical data.

Given that different systems may adopt different data models, it's essential to understand Mixpanel Data Model and identify any required data transformations before backfilling the data into Mixpanel. For detailed guidance on migrating data from platforms such as Amplitude and Google Analytics, refer to our guide here.

If your historical data is stored in a data warehouse, you can import it into Mixpanel through Mixpanel Warehouse Connector.

Alternatively, if your historical data is stored in a system without Mixpanel native support for migration, you can still import it into Mixpanel via Mixpanel APIs. Learn more about this option here.

Was this page useful?