track-event
Track events to multiple destinations
Motivation
Why not use segment's IO analytics.js instead?
Analytics.js is cute but they force you to use the same dumbed down API for all analytics services.
track-event
focuses on:
- Creating a single client for all services
- Calling service specific functions on the client so you send your data to the analytics service in the exact format you want
- Exposing the raw clients for custom functionality
- Being browserify compliant
As a bonus it can also do RPC calls to another track-event
client through an iframe to basically allow you to track
users with a single cookie on a single tracking domain in
your cross domain applications.
For example if you wanted to track your users in a chrome extension or in a hangout app.
Example (mixpanel)
var Client = var track = var client = var mixpanel = clientmixpanel// do custom stuff with mixpanel client directly.
Example (GA)
var Client = var trackEvent = var client = var tracker = clienttrackertracker// do custom stuff with GA tracker
Example (AJAX Back end)
var Client = var xhr = var client =
Example (postMessage)
You want to use postMessage if you want to use say mixpanel's API from your own domain on a seperate site. So you embed an iframe to your own site on the third party domain and use postMessage to send track events
postMessage code
Use postMessage(client, method, args)
to effectively make an
RPC call on the client
created within the iframe.
// on http://third-party.comvar Client = var postMessage = var iframe = documentiframesrc = "http://example.com/tracking-iframe"documentbody var client = // use `"track"`, `"trackEvent"`, etc to send arbitary data.// You can't send callbacks currently
iframe page code
Just instantiate a client and tell it to handle onMessage
and
whitelist the third party domain you want to accept incoming
RPC calls from.
// on http://example/com/tracking-iframevar Client = var client =
Installation
npm install track-event
Contributors
- Raynos