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 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
 
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class GoogleAnalytics
3
- VERSION = '0.12.0'
3
+ VERSION = '0.13.0'
4
4
  end
5
5
  end
@@ -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.12.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-08-09 00:00:00.000000000 Z
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.1
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.1
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.3
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.3
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.0
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.0
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.4
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.4
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: 1.8.25
151
+ rubygems_version: 2.0.6
174
152
  signing_key:
175
- specification_version: 3
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: []
data/lib/rack/version.rb DELETED
@@ -1,5 +0,0 @@
1
- module Rack
2
- class GoogleAnalytics
3
- VERSION = '0.12.0'
4
- end
5
- end