rack-google-analytics 0.12.0 → 0.13.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/kangguru/rack-google-analytics.png?branch=master)](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: []
|