Event Properties and Super Properties are associated with specific Events (i.e., they describe those Events or the user that did the Event at that time). However, Profile Properties give you detail about a certain user overall. In other words, Profile Properties describe your users as they exist in this moment. Profile Properties includes both user profiles and group profiles.
For example, while an Event Property or Super Property tells you whether a user had a paid or free account over time when a user did specific actions, a Profile Property would simply show you currently if they are paid or free.
Because of this slight nuance between Event/Super and Profile Properties, you may find it helpful to track some of the same things both as Event/Super properties and as Profile Properties.
In general, Property values that may change over time and whose change is valuable data may be best tracked as both a Profile Property and a Super Property.
Reserved Properties for User Profiles
Mixpanel reserves certain property names for special use cases. These reserved properties are different from default collected properties, as they are not collected by default.
- Avatar ($avatar) - Set this property to a url resource of a gif, jpg, jpeg, or png to update the profile picture in a profile. This property will override a profile picture pulled from Gravatar.
- Email ($email) - The user's email address. You must set this property if you want to send users email from Mixpanel.
- Phone ($phone) - The user's phone number. You must set this property if you want to send users SMS from Mixpanel. Note that a '+' needs to precede phone numbers. This is especially useful for international numbers. If the user does not import a phone number with the '+' sign in front of the number, the country code will be prefixed to the front of the number based on the $country_code property, resulting in a phone number with two country codes.
- $distinct_id - The user's distinct_id. This property value should be identical to the distinct_id property attached to events so that you can connect events to user profiles.
- $ios_devices - List of user's Apple Push Notification service device tokens for iOS push. Our iOS client library has methods to manage this property for you.
- $android_devices - List of user's Google Cloud Messaging registration IDs for Android push. Our Android client library has methods to manage this property for you.
- $first_name, $last_name, $name - User's first and last names, as well as a general name. These are primarily useful because we will use them, if available, in a few spots in our reports.
- $transactions - A list with specially formatted JSON objects, one for each purchase or transaction associated with a specific profile. For more information about $transactions, see Tracking revenue in Mixpanel HTTP Tracking API.
- Created ($created) - The time that the profile was created.
- City ($city) - The city of the event sender, parsed from IP.
- Region ($region) - The region (state or province) of the event sender, parsed from IP.
- Country ($country_code) - The country of the event sender, parsed from IP.
- Timezone - ($timezone) - The timezone of the event sender, parsed from IP. If set, messages can be scheduled to be sent based on a user's timezone.
- Unsubscribed - ($unsubscribed) - If this property is set to any value, a user will be unsubscribed from Mixpanel email messages.
For a list of default properties collected by Mixpanel, see this article.
A list property contains a list or array of several properties contained in one value.
Use list properties whenever you have more than one value for a given property. Here are a few examples of list properties:
- All the Items purchased in a “Checkout Completed” event.
- Multiple artists for a “Song Played” event.
- Experiment groupings for A/B testing.
- Genres of music in a listener’s preferences.
The list type properties limit is 2mb.
Property Limits for User Profile Properties
Mixpanel User Profiles can contain up to 2,000 properties each. Attempts to add more than 2,000 properties will fail. You can remove user profile properties using the $unset engage operation if you find yourself close to the 2,000 per profile limit.
The following limits on field size apply when inputting fields for properties in Mixpanel:
- 255 bytes for string properties
- 255 characters for each item in list properties