Segment
Eligible startups receive their first year of Mixpanel free, valued up to $50,000. Learn more about the Startup Program and apply today (opens in a new tab).
Overview
Segment is a CDP (Customer Data Platform) which lets you track event data and route it to various downstream destinations. Mixpanel integrates seamlessly with Segment -- if you use Segment, it takes just a few clicks to set up Mixpanel.
How the Integration Works
In the simplest form, the Segment libraries (“Sources”) generate messages about what’s happening in your site or app, and send them to the Segment servers. Segment then translates the content of those messages into different formats for use by other tools (which we call ‘Destinations’), and sends the translated messages to those tools. The Segment servers also archive a copy of the data, and can send data to your storage systems (such as databases, warehouses, or bulk-storage buckets).
For detailed instructions on how to install and initialize the Segment library please refer to the Segment Getting Started Guide (opens in a new tab).
1. Integrate with Segment
Once you've installed and initialized a Segment library in your application, get your data into Mixpanel by following the instructions for setting up the Mixpanel (Actions) Destination (opens in a new tab)
2. Identify Users
The next thing you need to do is identify your users, so that you can understand what your users are really doing. When you call Segment's identify
API (opens in a new tab), Mixpanel will set the specified userId
as the Mixpanel distinct_id
along with any additional traits
that you provide.
3. Track User Actions
Lastly, track your users' actions using Segment's track
API call (opens in a new tab).
4. Check for Success
Open up Events View in Mixpanel (opens in a new tab) to view incoming events.
Implementing Group Analytics using Segment
There are 4 parts to implementing Group Analytics via Segment.
1. Define the Group Key in Mixpanel and Segment
Create the Group Key in Mixpanel Project Settings.
Create the Group Identifier Trait in Segment’s Mixpanel Destination Settings (opens in a new tab).
Make sure the value placed in Segment’s “Group Identifier Trait” row matches Mixpanel’s “Group Key”.
2. Create Group Profiles
analytics.group() (opens in a new tab) will create Group Profile/Group Profile Properties in Mixpanel. Mixpanel uses the key specified in the second argument of the group method.
Example Group Profile/Group Profile Properties created from the group method:
3. Add Group Key as a User Profile Property
In order to use Group Profile Properties when analyzing User Profiles, the user profile must have the Group Key/Group ID Value as a profile property.
Declare the Group Key in the identify method as a profile property (trait):
4. Add Group Key as an Event Property to Events
In order to connect events to a Group, the event must have the Group Key/Group ID Value as an event property.
If you are using Segment Cloud Mode (opens in a new tab):
- The Group Key must be explicitly declared as an event property on every event track call in order for the event to be compatible with Group Analytics.
If you are using Segment Device Mode (opens in a new tab) (legacy):
- Declare the Group Key as a Super Property (opens in a new tab) so that the Group Key is sent in as an Event Property to client-side events.
- By default, all traits specified in the identify call will be registered as super properties. This means if you have the “Automatically set all Traits as Super Properties and People Properties” (opens in a new tab) setting turned on, all traits specified in the identify call will be added as both a super property and profile property for the user.
Debugging
Segment Source Debugger
For debugging purposes, it can be useful to see exactly what Segment is sending to Mixpanel. You can validate this data through the Segment Source Debugger (opens in a new tab). In the Segment Source Debugger, you can select the event you are looking to validate:
Click the “Validate” button in the top right corner and choose “Mixpanel” as the destination. After the event has been sent, you can click to view the request from Segment to grab the data payload:
You can then copy the data payload and decode it in a base64 decoder (opens in a new tab) to see the JSON event that was sent to Mixpanel.
Delivery Overview
Content about delivery overview
Event Tester
Content about event tester
FAQ
Why are my Segment data not appearing in my project?
This could be due to several reasons:
-
Storing data in the EU: A common issue is that the data in Segment is enabled to be sent to an EU endpoint but the Mixpanel data is still being stored outside of the EU. Both endpoints for Segment and Mixpanel need to point to the EU as described here (opens in a new tab). If you have an existing Mixpanel project, you might need to have your data migrated to the EU. Please find further information here (opens in a new tab).
-
Cloud implementation vs. device implementation (opens in a new tab): Segment can be implemented via a cloud-based implementation or as an SDK on the device directly. Device implementation will send the data to Mixpanel directly while the cloud implementation will send it to Segment first. You can confirm your implementation by querying for the Mixpanel library property of the events in your project:
-
Cloud Mode will show as Mixpanel Library: Segment: analytics.js
-
Device Mode will show as Mixpanel Library: Segment: web
- No user profile data in Mixpanel: Segment doesn’t track Mixpanel People by default; (opens in a new tab) this is a setting you need to enable in your Segment settings. To enable Mixpanel People, change the “Use Mixpanel People” setting in your Segment Settings UI.
Why are there duplicated Segment events in my project?
Mixpanel SDKs assign an $insert_id (opens in a new tab) to each tracked event.
This allows Mixpanel to ensure no event is tracked more than once and events will be deduplicated based on the insert_id. Segment does not assign an insert_id to events. If the ingestion of an event is not confirmed by Mixpanel’s servers fast enough, Segment will retry to send the event.
This can lead to duplicate events in Mixpanel, they will likely have different insert_ids as Mixpanel assigns each event without an insert_id a unique new one. This behavior can be caused by sending huge batches of data at the same time and can be avoided by reducing the batch size and frequency of event sending from Segment to Mixpanel.
How do I register super properties using Segment?
Super properties can only be set when you are running in device mode. The super properties are automatically set with every property you pass into the analytics.identify() method. To have more control over the super properties you set, you can explicitly set super properties in your Segment settings (opens in a new tab).
How do I track page views using Segment?
Page calls are automatically tracked via Segment. These can be tracked from Segment to Mixpanel as Loaded a Page or Loaded a Screen. To turn them off, you need to configure this in your Segment settings (opens in a new tab).
Why is Boardman, Oregon appearing in my user's geolocation properties?
If you are seeing high traffic coming from Boardman, Oregon, your Segment Source might be sending server-side requests to your Mixpanel destination. To correct this, manually pass in the IP information to your payloads, or set the IP to 0
which will cause Mixpanel API to ignore the location.
Was this page useful?