— a standardized interface for
web analytics

Implementing an analytics tool for analyzing site traffic and basic user behavior is pretty easy these days. For most people Google Analytics will work just fine — it’s free, it has a great interface, and it’s trivial to implement.

At Krrb our needs are slightly more complex. While Google Analytics supports the majority of our traffic analysis, it doesn’t give us everything we need.

To understand user behavior and communicate with our customers based on event triggers and user behavior we rely on Intercom. Intercom allows us to identify real people and trigger communication through on-site messaging and email, based on actions performed by the user. It allows us to segment and group our customers based on any metric that we care to define. For  example — users who have posted a new item for sale in the past 30 days are grouped as such.

Both Google Analytics and Intercom have good APIs and clear documentation so implementing the tracking code for each is pretty easy.

But, there’s a lot of duplication. For example, in Google Analytics we have goals associated with the creation of new posts. These are triggered based on user initiated events. We track the same thing in Intercom and associate those events to specific users. Because each tool has it’s own API, we need to make two separate calls to track what’s essentially the same event. We track dozens of events so this isn’t a trivial problem.

We considered a few solutions including building our own Javascript and Ruby wrappers that would provide an abstraction layer on top of each third-party API — then we found and realized we’d been beaten to it. provides an API that communicates with over a hundred separate analytics and behavior tracking tools. It has two key concepts:

  1. Identify
    Allows you to identify a user both anonymously and using any information that you might have about that individual (email address etc..)
  2. Track
    Allows you to trigger a custom event based on a user action. For example, we have an event called “activated-account”. This is fired when a new user confirms their email address by clicking on a link in their welcome email.

When these methods are called, takes over and triggers the corresponding API call on all of the services you have enabled. This can be done on the front-end with Javascript, or server side with a variety of language specific libraries. In our case we use the Ruby version of the API wrapper to send an aggregated version of our user data to Intercom on a regular basis.

If you’re using multiple analytics tools you should try it. It isn’t free but it’s worth every penny — particularly when you consider the development effort required to implement a new tool with a completely distinct set of API calls. has really transformed our decision making process when it comes to evaluating new analytics services.

You can find out more here: