universal-track-manager 0.0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4d4ccaab6ae451754dd8f55acb8f428196a614ab75bc30272e7a85f08a08555b
4
- data.tar.gz: 53ebc16ec88d2ec50ede34e375f4007d4c4e99c2624a46e5012891f69502dc1c
3
+ metadata.gz: d48794e98ac66bd550a5f0bc89582f60b5bb82c439c45f6e3d0a8390826ccf2b
4
+ data.tar.gz: d7d09b5ac92ece9105755d45bb96a122ce3c1c7e71b3f784bc8ee63fbe25d1fe
5
5
  SHA512:
6
- metadata.gz: 982f15f14f329af1fd81095ce5e9d6ce3bd5da1e066c39416f990ba35e5a5f9fd891e07cf039ba1279842347e76e51029a9b32c589643e236156d6c9fcadb38d
7
- data.tar.gz: 74da13c9637440c0aba42968a6778f16683aa0b2b4fc09e26d876a68380e9203b3f15aae0e3ad47d4f1b0f7e486e99c299c0df7cc5293a2cf0788dbf2ef6db3d
6
+ metadata.gz: 4605e21f5e796428900637174281783678d29fa178fb6d328bb66f052669de39a37deffad718fdcbc3331f04656e9d09e26384c7ba4d86feedfba693afc15e51
7
+ data.tar.gz: 12d8bbca72e630abf4753fa8fe5f5bf736db2b0cf2fad35187a4b53a2a272fc5d7aaae06db2f27d840ded2a375824b46aa1abc9b4d10d5849b38a713e28476bf
@@ -59,6 +59,12 @@ module UniversalTrackManagerConcern
59
59
  # existing visit, maybe
60
60
  existing_visit = UniversalTrackManager::Visit.find(session['visit_id'])
61
61
 
62
+ evict_visit!(existing_visit) if any_utm_params? && !existing_visit.matches_all_utms?({utm_campaign: utm_campaign,
63
+ utm_source: utm_source,
64
+ utm_term: utm_term,
65
+ utm_content: utm_content,
66
+ utm_medium: utm_medium})
67
+
62
68
  evict_visit!(existing_visit) if existing_visit.ip_v4_address != ip_address
63
69
  evict_visit!(existing_visit) if existing_visit.browser.name != user_agent
64
70
 
@@ -67,6 +73,13 @@ module UniversalTrackManagerConcern
67
73
  end
68
74
  end
69
75
 
76
+
77
+ def any_utm_params?
78
+ [:utm_campaign, :utm_source, :utm_medium, :utm_term, :utm_content].any? do |key|
79
+ params[key].present?
80
+ end
81
+ end
82
+
70
83
  def find_or_create_browser_by_current
71
84
  browser = UniversalTrackManager::Browser.find_or_create_by(name: user_agent)
72
85
  end
@@ -3,4 +3,22 @@ class UniversalTrackManager::Visit < ActiveRecord::Base
3
3
 
4
4
  belongs_to :campaign, class_name: "UniversalTrackManager::Campaign"
5
5
  belongs_to :browser, class_name: "UniversalTrackManager::Browser"
6
+
7
+
8
+ def matches_all_utms?(params)
9
+ if !campaign
10
+ # this visit has no campaign, which means all UTMs = null
11
+ # if any of the UTMs are present, return false (they don't match null)
12
+ return ! [:utm_campaign, :utm_source, :utm_medium, :utm_term, :utm_content].any? do |key|
13
+ params[key].present?
14
+ end
15
+ end
16
+
17
+ # note params are allowed to be missing
18
+ return campaign.utm_campaign == params[:utm_campaign] &&
19
+ campaign.utm_source == params[:utm_source] &&
20
+ campaign.utm_medium == params[:utm_medium] &&
21
+ campaign.utm_term == params[:utm_term] &&
22
+ campaign.utm_content == params[:utm_content]
23
+ end
6
24
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module UniversalTrackManager
2
- VERSION = "0.0.3"
2
+ VERSION = "0.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universal-track-manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: '0.4'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Fleetwood-Boldt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-12-12 00:00:00.000000000 Z
11
+ date: 2019-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -52,7 +52,8 @@ dependencies:
52
52
  - - ">"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.2'
55
- description: See https://github.com/jasonfb/universal_track_manager
55
+ description: Simple, plug & play visitor tracking by user agent (browser), IP address,
56
+ referrer, and UTM parameters.
56
57
  email: jason.fb@datatravels.com
57
58
  executables: []
58
59
  extensions: []
@@ -94,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
95
  - !ruby/object:Gem::Version
95
96
  version: '0'
96
97
  requirements: []
97
- rubygems_version: 3.0.6
98
+ rubygems_version: 3.0.3
98
99
  signing_key:
99
100
  specification_version: 4
100
101
  summary: A gem to track visitors to your website.