General
What does Mixpanel do?
What does Mixpanel do?
Can I demo Mixpanel?
Can I demo Mixpanel?
How much does it cost to use Mixpanel?
How much does it cost to use Mixpanel?
Sending Data to Mixpanel
Why can’t I see any data in my Mixpanel project?
Why can’t I see any data in my Mixpanel project?
- Incorrect Project Token - Using the wrong project token in your initialization code will lead to your tracked data not arriving to your project. Always verify that the token matches the token shown in your project settings.
- Mismatched Data Residency - If your Mixpanel project data residency setting does not match the API endpoint you are sending data to, your data will not be ingested. If your project data residency is set to EU or India, make sure to route your data to the correct API server URL in your initialization code. Learn more about EU Residency and India Residency.
- Implementation Issues - Implementation errors can prevent Mixpanel SDK methods from triggering as expected. To help identify and resolve these issues during development, enable debug mode in your SDK. This will provide logs of the Mixpanel requests being triggered, along with the associated payloads.
What methods are available for importing data into Mixpanel?
What methods are available for importing data into Mixpanel?
How does ad-blockers affect Mixpanel tracking?
How does ad-blockers affect Mixpanel tracking?
How do I exclude bots from my tracking?
How do I exclude bots from my tracking?
$ignore: true to exclude those events at ingestion.Learn more about managing bot traffic.Why are my user profiles all set to the same location?
Why are my user profiles all set to the same location?
- Pass the actual client IP using the
$ipin your payload, - Manually set geolocation properties like
$city,$region, and$country_code, or - Set
$ipto0to prevent Mixpanel from updating the geolocation entirely.
How do I override the default geolocation set by Mixpanel when sending data from a server?
How do I override the default geolocation set by Mixpanel when sending data from a server?
- Pass the actual client IP using the
$ipin your payload - Manually set geolocation properties such as
$city,$region, and$country_code - Specify the exact coordinates by setting the
$latitudeand$longitudeproperties in your payload
How do I track downloads and installs from Apple App Store and Google Play Store?
How do I track downloads and installs from Apple App Store and Google Play Store?
How do I track first-touch UTM tags?
How do I track first-touch UTM tags?
How do I track last-touch UTM tags?
How do I track last-touch UTM tags?
Why do I see Session Start and Session End events in my project?
Why do I see Session Start and Session End events in my project?
What are super properties?
What are super properties?
How can I edit the event data inside my project?
How can I edit the event data inside my project?
How can I send data from my data warehouse to Mixpanel?
How can I send data from my data warehouse to Mixpanel?
How can I do a one-time import of historic events? How much does it cost?
How can I do a one-time import of historic events? How much does it cost?
Why do I see CORS errors in the console when Mixpanel requests in my website?
Why do I see CORS errors in the console when Mixpanel requests in my website?
Access-Control-Allow-Origin) to allow your domain to access the resource.Mixpanel requires you to send cross-origin HTTP requests (requests sent to a different server than the one hosting your web application), so you need to setup your environment to allow this. Use browser developer tools to inspect the failed request and see which headers are missing or mismatched.Learn more about CORS errors.How do we send data to Mixpanel?
How do we send data to Mixpanel?
Can Mixpanel integrate with our current data model or database?
Can Mixpanel integrate with our current data model or database?
How do we handle sensitive or private data?
How do we handle sensitive or private data?
What is the best way to send both client-side and server-side events?
What is the best way to send both client-side and server-side events?
- Track critical business events (such as purchases, sign-ups, and revenue events) on the server side. This ensures greater accuracy and reliability, as server-side events are not impacted by ad blockers, network interruptions, or client-side manipulation. Use Mixpanel’s server-side SDKs or direct API ingestion for this purpose.
- Track user interactions and UI events (such as button clicks and page views) on the client side. These events reflect real-time user behavior that only occurs in the browser or app and are best captured using Mixpanel’s client-side SDKs.
How do we ensure the data is accurate and implementation is correct?
How do we ensure the data is accurate and implementation is correct?
- Use Separate Development and Production Projects: Always set up at least two Mixpanel projects, one for development and one for production. Implement and test all tracking in the development project first. This prevents test or incorrect data from polluting your production analytics. Learn more about setting up developer environments.
- Validate Events and Properties: Use Mixpanel’s Events view to confirm that events are arriving as expected. Manually trigger events and search for them using user-level identifiers (like
distinct_id). Inspect event properties for correctness, data type, and naming conventions (Mixpanel is case sensitive). Learn more about debugging your implementation. - Iterate and Update Tracking Plan: After each product update or when adding new events, update your tracking plan, get sign-off from a data governance owner, and repeat the QA process in the development project before deploying to production. Learn more about creating a tracking plan and establishing data standards.
How do I anonymize an actual known user?
How do I anonymize an actual known user?
.identify() method in the SDKs. This way, the user cannot be traced back to their real identity, but you can still analyze their behavior in aggregate. The hash should only be reversible by you, not by Mixpanel or anyone else.To anonymize a user who has already been tracked, first export all data associated with that user. Then, delete the user’s data using Mixpanel’s GDPR-compliant deletion methods. After reviewing the exported data, remove any personally identifiable information (PII), and reimport the sanitized data as needed once the deletion has been fully processed.Learn more about anonymizing users and submitting GDPR requests.Identity Management in Mixpanel
What is a distinct_id?
What is a distinct_id?
How is distinct_id generated?
How is distinct_id generated?
distinct_id for anonymous users. When a user registers or logs in, you can assign a known user ID (such as a database ID) by calling the identify method in the SDK. The ID is then stored in the cookie or local storage for persistence.On the server side, you are responsible for generating both anonymous and known user IDs, as well as ensuring their consistency and persistence across events.Learn more about identifying users.Where is distinct_id stored?
Where is distinct_id stored?
distinct_id is stored in the end user’s device using cookies or local storage. If the user clears this data (or you call reset()), the SDK generates a new distinct_id.On the server side, your server is responsible for generating, maintaining, and persisting the distinct_id across events to ensure consistent user tracking.Learn more about identifying users.What is the best practice for handling user identity in a client-side implementation?
What is the best practice for handling user identity in a client-side implementation?
- Call
identify()during both registration and login, using a consistent user ID in each case to ensure proper user identification. - Call
reset()on logout to clear cookies or local storage and generate a new ID. This prevents unintended merging of data from multiple users sharing the same device. - Include your user ID as both a super property and a user property. Doing so makes it easier to query and export data.
What is the best practice for handling user identity in a server-side implementation?
What is the best practice for handling user identity in a server-side implementation?
$device_id event property to this Anonymous ID. When the user is authenticated and you know their User ID, include both $user_id (your internal user ID) and $device_id (the original Anonymous ID) in all events sent from the server. Mixpanel will merge a pair of $user_id and $device_id the first time they are received together on an event.If your project is using the Original API: For anonymous events, set the distinct_id event property to this Anonymous ID. When the user is authenticated and you know their User ID, send a $identify event containing both the anonymous ID and the user ID to merge them together.Learn more about the difference between the two identity management APIs.How do I setup cross-domain tracking with Mixpanel?(Original API)
How do I setup cross-domain tracking with Mixpanel?(Original API)
distinct_id from one domain to the next domain, typically via URL parameters. Then call identify() on the next domain using the distinct_id from the previous domain. For example:On the First Domain:- Retrieve the current user’s
distinct_idusing the Mixpanel SDK. - When redirecting or linking to the second domain, append the
distinct_idas a URL parameter.
- Extract the
distinct_idfrom the URL parameters. - Use
mixpanel.identify(distinctId)before sending any events.
How do I setup cross-subdomain tracking with Mixpanel?
How do I setup cross-subdomain tracking with Mixpanel?
How do I setup consistent user tracking across multiple platforms, such as a website and an app?
How do I setup consistent user tracking across multiple platforms, such as a website and an app?
- Call
identify(<user_id>)during user registration and sign-in to associate activity with the correct user. - Call
reset()upon user logout to clear the current session and prevent data from carrying over. - Use the same
user_idfor each individual user across all platforms to maintain a unified profile.
Why is the distinct_id shown in Mixpanel different from the ID I used to identify the user?
Why is the distinct_id shown in Mixpanel different from the ID I used to identify the user?
Why do I see data from 2 different users under a single Mixpanel profile?
Why do I see data from 2 different users under a single Mixpanel profile?
reset() when users log out on shared devices.If multiple users use the same device and you do not call reset() when a user logs out, the next user who logs in will inherit the previous user’s distinct_id. When you then call identify() with the new user’s ID, Mixpanel merges the previous and new IDs into a single identity cluster. This causes events from both users to appear under the same profile.Learn more about identifying users.If your backend or frontend sends events for different users but uses the same distinct_id, Mixpanel will attribute all those events to a single user profile.Why do I see 2 duplicated Mixpanel user profiles sharing the same email value?
Why do I see 2 duplicated Mixpanel user profiles sharing the same email value?
distinct_id value. If the same user receives two different IDs, Mixpanel treats them as separate users, even if they share other properties.For instance, when you send data from multiple sources—such as web, mobile, or third-party tools like Segment or Shopify—and each source assigns a different identifier (e.g., email, user ID, or device ID), Mixpanel generates distinct user profiles for each ID, regardless of matching properties like email.To resolve this issue, review all data sources and ensure that each user is consistently assigned a single unifying user ID during identification across every platform.What dev lift is involved when migrating from Legacy ID merge to Original or Simplified?
What dev lift is involved when migrating from Legacy ID merge to Original or Simplified?
alias at user registration and identify at login using supported SDKs). In this case, Mixpanel can enable the migration for you, and no additional development work is required on your end. To proceed, contact the Support team for assistance with transitioning from the legacy API to the Original ID Merge API.Migrating to Simplified ID Merge requires significantly more effort. This path involves setting up a new project, updating your codebase, migrating data, and releasing app updates. The process is manual, and your engineering team will need to manage each step directly.Both ID Merge APIs offer substantial improvements over the legacy implementation, and we recommend that most projects migrate to one of these updated options.You can view a comparison of the two ID Merge APIs. For further guidance, please reach out to the support team.Are there limitations with using Simplified ID vs Original ID merge?
Are there limitations with using Simplified ID vs Original ID merge?
What happens if a user clears cookies or reinstalls the app?
What happens if a user clears cookies or reinstalls the app?
Is there a limit to the number of identities that can be merged?
Is there a limit to the number of identities that can be merged?
$device_id under one identity cluster; however, each cluster can contain only one $user_id.You can view a comparison of the two ID Merge APIs.How does Mixpanel handle merging IDs and what are the best practices?
How does Mixpanel handle merging IDs and what are the best practices?
identify() at registration and sign in using a consistent $user_id, and call reset() at logout.For server-side implementation, your server is responsible for generating IDs for your users and maintaining ID persistence across events.Learn more about identifying users.How does Mixpanel ensure data privacy and compliance?
How does Mixpanel ensure data privacy and compliance?
.identify() method in our SDKs.Learn more about protecting user data.How does Mixpanel attribute campaign data when identities are set or changed?
How does Mixpanel attribute campaign data when identities are set or changed?
Building Mixpanel Reports and Analyses
How do I get started and what should I analyze?
How do I get started and what should I analyze?
What are the best practices for setting up trusted boards for users to view and use?
What are the best practices for setting up trusted boards for users to view and use?
How do I know my report is “correct”?
How do I know my report is “correct”?
What are other companies in my industry tracking and creating reports for in Mixpanel?
What are other companies in my industry tracking and creating reports for in Mixpanel?
How can I standardize what events my users use to create reports?
How can I standardize what events my users use to create reports?
How do I edit and duplicate reports?
How do I edit and duplicate reports?
How do I filter reports?
How do I filter reports?
How can I get automated insights from alerts and setup anomaly detection?
How can I get automated insights from alerts and setup anomaly detection?
What are the common analysis types done in Mixpanel?
What are the common analysis types done in Mixpanel?
- Insights: Visualize trends and compositions within your data
- Funnels: Measure conversions through a series of events
- Retention: Measure engagement over time
- Flows: See frequent paths taken by users to or from any event
How can I collaborate and share within Mixpanel?
How can I collaborate and share within Mixpanel?
What is the difference between a Metric and Behavior?
What is the difference between a Metric and Behavior?
Exporting Data from Mixpanel
How do data pipeline exports work? How is the data structured and what can I expect?
How do data pipeline exports work? How is the data structured and what can I expect?
How can I export my data from Mixpanel?
How can I export my data from Mixpanel?
Can I automate data exports (e.g., schedule CSV delivery or direct warehouse sync)?
Can I automate data exports (e.g., schedule CSV delivery or direct warehouse sync)?
Is there an additional cost for exporting data?
Is there an additional cost for exporting data?
Can I export specific data, such as cohorts, user lists, or raw events?
Can I export specific data, such as cohorts, user lists, or raw events?
What if my data warehouse is not natively supported?
What if my data warehouse is not natively supported?
Manage your Mixpanel Projects and Teammates
How should we structure our Mixpanel projects?
How should we structure our Mixpanel projects?
How do we keep things organized within a Mixpanel project for multiple teams?
How do we keep things organized within a Mixpanel project for multiple teams?
Who should own and maintain Mixpanel projects?
Who should own and maintain Mixpanel projects?
How do we onboard new teammates and empower them to use Mixpanel?
How do we onboard new teammates and empower them to use Mixpanel?
How can we audit or review how our team is using Mixpanel?
How can we audit or review how our team is using Mixpanel?
How do we support and decentralize Mixpanel expertise within our organization?
How do we support and decentralize Mixpanel expertise within our organization?
Protecting User Data and Privacy
How can users opt out of tracking?
How can users opt out of tracking?
Where can I learn more about user privacy regulations and opting users out of tracking?
Where can I learn more about user privacy regulations and opting users out of tracking?
How can we anonymize users and avoid sending PII?
How can we anonymize users and avoid sending PII?
How do we disable geolocation or prevent IP address usage?
How do we disable geolocation or prevent IP address usage?
How do we handle the accidental sending of PII?
How do we handle the accidental sending of PII?