381 total views, 3 views today
Several of my e-commerce clients have problems with WordPress WooCommerce websites not tracking all of their sales correctly in Google Analytics. This often happens on a WordPress website because there is more than one way to set them up, and this lack of consistency can lead to issues from time to time.
Aside from being annoying when trying to use Google Analytics, this issue is extremely problematic when using paid advertising like Google Ads. If Google Analytics is not getting all of the sales data, then most likely neither is Google Ads. Without the sales data, Google Ads cannot be correctly optimized to generate more revenue for your business.
One new client has been running ads through Google ads for a few months with another agency and it looked like they had a Return On Ad Spend (ROAS) of only 0.5 times. I.e. for every dollar they spent on ads they were getting $.50 back! And then they still had to supply and ship the product!
If this result was true they would advertise themselves out of business very quickly. The trouble with not having the financial data pull through is that you might actually be advertising the wrong things and not making any money from it and never realise.
So the most important thing that I needed to do here was to fix the e-commerce tracking so that we had every transaction recorded. Then and only then could we determine which Google Ad campaigns and settings were working for the client and which needed to be changed.
This is easier said than done!
Fixing Missing Transactions in Google Analytics and Google Ads
There are a couple of reasons why WordPress WooCommerce websites have the issue of transactions missing in Google Analytics. Firstly, different plugins vary in their effectiveness and set up. Rather than pushing e-commerce transactions to Google Analytics directly, I prefer to use the plugin Google Tag Manager For WordPress which integrates nicely with WooCommerce. This plugin passes e-commerce data to Google Tag Manager where it can be intercepted and passed to third-party applications like Google Analytics, Google Ads, Facebook and Email Automation.
However, even with the plugin set up correctly and working you can have irregular results with your WordPress website failing to pass e-commerce data if your website is slow when processing the “thank you” page after transaction.
The e-commerce data is pushed out from the website after the transaction has completed, while the thankyou page is loading. If this critical page is slow, you might not get the data pushed out quickly enough and then it won’t appear in Google Analytics or Google Ads. For this reason, you need a quickly loading thankyou page and fast hosting if you run an e-commerce. Any Google Analytics, Google Ads or Google Tag Manager code on this critical page need to be placed as close to the top of the page code as possible.
If the thankyou page loads slowly, the purchaser might close the browser tab before Google Analytics, Google Ads and any other platforms you pass ecommerce data to have received any data. If this happens, the transaction will become missing from Google Analytics and Google Ads even though you can see it in your WooCommerce transaction logs. This is the situation my client is in, and it’s very hard to fix other than updating the website for speed and increasing the speed and bandwidth of the website hosting service being used.
There are a couple of other very common causes of missing transactions in Google Analytics.
If you use PayPal, Afterpay or another offsite payment processor, you need to return your purchaser back to your own thankyou page. If your purchaser is left on PayPal after the transaction, the e-commerce transaction will not be recorded in Google Analytics or Google Ads. When you redirect the user back to your thankyou page, you need to check that your website knows about the transaction and is passing this data along. You’ll probably need to set up a custom post-transaction redirect in PayPal if you use PayPal as your payment processor.
Similarly, PayPal, Afterpay, and other third-party payment processes need to be listed as excluded referrers in Google Analytics. If you don’t update this setting your revenue will be attributed to PayPal instead of the real traffic source. Even counting the offsite payment processor as an excluded referrer will not work if the purchaser spend more than 30 minutes off your site. For this reason, it’s better to extend the Google Analytics session time out to 4 hours instead of 30 minutes when you run an e-commerce store. (PS. One of my services is a Google Analytics setup, we fix all these settings for you).
One more cause of disappearing transactions, that you might never think of, is if you have too many tracking codes trying to use the transaction data at the same time. If Google Analytics, Google Ads, Bing, Facebook, Email and other third-party tools are all trying to access the e-commerce transaction data at the same time the data can end up being passed to some, but not all of the places. This can be very confusing for the marketer as the revenue will show up in some places but not others. When I see this issue in my client accounts, I set it up so that the ecommerce data is passed to a cookie first, so that the data can be retrieved from the cookie and sent to as many platforms as required.
Fixing Duplicate Transactions in Google Analytics and Google Ads
Another situation that I see occur from time to time, is duplicate transactions. This occurs when the thankyou page does load correctly and the purchaser leaves it open. Later, if they go back to that browser tab and refresh, the page sends data to Google Analytics and Google Ads again. This should not happen if you use the Google Tag Manager plug-in because once the e-commerce data is sent it is removed from short-term memory, but it can happen when the website is setup to add the e-commerce data directly onto the page. When you are testing your WooCommerce setup, see if it is possible for you to refresh the thankyou page and have the data go into your analytics twice. If it happens you’ll want to fix this.
When All Else Fails and You Still Have Missing Transactions in Google Analytics and Google Ads
The client that I am working with was putting up with only about 30% of transactions showing up in Google analytics and Google Ads. This is a big problem, and made it looks like they were losing money from advertising. So what I have done is set up Google Tag Manager to send e-commerce transaction data to Google Ads and Google Analytics when the purchaser clicks the “Process Order” button instead of having to wait for the thank you page to load.
This workaround has a few drawbacks however. Firstly, tracking a sale on button click makes it possible to track a sale if someone clicks the process order button but for some reason the transaction does not go through. This might happen if there is an error with the credit card. Also the transaction ID is not created until the thankyou page and so sending the transaction early makes it harder to match the transaction to the backend order number. Finally, if you have multiple buttons the user can click on the finalize their order this trick might not work at all. Especially if you embed PayPal and Afterpay buttons directly onto your website, because these are usually done as an iframe and Google Tag Manager can’t record clicks on them.
Still, the tactic above is better than nothing. If it’s a choice between having no data or every now and then having too much data I would rather go with the latter as long as the error doesn’t occur very often. This will at least enable somewhat more accurate recording of Google Ads results. Of course it would be best to resolve the underlying issues such the website processing the thank you page slowly so that the issue wouldn’t happen in the first place.