Misunderstood Metrics: Google Analytics Users

Why do the Users numbers in my report not add up to the total in Google AnalyticsThis Misunderstood Metrics article explores the Users metric in Google Analytics, why the numbers are different, and why both of them are probably wrong.

Adding Up Users: Don’t

TL;DR  You cannot simply add up Users numbers from various days (or countries, or sources, or…) and expect the total to match a total user count for your site. Simple example (see image below), 457 users visited on the 12th and 392 visited on the 13th. The sum is 849, but the report shows the Users count for the 2 days is only 816. That is because 33 people visited ON BOTH DAYS, and a sum is counting them twice (816 actual 2-day total + 33 users visiting both days =  849 summed). NEVER add Users numbers together to get a total.

Measuring Users in Google Analytics

I know, simple example, but there’s more to consider…let’s look at what defines a User in Google Analytics. In most cases, it is a visit from a browser with a cookie containing a unique user id number. If there was no cookie, then a new user id (and a new cookie) would be generated, and it would be considered a visit  from a ‘new’ user. If there was a return visit from the same browser with the cookie, Google Analytics digs up the user id from the cookie and links that visit to the same ‘User’.

Bad Assumption: ‘New Users’ are New Users

With that definition, the real-life User number is flawed by design — if a person clears their browser cookies, uses incognito mode in their browser, or if they use a different browser or different device (like a tablet),  they will appear as a ‘new’ and unique user. In advanced implementations of Google Analytics, you can reduce that problem by implementing a cross-device User-ID in your website. But without that, some of your ‘new’ users could actually be returning users, and so the total Users count in any report is probably over-inflated a bit.

Multiple Sessions Per User

While it may seem obvious, a single user can have multiple sessions represented in any report you look at. They could enter your site from a search, then come back an hour later direct, then the next day from an email campaign. They could be travelling and appear on Sunday from Brussels and on Monday from London.

This is why you can NEVER add up the Users numbers in your report to get a total. Individual users could be counted in multiple rows and your total would include duplicates. if you want a total, get a total unique user count, not a sum. A total unique user count can be obtained by asking for ‘Users’…that’s it, no Date column, no Source, no Country…just ‘Users’.

Getting Users Numbers That Match

So when you are building you own custom report, how do you get Users numbers that match Google Analytics? Like this:

Audience > Overview Report


Users Chart Numbers
Dimensions: Date (or Week, or Month)
Metrics: Users
Date range: same as report

Users Widget Number
Dimensions: none
Metrics: Users
Date range: same as report

Audience > Geo > Language Report


Table of Languages
Dimensions: Language
Metrics: Users (and other metrics)
Date range: same as report

Total at top of column
Dimensions: none
Metrics: Users
Date range: same as report

Acquisition > All Traffic > Channels


Table of Channels
Dimensions: Default Channel Grouping
Metrics: Users (and other metrics)
Date range: same as report

Total at top of column
Dimensions: none
Metrics: Users
Date range: same as report

I think you get the idea — match the dimensions EXACTLY as you see them in the report. If there is a total, it is NOT a sum; it is a separate query made without any dimensions.


If you want the Users number in your report to match the numbers you see in Google Analytics, match the dimensions exactly. Never add up Users numbers to get a total — make a separate query without any dimensions.

And don’t get too hung-up on how accurate the number is — by design, it is probably wrong (too high) anyways, and no one wants to suggest that there are actually fewer users on your site than the report suggests…

Discover Other Misunderstood Metrics:

Facebook Ads Bidding and Budgets

The Facebook Ads bidding and budget information may seem to work in mysterious ways, especially when you are trying to generate a report from the API. Here is a picture of how it fits together. More

Direct ‘Spam’ in Google Analytics

A number of my clients have seen unexplained direct traffic in their Google Analytics accounts. There is no apparent purpose or reason behind this traffic — it just exists; sometimes for a short period of time, and sometimes for months. More

Caution: Last Day of Data May Not Be Accurate

According to a tweet by John Mueller of Google (2017-06-23), the most recent day of data from the Google Search Analytics API may contain partial results, so you should plan to refresh that data the next time you run your report. More

Amazing SEO Reporting In Excel

With version 4.0 of the Analytics Edge Google Search connector, you can quickly create SEO analysis reports with tremendous insight potential; way beyond what you can do in Google Search Console itself! More

Creating an Excel Dashboard Widget

Creating a dashboard in Excel can be quite simple –it’s really just a matter of downloading the right data and some easy formatting techniques. Layout is your challenge, but even that can be overcome. More

! Keep it Free and Unrestricted !

The Analytics Edge Basic Add-in is free, as is the included Free Google Analytics Connector. There are no account restrictions, no query restrictions, and the product is updated, maintained and supported. To keep it that way, I need your help to SPREAD THE WORD!  Twitter, Facebook, Reddit, at conferences, in meetups, or just mention it over a beer with colleagues. More

Sending Excel Reports To Clients

Many analysts, consultants and agencies use Excel to create reports for their clients because it allows them to deliver a unique solution, tailored to the client’s needs. By using Analytics Edge to generate and automate the report refresh, the monthly process becomes a lot easier and doesn’t require any changes to the client’s environment. More

Analytics Without Programming

Avoid complex Excel formulas; Analytics Edge lets you build reports in Excel without complicated formulas or programming. Using a simple wizard interface, this small Excel add-in lets you combine, calculate, split, pivot, sort, filter and much more. Try it yourself and see how easy it is! More

How To: Email Campaign Domain Analysis

email-domain-analysisFind out how your email campaigns are performing with particular domains, so you can see which ISPs your subscribers use most often, and detect if you’re having delivery or compatibility problems. More

Building a Marketing Dashboard in Excel

Marketing-DashboardThis article describes the steps I went through to build a working prototype; it is light on process and documentation because this is an educational article, not a statement of best practices. More

Custom MailChimp Multi-Campaign Reports

A flurry of interest in the Analytics Edge MailChimp connector over the past few weeks has made me realize that most of the email marketing automation examples I have posted have focused on the Constant Contact connector. More

Data Sampling Problems In Annual Reports

Google Analytics uses statistical sampling to improve responsiveness for large queries. There is nothing wrong with statistical sampling — it will usually produce numbers close to the actual, but not always. More

The Hidden Value of Nofollow Blog Comments

When I was working on a new Excel report for my Google Webmaster Tools connector, I started seeing traffic from a specific query phrase that didn’t make sense, so I dug a little deeper, and what I found made me question the very foundation of conventional SEO wisdom and the meaning behind Google Webmaster Tools data. More

Misunderstood Metrics: Next Page Path

In Google Analytics, the Previous Page Path shows what page was visited just before the current Page, but Next Page Path seems to be broken or not working. The problem is that it doesn’t hold what the name implies. More

Misunderstood Metrics: Sessions for Pages

Build a custom report to see how many Sessions included your top pages, and the result is confusing! Chances are you will see the number of Sessions drops sharply once you get below your primary landing pages. More

Misunderstood Metrics: Unique Events

Google Analytics has recently changed, introducing a new Unique Events metric calculation. This article has not yet been updated to reflect that change — Mike Sullivan.

As a follow-up to my previous post on Google Analytics events, this article will look at the unique problem of “Unique Events“…the metric that defies understanding by many. More

Misunderstood Metrics: Time on Page / Average Session Duration

avg-session-duration-vs-avg-time-on-pageHow can the Average Session Duration be less than the Average Time on Page?  In Google Analytics, seeing the time spent on your website or on individual pages is not as obvious as it first appears. This Misunderstood Metrics article explores the concept of time in Google Analytics…or lost time as the case may be. More

Measuring Time On (Bounce) Page

For people measuring their website traffic with Google Analytics, there is nothing more frustrating than building a really popular web page that gets tons of visits, but GA shows Session Duration close to ZERO! The problem is that Google Analytics doesn’t measure the time on the last page of a visit, so even if they read your article for 5 minutes, if they don’t click on another page, their session is recorded as 0 seconds. Sigh…. More

Definitive Guide to Removing All Google Analytics Spam

This is a PROVEN WORKING SOLUTION for how to remove referral spam in your Google Analytics.

2018-06-23 final update. This article was started in January 2015 to help Google Analytics users deal with a new form of ‘ghost referrals’, or false information, being injected into their analytics reports. Over the last 3 1/2 years, a number of people have used a variety of techniques to manipulate the data being reported, and I have maintained a series of filters for limiting their effectiveness. For the most part, Google is now responding on its own, and I am moving on.

A Valid Hostname Filter is still the best technique for dealing with ‘ghost referrals’. The Spam Crawler Filters need to respond on a daily basis to be effective as view filters — they would be more useful when used in a Custom Segment to clean up reporting after-the-fact.

This article still describes the techniques, but I refer you to carloseo.com for up-to-date filter expressions. Carlos and I have shared a lot over the years in our battle for clean reporting, and I know I am leaving you in good hands.
For updated filter expressions: https://carloseo.com/removing-google-analytics-spam/

Mike Sullivan

Why You Should Not Use the Referral Exclusion List for Spam

While all of us fight to get Google Analytics referral spam under control, one piece of well-intentioned, but bad advice comes up over and over again: use the Referral Exclusion List. Some people (myself included) have stated that is a bad idea, but no one has taken the time to really explain why. Here is the Why… More