Freshpaint
HomeLogin
  • Documentation
    • What is Freshpaint?
    • ⚕️HIPAA Mode
    • 🏗️Building Out Your Account
    • 🌐Overview of Features
    • Guides
      • 📡Add Autotrack to your website to collect data from your users
        • Installing the Freshpaint Javascript SDK
        • Installing the Freshpaint SDK with a Content Security Policy (CSP)
        • Installing the Freshpaint Javascript SDK with Server-Side Rendering (SSR) + React
        • Autocapture + React
        • Configuring a Destination
        • Labeling User Actions
        • How do I install Freshpaint with Typescript?
      • 🔁Send historical data to any destination with Time Machine
      • Next.js Quickstart Guide
      • Android Quickstart Guide
        • Installing the Freshpaint Android SDK
        • Configuring a Destination
        • Instrumenting Your App
      • iOS Quickstart Guide
        • Installing the Freshpaint iOS SDK
        • Configuring a Destination
        • Instrumenting Your App
      • React Native Quickstart Guide
        • Installing the Freshpaint React Native SDK
        • Configuring a Destination
        • Labeling User Actions
        • Configuring Property Capture
    • Setting up Properties
    • Setting up Your Destinations
      • Enabling and Disabling a Destination
      • Deleting a Destination
    • Setting up Your Events
    • User Identification
      • Designated Identify Properties
    • Maps
    • Analytics (Beta)
      • Web Analytics Dashboard
      • Campaigns
      • Service Lines
      • Data Glossary
    • Translations
    • Web Tracker Monitoring
      • Tracker Resolution Types
      • Historical Scans
  • Integrations
    • Destinations
      • Demand Side Platforms (DSPs)
        • Basis
          • Basis Quick Start Guide
          • Basis Reference
        • Google Campaign Manager 360
        • StackAdapt
          • StackAdapt Quick Start Guide
          • StackAdapt Reference
        • theTradeDesk
          • theTradeDesk Quick Start Guide
          • theTradeDesk Reference
          • theTradeDesk with CM360 Configuration Guide
        • Viant
          • Viant Quick Start Guide
          • Viant Reference
      • Direct Response Ads
        • Facebook Conversions API
          • Facebook Conversions API Quick Start Guide
          • Facebook Conversions API Reference
        • Google Ads Conversion API
          • Google Ads Conversion API Quick Start Guide
          • Google Ads Conversions API Reference
        • Google Ads
          • Google Ads Quick Start Guide
          • Google Ads Reference
        • LinkedIn Ads
          • LinkedIn Ads Quick Start Guide
          • LinkedIn Ads Reference
        • Microsoft Ads (formerly Bing Ads)
          • Microsoft Ads Quick Start Guide
          • Microsoft Ads Reference
          • Microsoft Ads Multi-Config Reference
        • Pinterest Ads (Beta)
          • Pinterest Ads Quick Start Guide
          • Pinterest Ads Reference
        • Pinterest Tag
        • Reddit Ads
          • Reddit Ads Quick Start Guide
          • Reddit Ads Reference
        • TikTok Ads
        • Twitter Ads
      • Data Activation
        • ActiveCampaign
          • ActiveCampaign Quick Start Guide
          • ActiveCampaign Reference
        • Amplitude
          • Amplitude Quick Start Guide
          • Amplitude Reference
        • Braze (formerly Appboy)
          • Braze Quick Start Guide
          • Braze Reference
        • Customer.io
          • Customer.io Quick Start Guide
          • Customer.io Reference
        • Freshsales
        • Google Analytics 4 Proxy
          • Google Analytics 4 Proxy Quick Start Guide
          • Google Analytics 4 Proxy Reference
          • Google Analytics 4 Proxy Advanced Tracking Configurations
        • Google Analytics 4 Server-Side
          • Google Analytics 4 Server-Side Quick Start Guide
          • Google Analytics 4 Server-Side Reference
        • Heap
        • Hotjar
        • HubSpot Cloud
        • HubSpot Web
        • impact.com
          • Impact.com Quick Start Guide
          • Impact.com Reference
        • Intercom
          • Intercom Quick Start Guide
          • Intercom Reference
        • Iterable
          • Iterable Quick Start Guide
          • Iterable Reference
        • June
        • Klaviyo
        • Mixpanel
          • Mixpanel Quick Start Guide
          • Mixpanel Reference
        • OneSignal
          • OneSignal Quick Start Guide
          • OneSignal Reference
        • Sendinblue
        • Sentry
        • Vero Cloud
        • Webengage
        • Webhooks
        • Woopra
        • Zendesk
      • Data Warehouses
        • Azure Warehouse Setup
        • BigQuery Warehouse Setup
        • Databricks Warehouse Setup
        • Postgres Warehouse Setup
        • Redshift Warehouse Setup
        • S3 Warehouse Setup
        • Snowflake Warehouse Setup
      • Consent Management
        • Osano
        • OneTrust
        • Custom Consent Manager
    • Sources
      • Web
        • Autotrack
        • Precision Tracking
      • CallRail
      • Invoca
      • Customer.io
      • Intercom
      • Mailchimp
      • React Native
      • SendGrid
      • Sendinblue
      • Server-Side
      • iOS
    • 🔷Google Tag Manager integration
      • Google Tag Manager migration
      • Quick Start Guide
    • 📺Freshpaint Video Platform
    • 🖼️Impression Pixel
  • Admin Panel
    • Event Library
      • Event Library Bulk Actions
      • Event Definition Filters
      • Event Tester
      • 🔁Time Machine
      • Visual Tagger
      • Advanced Options
        • Tag Manager
        • Disabling Target Text Capture
        • Cross Domain Tracking
    • Projects & Environments
    • Teams
      • Role-Based Access Control (RBAC)
    • Transformations
      • Standard Events
      • Modify Data
      • Modify User Data
      • SQL Transformations
    • 📈Destination Monitoring
    • 🔎Investigate: Testing and Debugging
      • Live View
      • Event Verification
  • Reference
    • Developer Docs
      • Freshpaint Web SDK Reference
      • Freshpaint Web SDK Options
      • Freshpaint React Native SDK Reference
      • Freshpaint iOS SDK Reference
      • Freshpaint Android SDK Reference
      • HTTP API
    • Frequently Asked Questions
      • How do I circumvent ad blockers?
      • Can Freshpaint track users across domains?
      • Can I install Freshpaint on a Chrome extension?
      • What properties are captured with my events?
      • How Do I Switchover From Segment?
      • How Do I Switch From Native Google Analytics to the Freshpaint Google Analytics Destination?
      • Where do I find my Environment ID?
      • Is Freshpaint GDPR & CCPA Compliant?
      • Can I use transformations to anonymize data for client-side destinations?
      • How do I QA or debug my data?
      • Why Do My Numbers Differ Across Different Tools?
      • Billing: How Does Freshpaint Determine MTUs?
      • Can I Use Freshpaint on Multiple Sites?
      • How Can I Export Data From Freshpaint?
      • How Does Freshpaint Identify Users?
      • How Many Events Should I Create?
      • What Should I Name My Events?
      • How do I track scroll depth?
      • What Data Does Freshpaint Collect?
        • Data Collected on Web
        • Data Collected on React Native
      • Does Freshpaint's Autotrack slow my site down?
      • Running Freshpaint with a Proxy
      • Should my Environment ID be treated as a sensitive key?
      • How Does Freshpaint Determine Session Count?
      • What is the difference between client-side and server-side connection mode?
      • What is a Proxy Integration?
      • Where can I view Freshpaint’s Status?
      • Does Freshpaint provide HIPAA audit logs?
      • Freshpaint Cookie Too Large
      • How does Freshpaint compare to server-side Google Tag Manager?
      • If a user re-installs my app, will Freshpaint generate a new device ID?
      • Why doesn't Freshpaint need a BAA before sending data to Google Ads and Facebook Ads?
      • What Implementation Services Does Freshpaint Offer?
      • Single Sign On (SSO) Setup
Powered by GitBook
On this page
  • Destination Info
  • Identify
  • Client-Side Connection Mode
  • Server-Side Connection Mode
  • Events
  • Seeing Freshpaint Events in Mixpanel
  • UTM Parameters
  • Configuration Options
  • Group Analytics
  • Cross-Subdomain Cookie
  • Use Local Storage
  • Enable EU Endpoint
  • Secure Cookie
  • Consolidate Page Calls
  • Ignore DNT
  • Merge Anonymous
  • Use Freshpaint ID for Device ID
  • Enable Default Identify Transformations
  • Event Transformations
  • Connection Mode Settings
  • Geo Information
  • Group Analytics
  • Mixpanel Sessions
  • Deduplication in Mixpanel

Was this helpful?

  1. Integrations
  2. Destinations
  3. Data Activation
  4. Mixpanel

Mixpanel Reference

PreviousMixpanel Quick Start GuideNextOneSignal

Last updated 1 year ago

Was this helpful?

Destination Info

  • Accepts , , and calls

  • Supports

  • Connection Modes:

Client-side
Server-side

Web

Mobile

Server

Identify

It is important to first your users so Mixpanel knows who they are and associates events to their user record in Mixpanel:

Here is an example of an identify call:

freshpaint.identify("ada.lovelace@example.com", {
    /* user properties */
    "email": "ada.lovelace@example.com",
    "name": "Ada Lovelace",
    "role": "mathematician",
    "specialty": "computer languages"
});

If you care about independently tracking the action that triggers an identify call, it is highly recommended that you send a freshpaint.track call for this purpose and not rely exclusively on the identify call to be visible in Mixpanel.

Client-Side Connection Mode

By default, any properties set in an Identify call will be passed on as Super Properties in the Mixpanel cookie and in subsequent event properties while using client-side connection mode.

Server-Side Connection Mode

Events

Seeing Freshpaint Events in Mixpanel

Once the Mixpanel integration is enabled, you can now set it as an event destination:

Events sent from Freshpaint to Mixpanel will show up as standard Mixpanel events. From there you can use your events in any of the Mixpanel reports. You can view them by navigating to Events and looking at recent events, or by searching for a specific event.

UTM Parameters

As Freshpaint's client-side javascript library loads Mixpanel's javascript library in the background, any UTM parameters captured as built-in event properties are passed into Mixpanel as UTM properties.

When using server-side connection mode, UTM parameters will need to be explicitly passed in as an event property, for example:

freshpaint.track("Test Event", {
    "UTM Campaign": "testing",
    "UTM Source": "testing",
    "UTM Medium": "web",
    "UTM Term": "testing",
    "UTM Content": "testing"
});

Configuration Options

Group Analytics

Cross-Subdomain Cookie

Enable this option if your application has multiple subdomains and you want the Mixpanel cookie to persist across those subdomains. This allows the user to be tracked across subdomains. This setting is not enabled by default.

Use Local Storage

Use Local Storage instead of a Cookie to persist Mixpanel SDK state. Local Storage can support more User Property data than a cookie. This setting is not enabled by default.

Please note that users cannot be tracked across Subdomains when using Local Storage.

Enable EU Endpoint

Secure Cookie

Enabling this option will utilize a secure cookie that will only be transmitted over HTTPS. This setting is not enabled by default.

Consolidate Page Calls

This option only applies to Freshpaint's client-side SDKs and do not affect events originating from other sources such as React Native, Android, iOS, or when server-side connection mode is enabled.

Ignore DNT

Merge Anonymous

Use Freshpaint ID for Device ID

Enable this setting to make the Mixpanel javascript web SDK use the Freshpaint device ID. This improves data consistency - you'll see the same device id for data streamed from your customers' web browsers as for data backfilled from Freshpaint's servers. This setting is not enabled by default.

Changing this setting for an existing project will break historical data, so only enable this if you're setting up a new Mixpanel project.

Enable Default Identify Transformations

Enable this setting to apply a default set of transformations from Freshpaint User Properties to Mixpanel Properties when making Identify call's.

Freshpaint User Property
Mixpanel Property

email

$email

first_name

$first_name

last_name

$last_name

phone_number

$phone

state

$region

city

$city

Changing this setting will break historical data, so only enable this if you're setting up a new Mixpanel project.

Event Transformations

Connection Mode Settings

Client-Side Connection Mode

Events user's web browser will be sent directly to Mixpanel. Events from other sources, including mobile and server, will be sent first to Freshpaint's servers and then on to Mixpanel.

When available, geo-location data is appended to an identified user's record in Mixpanel.

Server-Side Connection Mode

By default, Freshpaint will provide the IP address of the browser to Mixpanel. You can also provide a custom IP address by providing a $ip property.

Geo Information

Geo location information is derived from the IP address of the original agent, the web SDK, or embedded SDK. That IP address is then passed through to Mixpanel where it is resolved to a geo location.

Group Analytics

Before using Mixpanel Group Analytics, you will need to configure the Group Identifier Trait in Freshpaint. The setting can be found in the configuration options for the Mixpanel integration.

The Group Identifier Trait is the name of the group key you want to use. When calling freshpaint.group you will need to pass in the group key and the corresponding group id as group properties. As an example, if you are using company_name as your Group Identifier Trait, you'll want to call freshpaint.group like so:

freshpaint.group("Google", {
    "company_name": "Google"
});
freshpaint.addEventProperties({
    "company_name": "Google",
    "department_name": "Software Engineering"
});

This will automatically attach the group key and group id to all events going forward.

Mixpanel Sessions

There are a variety of ways sessions can be defined in Mixpanel. By default, Mixpanel will create events at query time based on how far apart events are for a specific user. This can sometimes lead to discrepancies between Freshpaint's data and Mixpanel's data. For example, if a user has two sessions according to Freshpaint, and an event is triggered and sent to Mixpanel in between those two sessions, this could be counted in Mixpanel as one session.

Another example of a discrepancy is if a user changes multiple devices around the same time, this would be counted as multiple sessions in Freshpaint, while it would only be counted as one in Mixpanel.

If you have any questions on which method is right for you, you can reach out to us at support@freshpaint.io.

Deduplication in Mixpanel

freshpaint.identify is not identical to the "" event in Mixpanel. This call will always update profile values provided to it, but an Identify event will only show up in Mixpanel if the Mixpanel project is set to use the Original ID Merge API and the call includes a device_id and user_id to associate with each other.

When you call , Freshpaint will create or update a user profile in Mixpanel by calling Mixpanel's . Any user properties you pass in will be forwarded directly to Mixpanel.

In client-side connection mode, you may want to enable the Use Freshpaint ID for Device ID option in order to make the Mixpanel javascript web SDK use the Freshpaint device ID. This improves data consistency. You can read more about that .

When the Merge Anonymous option is enabled, Freshpaint will send a server-side identify call to Mixpanel using their endpoint. To set an anonymous id with an identify call, you can specify a value for the property.

When you call , Freshpaint will create or update a user profile in Mixpanel by sending a call to at: . To set an anonymous id with an identify call, you can specify a value for the property.

If you plan on using Mixpanel's feature, you should set up a group key in Mixpanel by clicking Add Group Key and entering in the name of the property you want to use (e.g. company_name). Then, copy the name of the group key you are using into Freshpaint as the Group Identifier Trait.

about setting Group profiles using the freshpaint.group() method.

When enabled, Freshpaint will send your events to Mixpanel's . In Mixpanel, be sure to enable Data Residency under Project Settings > Data Residency. Make sure you've followed to set up EU data. This setting is not enabled by default.

This will send a Loaded a Page event to Mixpanel for all method calls. The Page call is transformed to Mixpanel events. This setting is not enabled by default.

When enabled, Mixpanel will track all events, regardless of if the browser has "Do Not Track" enabled. and how it relates to and policies. This setting is enabled by default.

This setting merges anonymous users with identified users when a is performed. This setting is enabled by default.

Set up transformations to modify your data before it's sent to your destination. Read more about transformations .

All events will be sent to Mixpanel from Freshpaint's servers. Your website will not send data directly to Mixpanel. Instead, your website and all other sources will send data to Freshpaint, which is translated then sent to Mixpanel. As mentioned above, such as React Native, Android, and iOS send data server-side.

about which connection mode to choose.

When you call , Freshpaint will create or update a group profile in Mixpanel. Unlike other destinations, Mixpanel supports multiple group keys. That means one user can belong to multiple groups and the group a user is counted towards changes depending on which group key you are using. As an example, for the company_name group key, a user could belong to the group Google, while at the same time for the department_name group key, the user belongs to Software Engineering. Due to Mixpanel's support of multiple groups per user, there are some slight differences when using Mixpanel group compared to other destinations.

Additionally, for events to be attributed to the right group, you'll need to pass in the group key as an event property with the group id as the value. This can be done by using . For this reason, we recommend after calling freshpaint.group, you also make a call to freshpaint.addEventProperties with the group key and group id like so:

In Freshpaint, sessions are terminated after 30 minutes of inactivity by default. You can read more about that .

There are multiple ways you can define sessions in Mixpanel. Since Mixpanel and Freshpaint define sessions differently, session count will not always match between the two tools. You can read more about how you can define sessions in Mixpanel and decide which method works best for your use cases.

Mixpanel considers events with the same event, time, distinct_id, and $insert_id to be duplicates. Mixpanel will deduplicate based on these parameters. You can read more about that in Mixpanel's documentation.

For most events, Freshpaint sends each of these parameters to Mixpanel in order for deduplication to occur. If you are sending to Mixpanel, you would have to make sure these parameters were included in the event prior to sending to Mixpanel in order for deduplication to occur.

If you are sending data to Mixpanel with a , Freshpaint will send a fp_backfill_id property with each event that can also be used for deduplication. If for some reason the data is duplicated during a backfill, the duplicated events can be ignored by filtering out this fp_backfill_id value.

Identify
freshpaint.identify
identify method
here
Create Identify
$device_id
freshpaint.identify
Mixpanel's identity endpoint
https://api.mixpanel.com/track#create-identity
$device_id
Group Analytics
Learn more
EU endpoint
Mixpanel's help article
page()
Learn More About DNT
GDPR
CCPA
server-side identify call
here
sources
Learn more
freshpaint.group
freshpaint.addEventProperties
here
here
here
SQL scheduled events
backfill
Track
Group
Identify
HIPAA mode
identify