Skip to content

Instantly share code, notes, and snippets.

@dbarison
Created December 14, 2011 14:18
Show Gist options
  • Save dbarison/1476750 to your computer and use it in GitHub Desktop.
Save dbarison/1476750 to your computer and use it in GitHub Desktop.
Google analyitics intelligence for ecommerce
- if controller.controller_name == 'orders' && controller.action_name == 'show'
- items = []
- @order.cart.line_items.each do |line_item|
- items << "_gaq.push(['_addItem',
'#{escape_javascript(@order.code)}',
'#{escape_javascript(line_item.product.code)}',
'#{escape_javascript(line_item.name)}',
'#{escape_javascript(line_item.product.category.name)}',
'#{escape_javascript(line_item.selling_price.to_s)}',
'#{escape_javascript(line_item.quantity.to_s)}']);"
:javascript
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '#{Configuration.analytics_id}']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
_gaq.push(['_addTrans',
'#{escape_javascript(@order.code)}',
'#{escape_javascript(Configuration.site_name)}',
'#{escape_javascript(@order.cart.total.to_s)}',
'#{escape_javascript((@order.cart.total - @order.cart.total_without_iva).to_s)}',
'#{escape_javascript(@order.cart.shipping_cost.to_s)}',
'#{escape_javascript(@order.shipping_address.city)}',
'#{escape_javascript(@order.shipping_address.province)}',
'#{escape_javascript(@order.shipping_address.state)}'
]);
#{items.join("\n")}
_gaq.push(['_trackTrans']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
- else
:javascript
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '#{Configuration.analytics_id}']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment