Property Reference
Properties are attributes that help you define the specifics of an Event, a User, or a Group. Mixpanel has many property types defined in its Data Model.
Property Types
| Property Type | Description |
|---|
| Event Properties | Event Properties describe the events that are tracked within your product. |
| Super Properties | Super Properties are a logical term for global Event Properties that, after registration, are saved into the end user’s device, and appended to every event from that device until persistence is cleared. This logical term is mostly applicable to our client-side libraries. |
| User Profile Properties | User Profile Properties describe your users (they typically store current demographic information). User profiles are joined to events based on Distinct ID. |
| Group Profile Properties | Group Profile Properties describe group level information (similar to User Profiles Properties at user level). With Mixpanel’s Group Analytics, multiple users can be grouped and behavioral data analyzed at a customized group level (such as company, account). Group profiles are joined to events on your chosen Group Key. |
| Lookup Tables | Lookup Tables allow you to dynamically extend additional properties mapped to an existing Event or User Property. For example, if you create a lookup table for “Songs” (that contains additional properties like hash_tags, top_10, all_time_favorite) and map it to an event property song_id; you can use these additional properties when doing filtering or breakdowns for events that has song_id as an event property. |
| Default Properties | Default Properties (for Events and User Profiles) are collected and populated with values automatically in Mixpanel. This can happen upon data ingestion or when using certain Mixpanel client-side SDKs. Typically, they have a dollar sign ($) or “mp_” as prefix to distinguish them from normal properties. |
| Reserved Properties | Mixpanel reserves certain property names (for Events and User Profiles) for special use cases, and these may or may not be automatically populated with values. The purpose of such Reserved Properties are for processing (ie event time stamping) or for specific system features (eg: cohort exports). Examples: time, $email, $phone, $name, $created. |
Supported Data Types
Mixpanel supports five data types for properties: String, Numeric, Boolean, Date and List. By choosing the most suitable data type for your properties, you’re able to apply a set of operators that are most relevant to your properties in Mixpanel reports, giving you richer insights into your data.
String
- Alphanumeric value e.g. Plan Type = “Free”, Artist Name = “Bruno Mars”.
- String properties have a limit of 255 bytes.
- Different character encodings require different number of bytes to represent a single character.
- Mixpanel will treat any property value that does not match any other data type as a String.
Numeric
- Numeric (integer or decimal) value e.g. Cost = 15.00, Quantity = 5.
- You can apply operators such as sum, median and percentile on numeric properties.
Boolean
- Mixpanel treats properties as boolean if the value is either the JSON constant
true or false; e.g. Favorite = true, Bookmarked = false.
- On Mixpanel, you can typecast any non-boolean property to boolean.
- “false”, 0, null, undefined, empty string and
not set will be typecasted to boolean false.
- “true” and any set value that is not 0 or empty string will be typecasted to boolean
true.
Date
- An ISO formatted date
YYYY-MM-DDTHH:MM:SS in UTC e.g. Last Purchase = “2022-10-30T13:30:25”, Last Login = “2022-10-29”.
- Note that all timestamps need to be sent in UTC timezone in an ISO format.
- Mixpanel treats unix timestamps as Numeric property, however, you can typecast it to Date data type.
- Timestamps are ingested with millisecond precision, but exported with second precision.
- You can break down your results by the “Time” event property and breakdown by Hour, Day, Week, Month, Quarter, Year, Hour of Day, or Day of Week.
List
- A list of values as a JSON array e.g. Favorite Genres =
["Folk","Alternative"] or Favorite Numbers = [1,5,10.0]
- Limits of a List property: Event Property = 8KB, User Profile Property = 256KB
- Each item in a list would be further limited by their data type’s limits; example: a list of strings would be limited by 255 bytes per string.
- Mixpanel lists are not ordered (i.e. position of values in a list are not significant in Mixpanel reports) and are useful for grouping or analyzing similar values across events.
Editing of list properties is not supported directly within the Mixpanel UI. To modify list properties, you must use the Mixpanel API or one of our SDKs.
Object
Mixpanel supports object in a limited capacity. We recommend using the five non-object data types for most use cases as they are fully supported in the UI.
- Arbitrarily-nested groups of JSON key-value pairs e.g. Experiments =
{"Exp Onboarding":"Quick","Exp Checkout":"Without Coupon"}
- Limits of an Object property: Event Property = 8KB, User Profile Property = 256KB, max 255 keys per nested object with a max nesting depth of 3
- Mainly supported in core reports (i.e. Insights, Funnels, Flows, Retention, Users / Cohorts, Events) as filters and breakdowns.
List of Objects
- A JSON array of 1 level JSON objects with each object having similar sets of key-value pairs e.g. Cart =
[{"Brand":"Puma","Category":"Jacket","Price":30}, {"Brand":"Adidas","Category":"Hats","Price":15}]
- Limits of a List of Objects: Event Property = 8KB, User Profile Property = 256KB, max 255 keys and no nesting; average list size = 50 objects
- Mainly supported in core reports as filters and breakdowns.
Default Event Properties
Mixpanel’s Data Ingestion APIs and Client-Side SDKs automatically collect certain properties on every event or user profile.
Geolocation Properties
| Raw Name | Display Name | Description |
|---|
$city | City | The city of the event sender parsed from the IP property or the Latitude and Longitude properties. |
$region | Region | The region (state or province) of the event sender parsed from the IP property or the Latitude and Longitude properties. |
mp_country_code | Country | The country of the event sender parsed from the IP property or the Latitude and Longitude properties. The value is stored as a 2-letter country code in the raw data and parsed into the country name in the UI. |
API Properties
| Raw Name | Display Name | Description |
|---|
$mp_api_endpoint | API Endpoint | Mixpanel property to record the API endpoint the data was sent to. |
$import | Import | Internal Mixpanel property set to true to indicate that events were sent through /import API. |
$mp_api_timestamp_ms | API Timestamp | UTC timestamp in milliseconds when the event was received by our API. |
mp_processing_time_ms | Time Processed (UTC) | UTC timestamp in milliseconds when the event was processed by Mixpanel servers. |
SDK Properties
Client-side SDKs automatically collect additional properties:
| Raw Name | Display Name | Description |
|---|
$device_id | Device ID | Autogenerated ID that is local to the device. Calling reset() regenerates this value. |
$user_id | User ID | The identified ID of the user. Calling identify() sets this. |
$insert_id | Insert ID | A unique identifier for the event, used to deduplicate events that are accidentally sent multiple times. |
mp_lib | Mixpanel Library | The Mixpanel library that sent the event (e.g., web, android, iphone, swift). |
$lib_version | Library Version | Mixpanel library version. |
$os | Operating System | OS of the event sender. |
$browser | Browser | Name of the browser (web only). |
$browser_version | Browser Version | Version of the browser (web only). |
$device | Device | Name of the event sender’s device, if they’re on mobile web. |
$screen_height | Screen Height | The height of the device screen in pixels / points (iOS). |
$screen_width | Screen Width | The width of the device screen in pixels / points (iOS). |
$manufacturer | Manufacturer | Device manufacturer (mobile only). |
$model | Model | The model of the device (mobile only). |
$carrier | Carrier | Wireless carrier of the device owner (mobile only). |
Web-Specific Properties
| Raw Name | Display Name | Description |
|---|
$current_url | Current URL | The URL of the page on which the event was tracked. |
$initial_referrer | Initial Referrer | Referring URL when the user first arrived on your site. Defaults to “$direct” if the user is not referred. |
$initial_referring_domain | Initial Referring Domain | Referring domain at first arrival. Defaults to “$direct” if the user is not referred. |
$referrer | Referrer | Referring URL including your own domain. |
$referring_domain | Referring Domain | Referring domain including your own domain. |
$search_engine | Search Engine | The search engine that the customer used when they arrived at your domain. |
utm_source, utm_medium, etc. | UTM Parameters | UTM tags derived from the URL a customer clicked to arrive at your domain. |
Reserved Event Properties
Mixpanel reserves certain property names for special processing or for specific system features:
| Raw Name | Display Name | Description |
|---|
token | - | The project’s token when sending data via /track API. Not visible via Mixpanel UI reports. |
ip | - | The IP address value to be used for geo-location parsing. Not stored in Mixpanel. |
$distinct_id / distinct_id | Distinct ID | Mixpanel’s internal unique identifier for a user. |
$device_id | Device ID | Unique identifier used to track a device while the user is in anonymous state. |
$user_id | User ID | Unique identifier used to track a user across devices when user is in identified state. |
$event_name | Event Name | Name of the tracked event used in the Mixpanel UI. |
$time / time | Time or Date | A unix time epoch that is used to determine the time of an event. |
$insert_id | Insert ID | A unique identifier for the event, used to deduplicate events. |
Reserved Profile Properties
| Raw Name | Display Name | Description |
|---|
$distinct_id | Distinct ID | Mixpanel’s internal unique identifier for a profile. |
$name, $first_name, $last_name | Name, First Name, Last Name | The user’s / group’s name. Used in various Mixpanel UI / reports. |
$email | Email | The user’s / group’s email address. Required for sending emails via Cohort Syncs. |
$phone | Phone | The user’s / group’s phone number. Required for sending SMS via Cohort Syncs. |
$avatar | Avatar URL | Set this property to a URL resource to update the profile picture. |
$created | Created | The time that the profile was created. Not auto-populated. |
$mp_first_event_time | First Seen | Mixpanel calculated property representing the time of the user’s very first event. |
$last_seen | Updated at | The last time a user profile property was set or updated. |