I’ve set up GA ecommerce tracking by putting the required JavaScript code on my order receipt page. However, if the user reloads the page (or arrives to it without actually completing a purchase), won’t the order be counted again?
How can I make sure each order is counted once and only once?
First off, your application should probably be designed in a manor that would not allow users to access an “Order Placed” type page directly, they should only be able to get there as a result of shopping cart checkout process. Depending on your server technology, you can usually limit this by only accepting specific HTTP Verbs (methods) such as only allowing POST operations.
Secondly, check out the
addTrans()documentation. So if your application allows users to refresh a page that is tracking transactions, then logging the exact same ecommerce data for the same orderId will just overwrite the old data with the new data – which may be the same depending on how your app is structured.Either way, I strongly recommend not allowing your users to refresh this page if you that is where you are tracking Google Analytics. When an order is placed on our website, we clear out the shopping cart and return the user to an order receipt page with the GA ecommerce tracking. Then, if anybody tried accessing that page again and their cart is empty, the get redirected to the “Orders” page where they can review recently placed orders (no GA ecommerce).
Hope this helps!