rack-google-analytics 0.12.0 → 0.13.0
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 +7 -0
- data/README.md +5 -0
- data/lib/rack/google-analytics/version.rb +1 -1
- data/lib/rack/google-analytics.rb +4 -4
- data/lib/rack/templates/async.erb +9 -1
- metadata +23 -45
- data/lib/rack/version.rb +0 -5
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 840b08567f04293f2ed02bb2dfc92c641e5e8a3e
|
4
|
+
data.tar.gz: 1f634376e3d0b0383867e8526f69ca0594cb640a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c613036c7f762929586faaa4e9428943d6f7e3b59440f3cfa8f4f022db2b19fafea29fc24ea9bf4d710998376268e2d766b0c29b53f86d3168f4422a9c9f41f5
|
7
|
+
data.tar.gz: 3eb443013c95612cc8e8cd7b6697d8b888d2ebcfc50ea5b4724d4ea9bdd507b82ac6c736143cebe3c80e9b681bef41d5105853ec947a8de2da17124a9ecac758
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Rack google Analytics
|
2
2
|
|
3
|
+
[](https://travis-ci.org/kangguru/rack-google-analytics)
|
4
|
+
|
3
5
|
Simple Rack middleware to help injecting the Google Analytics tracking code in your website.
|
4
6
|
|
5
7
|
This middleware injects either the synchronous or asynchronous Google Analytics tracking code into the correct place of any request only when the response's `Content-Type` header contains `html` (therefore `text/html` and similar).
|
@@ -45,9 +47,12 @@ config.middleware.use Rack::GoogleAnalytics, :tracker => 'UA-xxxxxx-x'
|
|
45
47
|
|
46
48
|
* `:async` - sets to use asynchronous tracker
|
47
49
|
* `:multiple` - sets track for multiple subdomains. (must also set :domain)
|
50
|
+
* `:domain` - sets the domain name for the GATC cookies. Defaults to `auto`. (must also set :multiple)
|
48
51
|
* `:top_level` - sets tracker for multiple top-level domains. (must also set :domain)
|
49
52
|
* `:anonymize_ip` - sets the tracker to remove the last octet from all IP addresses, see https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApi_gat?hl=de#_gat._anonymizeIp for details.
|
50
53
|
* `:site_speed_sample_rate` - Defines a new sample set size for Site Speed data collection, see https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiBasicConfiguration?hl=de#_gat.GA_Tracker_._setSiteSpeedSampleRate
|
54
|
+
* `:adjusted_bounce_rate_timeouts` - An array of times in seconds that the tracker will use to set
|
55
|
+
timeouts for adjusted bounce rate tracking. See http://analytics.blogspot.ca/2012/07/tracking-adjusted-bounce-rate-in-google.html for details.
|
51
56
|
|
52
57
|
Note: since 0.2.0 this will use the asynchronous Google Analytics tracking code, for the traditional behaviour please use:
|
53
58
|
|
@@ -6,8 +6,8 @@ module Rack
|
|
6
6
|
class GoogleAnalytics
|
7
7
|
|
8
8
|
EVENT_TRACKING_KEY = "google_analytics.event_tracking"
|
9
|
-
|
10
|
-
DEFAULT = { :async => true }
|
9
|
+
|
10
|
+
DEFAULT = { :async => true, :advertising => false }
|
11
11
|
|
12
12
|
def initialize(app, options = {})
|
13
13
|
raise ArgumentError, "Tracker must be set!" unless options[:tracker] and !options[:tracker].empty?
|
@@ -30,14 +30,14 @@ module Rack
|
|
30
30
|
session = env["rack.session"]
|
31
31
|
stored_events = session.delete(EVENT_TRACKING_KEY) if session
|
32
32
|
@options[:tracker_vars] += stored_events unless stored_events.nil?
|
33
|
-
elsif response.redirection?
|
33
|
+
elsif response.redirection? && env["rack.session"]
|
34
34
|
# Store the events until next time
|
35
35
|
env["rack.session"][EVENT_TRACKING_KEY] = env[EVENT_TRACKING_KEY]
|
36
36
|
end
|
37
37
|
|
38
38
|
@body.each { |fragment| response.write inject(fragment) }
|
39
39
|
@body.close if @body.respond_to?(:close)
|
40
|
-
|
40
|
+
|
41
41
|
response.finish
|
42
42
|
end
|
43
43
|
|
@@ -23,12 +23,20 @@
|
|
23
23
|
<% end
|
24
24
|
end
|
25
25
|
%>
|
26
|
+
<% if @options[:adjusted_bounce_rate_timeouts] %>
|
27
|
+
<% @options[:adjusted_bounce_rate_timeouts].each do |timeout| %>
|
28
|
+
setTimeout("_gaq.push(['_trackEvent', <%= "#{timeout.to_s}_seconds" %>, 'read'])",<%= timeout*1000 %>);
|
29
|
+
<% end %>
|
30
|
+
<% end %>
|
26
31
|
_gaq.push(['_trackPageview']);
|
27
32
|
|
28
33
|
(function() {
|
29
34
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
35
|
+
<% if @options[:advertising] %>
|
36
|
+
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
|
37
|
+
<% else %>
|
30
38
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
39
|
+
<% end %>
|
31
40
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
32
41
|
})();
|
33
|
-
|
34
42
|
</script>
|
metadata
CHANGED
@@ -1,128 +1,113 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-google-analytics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.13.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Lee Hambley
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-12-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: actionpack
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: activesupport
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: test-unit
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: 2.5
|
61
|
+
version: '2.5'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: 2.5
|
68
|
+
version: '2.5'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: shoulda
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: 2.11
|
75
|
+
version: '2.11'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: 2.11
|
82
|
+
version: '2.11'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rack
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
101
|
-
version: 1.2
|
89
|
+
version: '1.2'
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.2
|
96
|
+
version: '1.2'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: rack-test
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.5
|
103
|
+
version: '0.5'
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
125
|
-
version: 0.5
|
110
|
+
version: '0.5'
|
126
111
|
description: Simple Rack middleware for implementing google analytics tracking in
|
127
112
|
your Ruby-Rack based project. Supports synchronous and asynchronous insertion and
|
128
113
|
configurable load options.
|
@@ -137,7 +122,6 @@ files:
|
|
137
122
|
- lib/rack/google-analytics.rb
|
138
123
|
- lib/rack/templates/async.erb
|
139
124
|
- lib/rack/templates/sync.erb
|
140
|
-
- lib/rack/version.rb
|
141
125
|
- lib/rack-google-analytics.rb
|
142
126
|
- lib/tracking/custom_var.rb
|
143
127
|
- lib/tracking/event.rb
|
@@ -145,34 +129,28 @@ files:
|
|
145
129
|
- README.md
|
146
130
|
- LICENSE
|
147
131
|
homepage: https://github.com/leehambley/rack-google-analytics
|
148
|
-
licenses:
|
132
|
+
licenses:
|
133
|
+
- MIT
|
134
|
+
metadata: {}
|
149
135
|
post_install_message:
|
150
136
|
rdoc_options: []
|
151
137
|
require_paths:
|
152
138
|
- lib
|
153
139
|
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
-
none: false
|
155
140
|
requirements:
|
156
|
-
- -
|
141
|
+
- - '>='
|
157
142
|
- !ruby/object:Gem::Version
|
158
143
|
version: '0'
|
159
|
-
segments:
|
160
|
-
- 0
|
161
|
-
hash: 4292920950575174798
|
162
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
145
|
requirements:
|
165
|
-
- -
|
146
|
+
- - '>='
|
166
147
|
- !ruby/object:Gem::Version
|
167
148
|
version: '0'
|
168
|
-
segments:
|
169
|
-
- 0
|
170
|
-
hash: 4292920950575174798
|
171
149
|
requirements: []
|
172
150
|
rubyforge_project:
|
173
|
-
rubygems_version:
|
151
|
+
rubygems_version: 2.0.6
|
174
152
|
signing_key:
|
175
|
-
specification_version:
|
153
|
+
specification_version: 4
|
176
154
|
summary: Rack middleware to inject the Google Analytics tracking code into outgoing
|
177
155
|
responses.
|
178
156
|
test_files: []
|