Why do some Distinct IDs in my Live View appear as emails and others as a hash of random letters and numbers?

Mixpanel reports rely on consistent handling of this distinct_id property in order to calculate unique users. If you’re seeing values in different formats populating the Distinct ID column in Live View, this could be an indication that the distinct_id of your users is changing over time or not being handled consistently.

Why is this a problem?

If you change a user’s distinct_id across events and then use those events in a funnel report, the funnel will break (i.e., you’ll see a high drop off rate between steps in your funnel). This happens because Mixpanel won't be able to associate the old ID with the new and will view users with different distinct_ids as different users. In order to see accurate funnel and retention data, you’ll need to be handling user identity consistently.

How does a random distinct_id get assigned, and how does that change to something like an email or username?

When a user first arrives on your site, the Mixpanel Javascript library will assign a random distinct_id by default. Prior to registration, all of the user's anonymous events will be triggered under this default Mixpanel-assigned distinct_id.

From there, you have the option of assigning users new distinct_ids, or mapping your own custom IDs (e.g. the user's email address) to the original user distinct_ids.

How do I fix it?

Generally when the Distinct ID column in Live View has values in different formats, the issue is that mixpanel.identify() is being called on the user’s email address at some point in the registration flow, which actually changes the ID being sent with future events.

Instead, if you'd like to link the user's anonymous activity to their activity once they're a customer, you can use the alias method to link your custom ID to the anonymous, Mixpanel-assigned distinct_id assigned by our library, for example:

mixpanel.alias("marissa@mixpanel.com")

When the alias method has been implemented properly, the user's distinct_id does not actually change and post registration events are still fired with the original distinct_id, which indicates that everything is functioning as it should! Once the alias is established, you can use the identify method on your custom ID, and Mixpanel will look up this value in an alias look-up table and know to map the user's events to the user's original distinct_id.

Additional resources on identity management

Video: Using alias and identify methods

Javascript integration guide for managing user identity

Handling user identity with the Mixpanel Javascript library

Assigning your own unique IDs to users

Blog post on maintaining user identity