Getting Started
Please refer to our Quickstart Guide. The Full API Reference, Library Source Code, and an Example Application is documented in our GitHub repo.Installing the Library
This library can be installed using the unity package manager system with git. We support Unity 2018.3 and above. For older versions of Unity, you need to have .NET 4.x Equivalent selected as the scripting runtime version in your editor settings. To install the library in your Unity project, declare it as a dependency in the./Packages/manifest.json file of your project:
JSON
Alternatively you can go to the releases page and download the
.unitypackage file and manually install the package using Unity.
Mixpanel.Init() to initialize.
Once you’ve initialized the library with your project token, import Mixpanel into your code using the mixpanel namespace to start using it:
Sending Events
UseMixpanel.Track() to send an event by providing the event name and any event properties. This will trigger a request to the /track API endpoint to ingest the event into your project.
The /track endpoint will only validate events with timestamps within the last 5 days of the request. Events with timestamps older than 5 days will not be ingested. See below on best practices for historical imports.
Timing Events
You can track the time it took for an action to occur, such as an image upload or a comment post, usingMixpanel.StartTimedEvent() This will mark the “start” of your action, which you can then finish with a track call. The time duration is then recorded in the “Duration” property.
Example Usage
Flushing Events
To preserve battery life and customer bandwidth, the Mixpanel library doesn’t send the events you record immediately. Instead, it sends batches to the Mixpanel servers every 60 seconds while your application is running, as well as when the application transitions to the background. Call Mixpanel.Flush() manually if you want to force a flush at a particular moment. Example UsageFlush Interval value in Edit -> Project Settings -> Mixpanel.
Importing Historical Events
The Unity SDK is a tracking SDK designed for real-time tracking in a client-side environment. CallingMixpanel.Track() triggers a request to our /track API endpoint, which will validate for events with a timestamp that is within the last 5 days of the request. Events older than 5 days will not be ingested.
For bulk import of historical events older than 5 days, we will need to use the /import API endpoint which is optimized for scripting and supports ingesting historical data. We recommend the Python SDK (see the .import_data() function) and mixpanel-utils module (see the import_events() function) which both leverages the /import API for event ingestion.
Setting Super Properties
Super properties are global event properties that you define once and apply to all events. To make things easier, you can register these properties as super properties. If you do, we will automatically include them with all tracked events. Super properties are saved to device storage, and will persist across invocations of your app. Mixpanel already stores some information as super properties by default; see a full list of Mixpanel default properties here. To register super properties, callMixpanel.Register().
Use Mixpanel.RegisterOnce() to register super properties without overwriting existing values.
Example Usage
Managing User Identity
You can handle the identity of a user using theMixpanel.Identify() and Mixpanel.Reset() methods. Learn more about identity management and identifying users.
Identify
CallMixpanel.Identify() when you know the identity of the current user, passing in their user ID as an argument. This is typically at account registration and at log in.
Example Usage
Call Reset at Logout
CallMixpanel.Reset() to clear data attributed to a user when they logout. This will clear the local storage and allows you to handle multiple users on a single device.
Example Usage
Storing User Profiles
Once your users are identified, create user profiles by setting profile properties to describe them. Example profile properties include “name”, “email”, “company”, and any other demographic details about the user. The Unity SDK provides a few methods for setting profile properties under thePeople class. These methods will trigger requests to the /engage API endpoint.
Setting Profile Properties
You must call
.identify() before setting profile properties in order to associate the profile properties you set with the target user. If identify is not called, the profile update will be queued for ingestion until an identify call is made.Mixpanel.People.Set method.
If a profile property already exists, it will be overwritten with the latest value provided in the method. If a profile property does not exist, it will be added to the profile.
Example Usage
Other Types of Profile Updates
There are a few other methods for setting profile properties. See a complete reference of the available methods here A few commonly used people methods are highlighted below:- .SetOnce()
- .Append()
- .Union()
- .Increment()
The
.People.SetOnce() method set profile properties only if they do not exist yet. If it is setting a profile property that already exists, it will be ignored.Use this method if you want to set profile properties without the risk of overwriting existing data.Example UsageGroup Analytics
Read more about Group Analytics before proceeding. You will need to have the group key defined in your project settings first.
group_key and group_id.
group_keyis the event property that connects event data to a group. (e.g.company)group_idis the identifier for a specific group. (e.g.mixpanel,company_a,company_b, etc.)
Sending Group Identifiers With Events
All events must have the group key as an event property in order to be attributed to a group. Without the group key, an event cannot be attributed to a group. To send group identifiers with your events, set thegroup_key as an event property with the group_id as the value.
Example Usage
group_key value as a list of multiple group_id values.
Example Usage
Adding Group Identifiers to User Profiles
To connect group information to a user profile, include thegroup_key and group_id as a user profile property using the People.Set() call.
Example Usage
Privacy-Friendly Tracking
You have control over the data you send to Mixpanel. The Unity SDK provide methods to help you protect user data. Learn more about Privacy.Opt Out of Tracking
The Unity SDK is initialized with tracking enabled by default. Use the.OptOutTracking() method to opt the user out of data tracking and local storage for the current Mixpanel instance.
Example Usage
IsTracking configuration. Once the user is ready to be tracked, call .optInTracking() to start tracking.
Example Usage
EU Data Residency
Route data to Mixpanel’s EU servers by setting theAPI Host Address to https://api-eu.mixpanel.com/ when configuring the library under the unity project settings menu for Mixpanel (Edit -> Project Settings -> Mixpanel).
India Data Residency
Route data to Mixpanel’s EU servers by setting theAPI Host Address to https://api-in.mixpanel.com/ when configuring the library under the unity project settings menu for Mixpanel (Edit -> Project Settings -> Mixpanel).