0.0
No commit activity in last 3 years
No release in over 3 years
Observes hits on controllers and changes in records for tracking user behaviour in a Rails application.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 3.2.9.rc2
 Project Readme

ActiveTracker

Observes hits on controllers and changes in records for tracking user behaviour in a Rails application.

Gettings Started

Install the gem by putting the following in your Gemfile

gem 'active-tracker'

Create an initializer file ie. config/initialitracker.rb and create a config block in there. Any code for events or trackers should be within this block.

ActiveTracker.config do
    # All configuration for events and trackers should be inserted here
end

Events

There are three kinds of events that you can track. A hit to a controller, change of a field in a record and creation of a new record.

  # Track hits on a controller
  hit :controller, :action, "Event Name", [:tracker1, :tracker2]

  # Track changes on a model attribute
  change :model_name, :model_attribute, "Event Name", [:tracker1]

  # Track model creation
  create :model_name, "Event Name", [:tracker2]

"Event Name" is a name you give to the event you are tracking.

:tracker1 and :tracker2 are names given to trackers (see below).

Trackers

A tracker is a block of code that logs the event you want to track in a database or to an external service like Google analytics, KISSmetrics or Mixpanel.

First list down the different trackers you want to define.

trackers :mongo, :google_analytics

Then define

mongo do
  Thread.new do
    Track.create!( :referer => @request.referer, :url => @request.url, 
                   :ip => @request.ip, :user_agent => @request.user_agent,
                   :timestamp => Time.now, :user => (@user ? @user.id : nil), 
                   :event => @event, :params => @params, 
                   :record_id => @record.try(:id) )
  end
end

It is a good idea to include this code in a thread to prevent the tracker from slowing down your application.

Variables

Within the tracker block there are certain instance variables that provide details about the event which can be stored.

The following instance variables exist if a controller was hit

@request - request in a controller

@params - the params passed to the controller

@user - the current user (if devise is being used)

Record instance varible exists if a model attribute was changed

@record - the record that was changed

@event - the name of event is always present

Credits

A big thank you to Venio where this gem originates.