Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Simple lib to track events in Mixpanel service. It can be used in any rack based framework.
Ruby
tag: 0.7.0

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
.gitignore
CHANGELOG.md
LICENSE
README.rdoc
Rakefile
mixpanel.gemspec

README.rdoc

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)
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

It is strongly recommended to call Mixpanel#track_event using an async lib like delayed job or similar, otherwise you will delay your server responses with mixpanel responses.

Collaborators and Maintainers

Something went wrong with that request. Please try again.