Project

gabba-gmp

0.0
No commit activity in last 3 years
No release in over 3 years
Google Measurement Protocol rewite of the Gabba library
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 10.1.0
~> 2.14.1
~> 1.13.0

Runtime

 Project Readme

Gabba-GMP

Gem Version Codeship Status for fuzzyjulz/gabba-gmp

Simple class to send custom server-side events to Google Analytics via Google Measurement Protocol https://developers.google.com/analytics/devguides/collection/protocol/v1/

Refactored from the gabba project.

Examples

Track page views

gabba = GabbaGMP::GabbaGMP.new("UT-1234", request, cookies)

gabba.page_view(request)

You can also include the page title:

gabba.page_view(request, "Page Title")

Or if you want to get really fancy you can update the parameters for this page view only...

gabba.page_view(request, "Page Title", document_path: "/manually/fiddled/url")

Track custom events

gabba = GabbaGMP::GabbaGMP.new("UT-1234", request, cookies)

gabba.event("Videos", "Play", "ID", "123")

Setting custom vars

# Index: 1 through 200 (for pro or 20 for free)
index = 1

gabba.set_custom_var(index, 'Name', 'Value')

# Track the event (all vars will be included)
gabba.event(...)

# Track the page view (all vars will be included)
gabba.page_view(...)

Campaigns

It's easy to track campaigns! You can either use the GabbaGMP campaign object or your own(assuming it has the magic fields)!

Note that you can also send in nil into campaigns, and it will still work... one less check to do!

campaign = GabbaGMP::Campaign()

campaign.name = "GabbaCMP"
campaign.source = "gemfile"
campaign.medium = "email"
campaign.keyword = nil
campaign.content = "gems"

gabba.campaign = campaign

Manually setting parameters

If you find that you absolutely must override variables that are used internally then you can override the session parameters:

gabba = GabbaGMP::GabbaGMP.new("UT-1234", request, cookies)

#Manually override the user agent so that we can detect local calls in GA! 
gabba.add_options(user_agent: "LocalUse") if request.remote_ip == "127.0.0.1"

#This pageview has the new user agent! (if you are accessing from localhost)
gabba.page_view(request)

#This event also has the user agent! Easy as!
gabba.event("Videos", "Play", "ID", "123")

Parameters that may be set

protocol_version:

tracking_id:

client_id:

user_id:

user_ip_address:

user_agent:

user_language:

hit_type:

document_title:

document_path:

document_referrer:

document_host:

event_category:

event_action:

event_label:

event_value:

campaign_name:

campaign_source:

campaign_medium:

campaign_keyword:

campaign_content:

dimension_[1-200]:

Untested

user_screen_resolution:

user_viewport_size:

user_screen_colors:

License

Gabba is released under the MIT License.