Matthew Boston

Mixpanel Mock

March 12, 2014

When using Mixpanel it’s best not to send events while in development, staging, demo, or QA environments. I created a class to load a mock that will simply log to the console for tracking events.

class MixpanelMock
  track: () ->
      console.log("mixpanel.track", arguments)

window.mixpanel = new MixpanelMock()

You can get the updated source of MixpanelMock on GitHub.

Using in Rails

I usually save the Mixpanel JavaScript Library to a file in vendor/assets/javascripts/mixpanel.js.

Then I place MixpanelMock in vendor/assets/javascripts/mixpanel-mock.coffee.

I use the code below to conditionally load the real or fake Mixpanel library.

- if Rails.env.production?
  = javascript_include_tag "mixpanel"
- else
  = javascript_include_tag "mixpanel-mock"

This way, when not in production, all of your Mixpanel tracking events will simply be printed to the console. This also makes it super simple, as a developer, to know when certain events are being sent to Mixpanel.