Module: Split::Analytics

Included in:
Helper
Defined in:
lib/split/analytics.rb,
lib/split/analytics/version.rb

Constant Summary collapse

VERSION =
'1.0.1'

Instance Method Summary collapse

Instance Method Details

#custom_variablesObject



33
34
35
36
37
38
39
40
41
# File 'lib/split/analytics.rb', line 33

def custom_variables
  return nil if session.nil?
  arr = []

  session.each_with_index do |h, i|
    arr << "_gaq.push([\"_setCustomVar\", #{i + 1}, \"#{h[0]}\", \"#{h[1]}\", 1]);"
  end
  arr.reverse[0..4].reverse.join("\n")
end

#tracking_code(options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/split/analytics.rb', line 5

def tracking_code(options = {})
  # needs more options: http://code.google.com/apis/analytics/docs/gaJS/gaJSApi.html
   = options.delete(:account)
  tracker_url = options.delete(:tracker_url)
  ssl_tracker_url = options.delete(:ssl_tracker_url)
  tracker_methods = options.delete(:tracker_methods)

  tracker_url = 'http://' + (tracker_url || 'www.google-analytics.com/ga.js')
  ssl_tracker_url = 'https://' + (ssl_tracker_url || 'ssl.google-analytics.com/ga.js')

  code = <<-EOF
    <script type="text/javascript">
      var _gaq = _gaq || [];
      _gaq.push(["_setAccount", "#{}"]);
      #{insert_tracker_methods(tracker_methods)}
      #{custom_variables}
      _gaq.push(["_trackPageview"]);
      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = ('https:' == document.location.protocol ? '#{ssl_tracker_url}' : '#{tracker_url}');
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
    </script>
  EOF
  code = raw(code) if defined?(raw)
  code
end