Class: Rack::Tracker::Criteo

Inherits:
Handler
  • Object
show all
Defined in:
lib/rack/tracker/criteo/criteo.rb

Defined Under Namespace

Classes: Event

Constant Summary collapse

TRACKER_EVENTS =
{
  # event name => event key name, e.g. { event: 'setSiteType', type: '' }
  set_site_type: :type,
  set_account: :account,
  set_customer_id: :id,
  set_email: :email
}

Constants included from JavaScriptHelper

JavaScriptHelper::JS_ESCAPE_MAP

Instance Attribute Summary

Attributes inherited from Handler

#env, #options

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Handler

#dnt_header_opt_out?, #events, #handler_name, #initialize, #inject, process_track, #render, #tracker_options, #write_event

Methods included from JavaScriptHelper

#escape_javascript

Constructor Details

This class inherits a constructor from Rack::Tracker::Handler

Class Method Details

.track(name, event_name, event_args = {}) ⇒ Object



30
31
32
# File 'lib/rack/tracker/criteo/criteo.rb', line 30

def self.track(name, event_name, event_args = {})
  { name.to_s => [{ 'class_name' => 'Event', 'event' => event_name.to_s.camelize(:lower) }.merge(event_args)] }
end

Instance Method Details

#tracker_eventsObject

global events (setSiteType, setAccount, …) for each tracker instance



20
21
22
23
24
25
26
27
28
# File 'lib/rack/tracker/criteo/criteo.rb', line 20

def tracker_events
  @tracker_events ||= [].tap do |tracker_events|
    options.slice(*TRACKER_EVENTS.keys).each do |key, value|
      if option_value = value.respond_to?(:call) ? value.call(env) : value
        tracker_events << Event.new(:event => "#{key}".camelize(:lower),  TRACKER_EVENTS[key] => "#{option_value}")
      end
    end
  end
end