Class: Landable::Traffic::UserTracker

Inherits:
Tracker
  • Object
show all
Defined in:
lib/landable/traffic/user_tracker.rb

Constant Summary

Constants inherited from Tracker

Tracker::ATTRIBUTION_KEYS, Tracker::KEYS, Tracker::TRACKING_KEYS, Tracker::TRACKING_PARAMS, Tracker::TRACKING_PARAMS_TRANSFORM, Tracker::UUID_REGEX, Tracker::UUID_REGEX_V4

Instance Attribute Summary

Attributes inherited from Tracker

#controller

Instance Method Summary collapse

Methods inherited from Tracker

#create_event, for, #initialize, #landing_path, #visitor_id

Constructor Details

This class inherits a constructor from Landable::Traffic::Tracker

Instance Method Details

#identify(identifier) ⇒ Object



54
55
56
57
58
59
60
61
62
# File 'lib/landable/traffic/user_tracker.rb', line 54

def identify(identifier)
  visit = Visit.find(@visit_id)
  owner = Owner.where(owner: identifier).first_or_create

  visit.owner = owner
  visit.save!

  Ownership.where(cookie_id: @cookie_id, owner: owner).first_or_create
end

#loadObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/landable/traffic/user_tracker.rb', line 10

def load
  hash = session[:landable] || {}

  @cookie_id        = cookies[:landable]

  @visit_id         = hash[KEYS[:visit_id]]
  @last_visit_time  = hash[KEYS[:visit_time]]
  @visitor_id       = hash[KEYS[:visitor_id]]
  @visitor_hash     = hash[KEYS[:visitor_hash]]
  @attribution_hash = hash[KEYS[:attribution_hash]]
  @referer_hash     = hash[KEYS[:referer_hash]]
end

#record_page_viewObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/landable/traffic/user_tracker.rb', line 23

def record_page_view
  PageView.create do |p|
    p.http_method  = request.method
    p.mime_type    = request.format.to_s
    p.path         = request.path
    p.query_string = untracked_parameters.to_query
    p.request_id   = request.uuid

    p.click_id     = tracking_parameters["click_id"]

    p.http_status  = response.status

    p.visit_id     = @visit_id

    p.response_time = ( Time.now - @start_time ) * 1000
  end
end

#saveObject



41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/landable/traffic/user_tracker.rb', line 41

def save
  record_page_view

  session[:landable] = {
    KEYS[:visit_id]         => @visit_id,
    KEYS[:visit_time]       => Time.current,
    KEYS[:visitor_id]       => @visitor_id,
    KEYS[:visitor_hash]     => visitor_hash,
    KEYS[:attribution_hash] => attribution? ? attribution_hash : @attribution_hash,
    KEYS[:referer_hash]     => referer_changed? ? referer_hash : @referer_hash
  }
end

#trackObject



4
5
6
7
8
# File 'lib/landable/traffic/user_tracker.rb', line 4

def track
  load
  cookie
  record_visit
end