I'm trying to get some clarity on how the GA eCommerce tracking works with regards to double counting transactions.

We are going to be pushing the transaction data to the Data Layer on the "Payment Complete" page and then using GTM to pick this up and fire the transaction tag.

I would like to know how I can avoid a duplicate transaction being recorded, say if the user refreshes the page.

Our "Payment Complete" page will only be available during that user session so there is no chance of them, say, bookingmarking the page and coming back at a later date during another session. The main issue is therefore from people refreshing the page.

Is Google able to look at the Transaction ID, since all transaction IDs are unique, and say "Oh this is a duplicate, I guess someone just refreshed the page" and disregard it? I read somewhere that it is unable to do do this and wanted to check.

I also read that, however, if Google sees a duplicate Transaction ID during the same Session then it will disregard it. Can anyone confirm this?

I read a bit that you can set up checks that use a cookie to see if the tag has fired before and if it has then not fire it again. I wanted to try avoid that if possible as it seemed a bit complex.

1 Answer 1


GA itself is able to dedupe transactions within the session, but if someone reloads a thank-you page after their initial session has timed out, then GA will count that transaction, resulting in a transaction ID appearing more than once in your reports. You can either set up something in the backend that will prevent the thank-you page from being reloaded (which is probably more robust), or you could follow this guide https://www.simoahava.com/gtm-tips/prevent-repeat-transactions/. However, this guide sounds much like what you're describing already. It's not overly complex, but if you're still not convinced, then perhaps your only solution would be to work out some logic in the backend to prevent the thank-you page from being served again.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.