Before Google Analytics can report ecommerce activity for your website, you must enable ecommerce tracking on the view (profile) settings page for your website. After that, you must implement the ga.js
ecommerce tracking methods in your shopping cart pages or through your ecommerce software. The collection of ecommerce methods work together to send each user's transaction information to the Google Analytics database as it occurs. In this way, Analytics can link a specific referral source to a conversion or purchase. Most template-driven ecommerce engines can be modified to include this information hidden in the order confirmation page.
|
More
|
The basic process for tracking ecommerce using Google Analytics can best be described by summarizing the three methods required for tracking ecommerce transactions on your site. These methods are described in the order in which you should invoke them in your shopping cart or ecommerce software.
Use the _addTrans()
method to intialize a transaction object. The transaction object stores all the related information about a single transaction, such as the transaction ID, shipping charges, and billing address. The information in the transaction object is associated with its items by means of the transaction IDs for the transaction and all items, which should be the same ID.
The _addItem()
method tracks information about each individual item in the user's shopping cart and associates the item with each transaction via the transactionId
field. This method tracks the details about a particular item, such as SKU, price, category, and quantity.
The _trackTrans()
method confirms that a purchase has occurred, and all data that has been built up in the transaction object is finalized as a transaction.
There are many ways that this information can be retrieved from the ecommerce engine. Some ecommerce engines write the purchase information to a hidden form that you can use, others keep the information in a database that you can retrieve, and others store the information in a cookie. Some of the more popular ecommerce engines that recognize Google Analytics provide their own modules to simplify order tracking for Analytics.
Keep in mind the following when implementing ecommerce tracking.
_addTrans()
and _addItem()
is matched by position. _addItem("54321", "12345", "", "", "55.95", "1");
price
and total
parameters do not respect any currency formatting. 1,996.00
as the value for the total
parameter, it is recorded as 1.996
, not as $1,996.00. Because the value is not affiliated with any currency, your ecommerce software must handle any currency conversion before you pass the data to Analytics._trackPageview()
on your receipt page if you want to associate that particular page with the transaction data.The following example illustrates a sample configuration of ecommerce tracking on a receipt page using all three methods. The use of _trackPageview()
associates the transaction with the page entitled Receipt for your clothing purchase from Acme Clothing.
Asynchronous Syntax (recommended)
<html> <head> <title>Receipt for your clothing purchase from Acme Clothing</title> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-XXXXX-X']); _gaq.push(['_trackPageview']); _gaq.push(['_addTrans', '1234', // transaction ID - required 'Acme Clothing', // affiliation or store name '11.99', // total - required '1.29', // tax '5', // shipping 'San Jose', // city 'California', // state or province 'USA' // country ]); // add item might be called for every item in the shopping cart // where your ecommerce engine loops through each item in the cart and // prints out _addItem for each _gaq.push(['_addItem', '1234', // transaction ID - required 'DD44', // SKU/code - required 'T-Shirt', // product name 'Green Medium', // category or variation '11.99', // unit price - required '1' // quantity - required ]); _gaq.push(['_trackTrans']); //submits transaction to the Analytics servers (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); })(); </script> </head> <body> Thank you for your order. You will receive an email containing all your order details. </body> </html>
Traditional Syntax
<html> <head> <title>Receipt for your clothing purchase from Acme Clothing</title> </head> <body> Thank you for your order. You will receive an email containing all your order details. <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol ) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try{ var pageTracker = _gat._getTracker("UA-xxxxx-x"); pageTracker._trackPageview(); pageTracker._addTrans( "1234", // transaction ID - required "Womens Apparel", // affiliation or store name "11.99", // total - required "1.29", // tax "15.00", // shipping "San Jose", // city "California", // state or province "USA" // country ); // add item might be called for every item in the shopping cart // where your ecommerce engine loops through each item in the cart and // prints out _addItem for each pageTracker._addItem( "1234", // transaction ID - necessary to associate item with transaction "DD44", // SKU/code - required "T-Shirt", // product name "Olive Medium", // category or variation "11.99", // unit price - required "1" // quantity - required ); pageTracker._trackTrans(); //submits transaction to the Analytics servers } catch(err) {} </script> </body> </html>
By default, you can configure a common, global, currency for all transactions and items through the Google Analytics management web interface. By default, the global currency is used for all items and transactions. For websites that conduct transactions in multiple currencies, the ga.js ecommerce tracking feature allows you to specify the local currency of the transaction using the following command, before the call to _trackTrans
is performed:
_gaq.push(['_set', ‘currencyCode’, ‘EUR’]);
The local currency must be specified in the ISO 4217
standard. Read the Currency Codes Reference document for a complete list of supported conversion currencies.