universal-track-manager 0.0.3 → 0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d48794e98ac66bd550a5f0bc89582f60b5bb82c439c45f6e3d0a8390826ccf2b
|
4
|
+
data.tar.gz: d7d09b5ac92ece9105755d45bb96a122ce3c1c7e71b3f784bc8ee63fbe25d1fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
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.
|
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-
|
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:
|
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.
|
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.
|