What is Mixpanel (the service) ?¶ ↑
Mixpanel is a real-time analytics service that helps companies understand how users interact with web applications. mixpanel.com
What does this Gem do?¶ ↑
-
Track events with properties directly from your backend.
-
Track events with properties through javascript using a rack middleware.
How to install?¶ ↑
gem install mixpanel
How to use it with a Rails application?¶ ↑
In your environment config file add this.
Rails::Initializer.run do |config| config.middleware.use "MixpanelMiddleware", "YOUR_MIXPANEL_API_TOKEN"
If you want to use the asynchronous version of Mixpanel’s javascript API
Rails::Initializer.run do |config| config.middleware.use "MixpanelMiddleware", "YOUR_MIXPANEL_API_TOKEN", :async => true
In your application_controller class add a method to instance mixpanel.
before_filter :initialize_mixpanel def initialize_mixpanel @mixpanel = Mixpanel.new("YOUR_MIXPANEL_API_TOKEN", request.env, true) end
Then in each request you want to track some event you can use:
To track events directly from your backend…
@mixpanel.track_event("Sign in", {:some => "property"})
To track events after response with javascript…
@mixpanel.append_event("Sign in", {:some => "property"})
To execute any javascript API call
@mixpanel.append_api("register", {:some => "property"}) @mixpanel.append_api("identify", "Unique Identifier")
Notes¶ ↑
There are two forms of async operation:
-
Using MixpanelMiddleware, events are queued via Mixpanel#append_event and inserted into a JavaScript block within the HTML response.
-
Using Mixpanel.new(…, …, true), events are sent to a subprocess via a pipe and the sub process which asynchronously send events to Mixpanel. This process uses a single thread to upload events, and may start dropping events if your application generates them at a very high rate.
Collaborators and Maintainers¶ ↑
-
Alvaro Gil (Author)