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:
|
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.
|