rack-tracker 0.4.2 → 1.0.0

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
  SHA1:
3
- metadata.gz: 439bc456139f78c2841496ef797246f9ba2921e7
4
- data.tar.gz: b65c2cae25d00f858155af8279e0ee081752bb36
3
+ metadata.gz: 7565da578c5c506a95014ea972db7008e870e034
4
+ data.tar.gz: 4a735adf525fe516133d7c807472cc338d8b106b
5
5
  SHA512:
6
- metadata.gz: b37b815033999eddcab5d748801ff3c93c3dca1c9de4dc1c8017656361c298c6f25476200103a37d0cc67d17f3cfc0d566f0671d44f2e41708e4f9711a9bc284
7
- data.tar.gz: b3bd8ffc880617db5beb76b019f7fb239d4552be2a618d01f3834c5a73a155fda784ae5d74755615908d455ad48ce17d6af3457039428f6b202c8767ff2dbbea
6
+ metadata.gz: edae2548f40570b3068c4bcc9323fc869465add3be35d3fe856556a4702af888d1ebec860e9644e1df519b2bcc973d322accddb53bc23b5fc0712ef7d49d0930
7
+ data.tar.gz: cbfc180230a44535c9d40c48fe82c7f9e4300f68ece15849dacc5789f46f348ccf497da7eaba24173d5d3567247579153ef85b89cb95c206934a1ab53fa97423
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 1.0.0
2
+
3
+ * [BUGFIX] breaking API change: set zanox path extension #45 (thx @berlintam)
4
+ * [BUGFIX] Fix Google Analytics pageview command arguments #44 (thx @remiprev)
5
+
1
6
  # 0.4.2
2
7
 
3
8
  * [BUGFIX] proper page track when used with turbolink #40 (thx @remiprev @musaffa)
data/README.md CHANGED
@@ -407,7 +407,7 @@ This is an example of a lead event:
407
407
  ```
408
408
  def show
409
409
  tracker do |t|
410
- t.zanox :track, { order_i_d: 'DEFC-4321'}
410
+ t.zanox :lead, { order_i_d: 'DEFC-4321' }
411
411
  end
412
412
  end
413
413
  ```
@@ -417,7 +417,7 @@ This is an example of a sale event:
417
417
  ```
418
418
  def show
419
419
  tracker do |t|
420
- t.zanox :track, { customer_i_d: '123456', order_i_d: 'DEFC-4321', currency_symbol: 'EUR', total_price: '150.00'}
420
+ t.zanox :sale, { customer_i_d: '123456', order_i_d: 'DEFC-4321', currency_symbol: 'EUR', total_price: '150.00' }
421
421
  end
422
422
  end
423
423
  ```
@@ -36,6 +36,6 @@
36
36
  ga('ecommerce:send');
37
37
  <% end %>
38
38
  <% if tracker %>
39
- ga('send', 'pageview', {'location': window.location.href});
39
+ ga('send', 'pageview', window.location.pathname + window.location.search);
40
40
  <% end %>
41
41
  </script>
@@ -1,5 +1,5 @@
1
1
  module Rack
2
2
  class Tracker
3
- VERSION = '0.4.2'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
@@ -14,13 +14,27 @@
14
14
 
15
15
  <% end %>
16
16
 
17
- <% tracking_events.each do |event| %>
18
17
 
19
- <script type="text/javascript" src="https://ad.zanox.com/ppl/?<%= options[:account_id] %>&mode=[[1]]&<%= event.write %>">
20
- </script>
18
+ <% sale_events.each do |event| %>
19
+
20
+ <script type="text/javascript" src="https://ad.zanox.com/pps/?<%= options[:account_id] %>&mode=[[1]]&<%= event.write %>">
21
+ </script>
22
+
23
+ <noscript>
24
+ <img src="https://ad.zanox.com/pps/?<%= options[:account_id] %>&mode=[[2]]&<%= event.write %>" width="1" height="1" />
25
+ </noscript>
26
+
27
+ <% end %>
21
28
 
22
- <noscript>
23
- <img src="https://ad.zanox.com/ppl/?<%= options[:account_id] %>&mode=[[2]]&<%= event.write %>" width="1" height="1" />
24
- </noscript>
29
+
30
+ <% lead_events.each do |event| %>
31
+
32
+ <script type="text/javascript" src="https://ad.zanox.com/ppl/?<%= options[:account_id] %>&mode=[[1]]&<%= event.write %>">
33
+ </script>
34
+
35
+ <noscript>
36
+ <img src="https://ad.zanox.com/ppl/?<%= options[:account_id] %>&mode=[[2]]&<%= event.write %>" width="1" height="1" />
37
+ </noscript>
25
38
 
26
39
  <% end %>
40
+
@@ -5,8 +5,17 @@ class Rack::Tracker::Zanox < Rack::Tracker::Handler
5
5
  class Mastertag < OpenStruct
6
6
  end
7
7
 
8
- class Track < OpenStruct
8
+ class Lead < OpenStruct
9
9
  # Example: OrderID=[[DEFC-4321]]&CurrencySymbol=[[EUR]]&TotalPrice=[[23.40]]
10
+
11
+ def write
12
+ to_h.map do |k,v|
13
+ "#{k.to_s.camelize}=[[#{v}]]"
14
+ end.join('&')
15
+ end
16
+ end
17
+
18
+ class Sale < OpenStruct
10
19
  def write
11
20
  to_h.map do |k,v|
12
21
  "#{k.to_s.camelize}=[[#{v}]]"
@@ -22,8 +31,12 @@ class Rack::Tracker::Zanox < Rack::Tracker::Handler
22
31
  events.select{ |event| event.class.to_s.demodulize == 'Mastertag' }.first
23
32
  end
24
33
 
25
- def tracking_events
26
- events.select{ |event| event.class.to_s.demodulize == 'Track' }
34
+ def lead_events
35
+ events.select{ |event| event.class.to_s.demodulize == 'Lead' }
36
+ end
37
+
38
+ def sale_events
39
+ events.select{ |event| event.class.to_s.demodulize == 'Sale' }
27
40
  end
28
41
 
29
42
  def render
@@ -194,7 +194,7 @@ RSpec.describe Rack::Tracker::GoogleAnalytics do
194
194
 
195
195
  it "will show asyncronous tracker with cookieDomain" do
196
196
  expect(subject).to match(%r{ga\('create', 'somebody', {\"cookieDomain\":\"railslabs.com\"}\)})
197
- expect(subject).to match(%r{ga\('send', 'pageview', {'location': window.location.href}\)})
197
+ expect(subject).to match(%r{ga\('send', 'pageview', window\.location\.pathname \+ window\.location\.search\)})
198
198
  end
199
199
  end
200
200
 
@@ -203,7 +203,7 @@ RSpec.describe Rack::Tracker::GoogleAnalytics do
203
203
 
204
204
  it "will show asyncronous tracker with userId" do
205
205
  expect(subject).to match(%r{ga\('create', 'somebody', {\"userId\":\"123\"}\)})
206
- expect(subject).to match(%r{ga\('send', 'pageview', {'location': window.location.href}\)})
206
+ expect(subject).to match(%r{ga\('send', 'pageview', window\.location\.pathname \+ window\.location\.search\)})
207
207
  end
208
208
  end
209
209
 
@@ -1,6 +1,6 @@
1
1
  RSpec.describe Rack::Tracker::Zanox do
2
2
 
3
- describe Rack::Tracker::Zanox::Track do
3
+ describe Rack::Tracker::Zanox::Sale do
4
4
 
5
5
  subject { described_class.new(order_i_d: 'DEFC-4321', currency_symbol: 'EUR', total_price: '150.00') }
6
6
 
@@ -18,7 +18,7 @@ RSpec.describe Rack::Tracker::Zanox do
18
18
  expect(described_class.new(env).position).to eq(:body)
19
19
  end
20
20
 
21
- describe '#render a sale #tracking_event' do
21
+ describe '#render #sale_events' do
22
22
  context 'with events' do
23
23
  let(:env) {
24
24
  {
@@ -30,7 +30,7 @@ RSpec.describe Rack::Tracker::Zanox do
30
30
  'OrderId' => 'DEFC-4321',
31
31
  'CurrencySymbol' => 'EUR',
32
32
  'TotalPrice' => '150.00',
33
- 'class_name' => 'Track'
33
+ 'class_name' => 'Sale',
34
34
  }
35
35
  ]
36
36
  }
@@ -41,12 +41,12 @@ RSpec.describe Rack::Tracker::Zanox do
41
41
  let(:options) { { account_id: '123456H123456' } }
42
42
 
43
43
  it 'will display the correct tracking events' do
44
- expect(subject).to include "https://ad.zanox.com/ppl/?123456H123456&mode=[[1]]&CustomerID=[[123456]]&OrderId=[[DEFC-4321]]&CurrencySymbol=[[EUR]]&TotalPrice=[[150.00]]"
44
+ expect(subject).to include "https://ad.zanox.com/pps/?123456H123456&mode=[[1]]&CustomerID=[[123456]]&OrderId=[[DEFC-4321]]&CurrencySymbol=[[EUR]]&TotalPrice=[[150.00]]"
45
45
  end
46
46
  end
47
47
  end
48
48
 
49
- describe '#render a lead #tracking_event' do
49
+ describe '#render #lead_events' do
50
50
  context 'with events' do
51
51
  let(:env) {
52
52
  {
@@ -55,7 +55,7 @@ RSpec.describe Rack::Tracker::Zanox do
55
55
  [
56
56
  {
57
57
  'OrderId' => 'DEFC-4321',
58
- 'class_name' => 'Track'
58
+ 'class_name' => 'Lead'
59
59
  }
60
60
  ]
61
61
  }
@@ -16,10 +16,11 @@ RSpec.describe "Zanox Integration" do
16
16
  expect(page.find("body")).to have_content "window._zx.push({\"id\": \"blurg567\"});"
17
17
  end
18
18
 
19
- it 'should include the track event' do
20
- expect(page).to have_xpath "//script[contains(@src,'12345H123456789&mode=[[1]]&CustomerID=[[123456]]&OrderID=[[DEFC-4321]]&CurrencySymbol=[[EUR]]&TotalPrice=[[150.00]]')]"
19
+ it 'should include the sale event' do
20
+ expect(page).to have_xpath "//script[contains(@src,'pps/?12345H123456789&mode=[[1]]&CustomerID=[[123456]]&OrderID=[[DEFC-4321]]&CurrencySymbol=[[EUR]]&TotalPrice=[[150.00]]')]"
21
21
  end
22
- end
23
-
24
-
25
22
 
23
+ it 'should include the lead event' do
24
+ expect(page).to have_xpath "//script[contains(@src,'ppl/?12345H123456789&mode=[[1]]&CustomerID=[[654321]]')]"
25
+ end
26
+ end
@@ -78,7 +78,8 @@ class MetalController < ActionController::Metal
78
78
  def zanox
79
79
  tracker do |t|
80
80
  t.zanox :mastertag, { id: 'blurg567'}
81
- t.zanox :track, { customer_i_d: '123456', order_i_d: 'DEFC-4321', currency_symbol: 'EUR', total_price: '150.00'}
81
+ t.zanox :sale, { customer_i_d: '123456', order_i_d: 'DEFC-4321', currency_symbol: 'EUR', total_price: '150.00' }
82
+ t.zanox :lead, { customer_i_d: '654321' }
82
83
  end
83
84
  render 'metal/index'
84
85
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-tracker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lars Brillert
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-06-10 00:00:00.000000000 Z
12
+ date: 2015-07-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
@@ -228,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  version: '0'
229
229
  requirements: []
230
230
  rubyforge_project:
231
- rubygems_version: 2.4.5
231
+ rubygems_version: 2.2.2
232
232
  signing_key:
233
233
  specification_version: 4
234
234
  summary: Tracking made easy