What is mixpanel-browser?
The mixpanel-browser npm package is a client-side library for integrating Mixpanel analytics into web applications. It allows you to track user interactions, manage user identities, and create custom events to gain insights into user behavior.
What are mixpanel-browser's main functionalities?
Tracking Events
This feature allows you to track custom events in your application. You can specify the event name and attach properties to provide additional context.
mixpanel.track('Event Name', { property1: 'value1', property2: 'value2' });
Identifying Users
This feature allows you to identify a user with a unique ID. This is useful for tracking user behavior across sessions and devices.
mixpanel.identify('user_id');
Setting User Properties
This feature allows you to set properties for a user. These properties can be used to segment users and personalize their experience.
mixpanel.people.set({ $first_name: 'John', $last_name: 'Doe', $email: 'john.doe@example.com' });
Tracking Page Views
This feature allows you to track page views in your application. You can capture the URL or other relevant information about the page.
mixpanel.track('Page View', { page: window.location.pathname });
Setting Up Funnels
This feature allows you to set up funnels by tracking a series of events. This helps in understanding the user journey and identifying drop-off points.
mixpanel.track('Sign Up'); mixpanel.track('Purchase');
Other packages similar to mixpanel-browser
amplitude-js
Amplitude is a client-side library for integrating Amplitude analytics. It offers similar functionalities to Mixpanel, such as event tracking, user identification, and setting user properties. Amplitude is known for its robust analytics and user-friendly interface.
google-analytics
Google Analytics is a widely-used analytics platform that offers a client-side library for tracking events, page views, and user interactions. While it may not offer as granular user property management as Mixpanel, it is highly scalable and integrates well with other Google services.
Mixpanel JavaScript Library
The Mixpanel JavaScript Library is a set of methods attached to a global mixpanel
object
intended to be used by websites wishing to send data to Mixpanel projects. A full reference
is available here.
Alternative installation via NPM
This library is available as a package on NPM (named mixpanel-browser
to distinguish it from Mixpanel's server-side Node.js library, available on NPM as mixpanel
). To install into a project using NPM with a front-end packager such as Vite or Webpack:
npm install --save mixpanel-browser
You can then import the lib:
import mixpanel from 'mixpanel-browser';
mixpanel.init("YOUR_TOKEN");
mixpanel.track("An event");
NOTE: the default mixpanel-browser
bundle includes a bundled mixpanel-recorder
SDK. We provide the following options to exclude mixpanel-recorder
if you do not intend to use session replay or want to reduce bundle size:
To load the core SDK with no option of session recording:
import mixpanel from 'mixpanel-browser/src/loaders/loader-module-core';
To load the core SDK and optionally load session recording bundle asynchronously (via script tag):
import mixpanel from 'mixpanel-browser/src/loaders/loader-module-with-async-recorder';
Use as a browser JavaScript module
If you are leveraging browser JavaScript modules, you can use importmap
to pull in this library.
<script type="importmap">
{
"imports": {
"mixpanel-browser": "https://cdn.mxpnl.com/libs/mixpanel-js/dist/mixpanel.module.js"
}
}
</script>
<script type="module" src="main.js"></script>
Then you are free to import mixpanel-browser
in your javascript modules.
import mixpanel from 'mixpanel-browser';
mixpanel.init('YOUR_TOKEN', {debug: true, track_pageview: true, persistence: 'localStorage'});
Building bundles for release
- Install development dependencies:
npm install
- Build:
npm run build-dist
Running tests
- Install development dependencies:
npm install
- Run unit tests:
npm test
- Start test server for browser tests:
npm run integration_test
- Browse to http://localhost:3000/tests/ and choose a scenario to run
In the future we plan to automate the last step with a headless browser to streamline development (although
Mixpanel production releases are tested against a large matrix of browsers and operating systems).
Generating and publishing documentation
- Create bundled source build:
npm run build-dist
- Generate Markdown:
npm run dox
(result is at doc/readme.io/javascript-full-api-reference.md
) - Publish to readme.io via the rdme util:
RDME_API_KEY=<API_KEY> RDME_DOC_VERSION=<version> npm run dox-publish
Thanks
For patches and support: @bohanyang, @dehau, @drubin, @D1plo1d, @feychenie, @mogstad, @pfhayes, @sandorfr, @stefansedich, @gfx, @pkaminski, @austince, @danielbaker, @mkdai, @wolever, @dpraul, @chriszamierowski, @JoaoGomesTW, @@aliyalcinkaya