Why Google Analytics is reporting different than your backend
Why is it that Google Analytics is reporting different sales and conversion numbers than your website backend? If you run an ecommerce website or a website with lead forms, you’ve probably noticed that your ecommerce and goal reports show different numbers than your backend. And by backend I mean your systems behind the website.
For instance, you might run a WooCommerce og Shopify store (or any other type of webshop). Whenever you compare your sales numbers and revenue from Google Analytics with the numbers in your CMS, there’s almost always a difference.
Similarly, you might run a website with landing pages and lead forms. And you’ve (of course) setup goals in Analytics for those forms. But the number of conversions reported in Analytics are different from those reported by your CMS.
Well, there are multiple reasons why you see those differences. And those reasons are pretty important to know. Because those reasons might affect the way you report or make recommendations for digital marketing activites. But don’t worry. This post is here to help you!
The obvious reasons
Google Analytics is javascript based. Without getting too technical, this means that Google Analytics will fail to capture data from time to time. Your visitors might have bad internet connections or your website is just too slow. But basically, Google Analytics is dependent on your visitors' browsers - and they are not perfect.
Secondly, people use adblockers or Do Not Track features in their browsers. Sometimes, those features simply block Google Analytics and prevent GA from capturing data at all.
Both of those reasons will result in Google Analytics reporting fewer goals and transactions compared to your backend. So based on this alone, you should expect your conversion and transaction numbers in Analytics to be lower than they actually are.
The definition of a Google Analytics goal
Another reason for Google Analytics conversions (or goal completions) being lower than your backend numbers is based on how goals work in Google Analytics. Most importantly, you should know that Google Analytics goals are session based. This means that any single goal cannot be counted more than once per session.
This is particularly important for websites where users are likely to convert more than once in a session. For instance, you might have a website with different lead forms where you’ve setup a single goal covering all forms. If a user then submits just two of those forms, you really have two conversions - but Google Analytics will only report one goal completion.
The same thing applies to a checkout goal. So if a user completes two purchases in one session, Analytics still reports only one goal completion. Which also explains why your number of checkout goal completions might be lower than your number of transactions.
Your goal completion is setup wrong
If you have an ecommerce website and if you’re like most people, you’ve probably setup a destination goal for your checkout flow. You’re probably also using a destination goal if you track users that visit a thank you page after completing a form or a newsletter signup.
This type of goal (the destination goal) measures the number of unique pageviews (you know what the difference is between a pageview and a unique pageview, right?) on your thank you page.
The problem here is often just people in general. These people will sometimes bookmark the thank you page. Just for future reference.
The problem might also be you. Specially if you send your converters a thank you email with a direct link to the thank you page. Just for future reference. Again.
The thing is (because goals in Analytics are session based) that if a user revisits a thank you page in a new session (say, just an hour later or any later day), Google Analytics records a new goal completion.
So in these cases, Google Analytics will report too many goal completions!
When I say that you’re goal setup is wrong, then it’s because you can counter this behavior. The best solution is server side - ask your IT to prevent direct page loads of your thank you pages if there’s no referring page. A client side solution could be to alter the pageview hit (i.e. change the page path) via Google Tag Manager if there is no referring page.
How browsers behave
But the problem can also be kind of technical. Have you ever used your smartphone to browse a website? That’s obviously a yes. But have you also noticed that - if you reopen your mobile browser after a while - it actually reloads (or refreshes) the page you viewed when you last closed the browser? Maybe not, but that happens.
That refresh actually not only reloads the page. It also reloads Google Analytics. Which - if this happens in a new session - results in a new goal completion. And this, in turn, results in too many goal completions. By the way, this also happens in desktop browsers, but generally not as often.
You can actually check this in Google Analytics by checking your Landing Pages report. If your thank you page occurs in the landing page report, then you’re capturing too many goals.
You’re looking at the wrong number
This is also related to Google Analytics goals being session based. Remember how a goal can only be counted once per session? Even if the action occurs more than once?
For instance, one of my clients have this product guide on their website. Users answer three questions about their needs and are then presented with relevant products for those needs. Since this all happens on one page, my client has setup a Google Analytics event that fires upon completing the guide - and in turn, they’ve setup an event based goal.
They’ve been unhappy with the “conversion rate” on that product guide. But they failed to realize that the guide is used even more than what the goal reports (and their backend) indicate - because they were looking at the number of goal completions. In reality, they should also look at the number of total events triggered by the product guide.
Since Google Analytics goals are session based, the goal - in this case - is based on the number of unique events. But the number of total events is much more precise if they’re looking to see how many times the guide is used. And by knowing this difference (between total and unique events), they also realized that many of their users actually use the product guide several times within one session.
Know your data before you trust it
I have experienced, first hand, several companies that see significant differences between their Google Analytics and backend numbers. Much too often, this results in incorrect reporting - but worse, it creates a mistrust towards data and in Google Analytics. In turn, this may lead to decision makers relying on other sources than data (i.e. gut feeling or just the HiPPO).
And this is often completely unfounded. It’s not that Google Analytics necessarily reports wrong numbers. But it’s more a question of knowing - and explaining - why there are differences in the first place instead of just accepting that they’re there. So know your numbers. Debug your goals. Get to know your data. And then you can trust your data.