analytical 3.0.9 → 3.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +4 -0
- data/lib/analytical/api.rb +1 -1
- data/lib/analytical/modules/click_tale.rb +2 -2
- data/lib/analytical/modules/google.rb +75 -0
- data/lib/analytical/modules/mixpanel.rb +6 -3
- metadata +4 -4
data/README.rdoc
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
= Analytical
|
2
|
+
{<img src="https://secure.travis-ci.org/jkrall/analytical.png" />}[http://travis-ci.org/jkrall/analytical]
|
2
3
|
|
3
4
|
Gem for managing multiple analytics services in your rails app.
|
4
5
|
|
@@ -17,6 +18,7 @@ Service implementations include:
|
|
17
18
|
* Google Website Optimizer
|
18
19
|
* Performancing
|
19
20
|
* Quantcast[http://www.quantcast.com]
|
21
|
+
* MixPanel[http://www.mixpanel.com]
|
20
22
|
|
21
23
|
== Usage
|
22
24
|
|
@@ -31,6 +33,8 @@ Add a configuration file (config/analytical.yml) to declare your API keys, like
|
|
31
33
|
key: UA-5555555-5
|
32
34
|
clicky:
|
33
35
|
key: 55555
|
36
|
+
development:
|
37
|
+
test:
|
34
38
|
|
35
39
|
You can add different configurations for different environments.
|
36
40
|
|
data/lib/analytical/api.rb
CHANGED
@@ -73,7 +73,7 @@ module Analytical
|
|
73
73
|
]
|
74
74
|
|
75
75
|
if options[:javascript_helpers]
|
76
|
-
if ::Rails::VERSION
|
76
|
+
if ::Rails::VERSION::STRING.to_i >= 3.1 # Rails 3.1 lets us override views in engines
|
77
77
|
js << options[:controller].send(:render_to_string, :partial=>'analytical_javascript') if options[:controller]
|
78
78
|
else # All other rails
|
79
79
|
_partial_path = Pathname.new(__FILE__).dirname.join('..', '..', 'app/views/application', '_analytical_javascript.html.erb').to_s
|
@@ -33,7 +33,7 @@ module Analytical
|
|
33
33
|
</script>
|
34
34
|
<script type="text/javascript">
|
35
35
|
var ClickTaleSSL=1;
|
36
|
-
if(typeof ClickTale=='function') ClickTale(#{@options[:project_id]},#{@options[:site_traffic]}
|
36
|
+
if(typeof ClickTale=='function') ClickTale(#{@options[:project_id]},#{@options[:site_traffic]},\"#{@options[:www_param] || 'www'}\");
|
37
37
|
</script>
|
38
38
|
<!-- ClickTale end of Bottom part -->
|
39
39
|
HTML
|
@@ -44,4 +44,4 @@ module Analytical
|
|
44
44
|
|
45
45
|
end
|
46
46
|
end
|
47
|
-
end
|
47
|
+
end
|
@@ -40,6 +40,81 @@ module Analytical
|
|
40
40
|
"_gaq.push(['_trackEvent', \"Event\", \"#{name}\"" + data_string + "]);"
|
41
41
|
end
|
42
42
|
|
43
|
+
def custom_event(category, action, opt_label=nil, opt_value=nil)
|
44
|
+
args = [category, action, opt_label, opt_value].compact
|
45
|
+
"_gaq.push(" + [ "_trackEvent", *args].to_json + ");"
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
# http://code.google.com/apis/analytics/docs/tracking/gaTrackingCustomVariables.html
|
50
|
+
#
|
51
|
+
#_setCustomVar(index, name, value, opt_scope)
|
52
|
+
#
|
53
|
+
# index — The slot for the custom variable. Required. This is a number whose value can range from 1 - 5, inclusive.
|
54
|
+
#
|
55
|
+
# name — The name for the custom variable. Required. This is a string that identifies the custom variable and appears in the top-level Custom Variables report of the Analytics reports.
|
56
|
+
#
|
57
|
+
# value — The value for the custom variable. Required. This is a string that is paired with a name.
|
58
|
+
#
|
59
|
+
# opt_scope — The scope for the custom variable. Optional. As described above, the scope defines the level of user engagement with your site.
|
60
|
+
# It is a number whose possible values are 1 (visitor-level), 2 (session-level), or 3 (page-level).
|
61
|
+
# When left undefined, the custom variable scope defaults to page-level interaction.
|
62
|
+
def set(data)
|
63
|
+
if data.is_a?(Hash) && data.keys.any?
|
64
|
+
index = data[:index].to_i
|
65
|
+
name = data[:name ]
|
66
|
+
value = data[:value]
|
67
|
+
scope = data[:scope]
|
68
|
+
if (1..5).to_a.include?(index) && !name.nil? && !value.nil?
|
69
|
+
data = "#{index}, '#{name}', '#{value}'"
|
70
|
+
data += (1..3).to_a.include?(scope) ? ", #{scope}" : ""
|
71
|
+
return "_gaq.push(['_setCustomVar', #{ data }]);"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
# http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._addTrans
|
77
|
+
# String orderId Required. Internal unique order id number for this transaction.
|
78
|
+
# String affiliation Optional. Partner or store affiliation (undefined if absent).
|
79
|
+
# String total Required. Total dollar amount of the transaction.
|
80
|
+
# String tax Optional. Tax amount of the transaction.
|
81
|
+
# String shipping Optional. Shipping charge for the transaction.
|
82
|
+
# String city Optional. City to associate with transaction.
|
83
|
+
# String state Optional. State to associate with transaction.
|
84
|
+
# String country Optional. Country to associate with transaction.
|
85
|
+
def add_trans(order_id, affiliation=nil, total=nil, tax=nil, shipping=nil, city=nil, state=nil, country=nil)
|
86
|
+
data = []
|
87
|
+
data << "'#{order_id}'"
|
88
|
+
data << "'#{affiliation}'"
|
89
|
+
data << "'#{total}'"
|
90
|
+
data << "'#{tax}'"
|
91
|
+
data << "'#{shipping}'"
|
92
|
+
data << "'#{city}'"
|
93
|
+
data << "'#{state}'"
|
94
|
+
data << "'#{country}'"
|
95
|
+
|
96
|
+
"_gaq.push(['_addTrans', #{data.join(', ')}]);"
|
97
|
+
end
|
98
|
+
|
99
|
+
# http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._addItem
|
100
|
+
# String orderId Optional Order ID of the transaction to associate with item.
|
101
|
+
# String sku Required. Item's SKU code.
|
102
|
+
# String name Required. Product name. Required to see data in the product detail report.
|
103
|
+
# String category Optional. Product category.
|
104
|
+
# String price Required. Product price.
|
105
|
+
# String quantity Required. Purchase quantity.
|
106
|
+
def add_item(order_id, sku, name, category, price, quantity)
|
107
|
+
data = "'#{order_id}', '#{sku}', '#{name}', '#{category}', '#{price}', '#{quantity}'"
|
108
|
+
"_gaq.push(['_addItem', #{data}]);"
|
109
|
+
end
|
110
|
+
|
111
|
+
# http://code.google.com/apis/analytics/docs/gaJS/gaJSApiEcommerce.html#_gat.GA_Tracker_._trackTrans
|
112
|
+
# Sends both the transaction and item data to the Google Analytics server.
|
113
|
+
# This method should be used in conjunction with the add_item and add_trans methods.
|
114
|
+
def track_trans
|
115
|
+
"_gaq.push(['_trackTrans']);"
|
116
|
+
end
|
117
|
+
|
43
118
|
end
|
44
119
|
end
|
45
120
|
end
|
@@ -28,7 +28,7 @@ module Analytical
|
|
28
28
|
|
29
29
|
def track(event, properties = {})
|
30
30
|
callback = properties.delete(:callback) || "function(){}"
|
31
|
-
|
31
|
+
%(mpmetrics.track("#{event}", #{properties.to_json}, #{callback});)
|
32
32
|
end
|
33
33
|
|
34
34
|
# Used to set "Super Properties" - http://mixpanel.com/api/docs/guides/super-properties
|
@@ -37,11 +37,14 @@ module Analytical
|
|
37
37
|
end
|
38
38
|
|
39
39
|
def identify(id, *args)
|
40
|
-
|
40
|
+
opts = args.first || {}
|
41
|
+
name = opts.is_a?(Hash) ? opts[:name] : ""
|
42
|
+
name_str = name.blank? ? "" : " mpmetrics.name_tag('#{name}');"
|
43
|
+
%(mpmetrics.identify('#{id}');#{name_str})
|
41
44
|
end
|
42
45
|
|
43
46
|
def event(name, attributes = {})
|
44
|
-
|
47
|
+
%(mpmetrics.track("#{name}", #{attributes.to_json});)
|
45
48
|
end
|
46
49
|
|
47
50
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: analytical
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 11
|
10
|
+
version: 3.0.11
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Joshua Krall
|
@@ -22,7 +22,7 @@ autorequire:
|
|
22
22
|
bindir: bin
|
23
23
|
cert_chain: []
|
24
24
|
|
25
|
-
date:
|
25
|
+
date: 2012-01-22 00:00:00 -06:00
|
26
26
|
default_executable:
|
27
27
|
dependencies:
|
28
28
|
- !ruby/object:Gem::Dependency
|