ga-love
A tool for generating click event tracking & cohorts using google analytics.
Installation Gemspec
gem 'ga-love'
Create config/google_analytics.yml
development:
google_analytics_stream_id: <YOUR STREAM ACCOUNT ID>
google_analytics_id: <YOUR CLEAN ACCOUNT ID>
test:
...
production:
...
Create config/initializers/app_config.rb
AppConfig = YAML.load_file(Rails.root.join('config', 'google_analytics.yml'))
# Override config options by correct environment
= AppConfig.delete(Rails.env)
AppConfig.merge!() unless .nil?
Include in your layout
= render(:partial => "ga-love/index")
Sample Use
Clicks are tracked to <YOUR STREAM ACCOUNT>
and pageviews are logged to <YOUR CLEAN ACCOUNT>
. The following
elements are tracked by default:
- .pinit
- a
- input[type=submit]
- input[type=button]
- button
You can add custom data to each click event by setting an object in your controller. This example logs data that would be useful in making a cohort analysis.
class ApplicationController < ActionController::Base
...
before_filter :ga_stuff
...
def ga_stuff
@ga_url = URI.parse(request.fullpath)
@ga_url.query ||= ""
session[:session_id] ||= nil
@ga_user = {:session_id => request.session_options[:id]}
if user_signed_in?
@ga_user.merge!( {
:id => current_user.id,
:signed_up_at => current_user.created_at.strftime("%-d-%-m-%Y"),
:login_count => current_user.login_count
})
end
@ga_url.query += "&#{@ga_user.to_query}"
end
...
end
To Do
- remove .pinit
- offer a way to add classes/elements
Submitting an Issue
We use the GitHub issue tracker to track bugs and features. Before submitting a bug report or feature request, check to make sure it hasn't already been submitted. You can indicate support for an existing issuse by voting it up. When submitting a bug report, please include a Gist that includes a stack trace and any details that may be necessary to reproduce the bug, including your gem version, Ruby version, and operating system. Ideally, a bug report should include a pull request with failing specs.
Submitting a Pull Request
- Fork the project.
- Create a topic branch.
- Implement your feature or bug fix.
- Add documentation for your feature or bug fix.
- Run rake doc:yard. If your changes are not 100% documented, go back to step 4.
- Add specs for your feature or bug fix.
- Run rake spec. If your changes are not 100% covered, go back to step 6.
- Commit and push your changes.
- Submit a pull request. Please do not include changes to the gemspec, version, or history file. (If you want to create your own version for some reason, please do so in a separate commit.)
Copyright
Copyright (c) 2013 K$. See LICENSE for details.