Mixpanel Node Versions Save

A node.js API for mixpanel

v0.18.0

8 months ago

The library can now be initialized with a logger option to provide custom logging instead of the default console logging:

const bunyan = require(`bunyan`);
const mixpanel = Mixpanel.init(`<YOUR_TOKEN>`, {debug: true, logger: bunyan});

Any logger which implements the interface at https://github.com/mixpanel/mixpanel-node/blob/7f334f1d3f07e1c7783887b8090211614a26d5bc/lib/mixpanel-node.d.ts#L9-L15 will work:

export interface CustomLogger {
  trace(message?: any, ...optionalParams: any[]): void;
  debug(message?: any, ...optionalParams: any[]): void;
  info(message?: any, ...optionalParams: any[]): void;
  warn(message?: any, ...optionalParams: any[]): void;
  error(message?: any, ...optionalParams: any[]): void;
}

Support has also been dropped for the long-deprecated Mixpanel.Client() initializer.

v0.17.0

1 year ago

As of this release, time properties set as Date objects will be sent to the Mixpanel API with millisecond precision (instead of being rounded to the second).

v0.16.0

1 year ago

The configuration option geolocate can be used to take advantage of Mixpanel's automatic geolocation properties (converting the source IP address into properties for country/region/city). This is generally useful when the NodeJS SDK is used in a client application, such as an Electron app or IoT device; whereas in a server application (e.g. an Express application server), the IP address will be that of the server rather than the user. To turn on geolocation, initialize the library with geolocate: true:

const mixpanel = Mixpanel.init('<YOUR_TOKEN>', {
  geolocate: true,
});

The SDK also now sends the current library version as a property with every event, like Mixpanel's other SDKs.

v0.15.0

1 year ago

The library now defaults to using keepAlive (https://nodejs.org/api/http.html#new-agentoptions) so that each request doesn't have to establish a new connection. This should result in better performance and network reliability. If you need to turn this option off, initialize the library with keepAlive: false:

const mixpanel = Mixpanel.init('<YOUR_TOKEN>', {
  keepAlive: false,
});

v0.14.0

2 years ago

Profile update operations set and set_once now support passing latitude/longitude for geolocation (see https://help.mixpanel.com/hc/en-us/articles/115004499343#latitude-and-longitude-based-geolocation). These should be passed in the 'modifiers' object param, e.g.:

mixpanel.people.set('billybob', {
  plan: 'premium',
  games_played: 1,
}, {
  $latitude: 40.7127753,
  $longitude: -74.0059728,
});

Event operations like track() already supported latitude/longitude as regular event properties.

v0.13.0

3 years ago

The supported method for authenticating import() calls (for events more than 5 days old) is now via the project's API Secret, passed via the secret config option:

const mixpanel = Mixpanel.init(`<TRACKING TOKEN>`, {secret: `<API SECRET>`});

This will be passed as a HTTP Basic auth header as described in https://developer.mixpanel.com/reference/importing-old-events. It will only be sent over HTTPS (the default protocol); the library will throw an error rather than send the secret over HTTP in plaintext.

The older API "Key" authentication for import will still work, but is now deprecated and may be removed in a future version.

v0.11.0

4 years ago

This release adds support for Mixpanel Groups, through the mixpanel.groups object, analogous to mixpanel.people. For projects which have groups support enabled, you can send group profile updates via calls such as:

mixpanel.groups.set('company', 'Acme Inc.', {
    'Industry': 'widgets',
    '$name': 'Acme Inc.',
});

mixpanel.groups.remove('company', 'Acme Inc.', {
  'products': 'anvil',
  'customer segments': 'coyotes'
});

mixpanel.groups.delete_group('company', 'Acme Inc.');

// etc

v0.10.1

5 years ago

Configure when initializing the instance with the path option:

const mixpanel = Mixpanel.init(`YOUR TOKEN`, {
  host: `sweet-corporate-proxy:6000`,
  path: `/mixpanel`,
});

In the above example, tracking requests will go to https://sweet-corporate-proxy:6000/mixpanel/track.

v0.10.0

5 years ago