Class: GAEvents

Inherits:
Object
  • Object
show all
Defined in:
lib/gaevents.rb,
lib/gaevents/event.rb

Defined Under Namespace

Classes: Event

Constant Summary collapse

BULK_URI =
'https://www.google-analytics.com/batch'.freeze
COLLECT_URI =
'https://www.google-analytics.com/batch'.freeze

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.api_keyObject

Returns the value of attribute api_key.



10
11
12
# File 'lib/gaevents.rb', line 10

def api_key
  @api_key
end

Class Method Details

.send_event(event) ⇒ Object



12
13
14
15
# File 'lib/gaevents.rb', line 12

def send_event(event)
	resource = RestClient::Resource.new COLLECT_URI
	resource.post(track_body([event]), {:content_type => 'text/plain'})
end

.track(*events) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/gaevents.rb', line 17

def track(*events)
	# as per GA: A maximum of 20 hits can be specified per request
	# https://developers.google.com/analytics/devguides/collection/protocol/v1/devguide#batch
	res = []
	events.each_slice(20) { |_events|
		resource = RestClient::Resource.new BULK_URI
		res << resource.post(track_body(_events.compact), {:content_type => 'text/plain'})
	}
	res
end

.track_body(*events) ⇒ Object



28
29
30
# File 'lib/gaevents.rb', line 28

def track_body(*events)
	events.flatten.map { |_event| _event.payload(api_key) }.join("\n")
end