Google Analytics has a lot of data—no surprises here! And although the standard reports cover a lot of ground in understanding how users interact with your site, sometimes there are specific things you want to know. And, of course, our favorite analytics tool has the ability to customize reports in the way you need, but with this much variety, sometimes what you get isn’t what you expect.
This blog post will cover some of the most common reporting problems we’ve come across when working with Google Analytics—Part One! Although this list isn’t exhaustive, it should cover a good amount of things you may have run into and explain why it happens and how to solve it.
If you want to see other issues covered, click here for Part Two (coming soon)!
A. My report returned no data OR
B. My secondary dimension breaks my report
More often than not, this happens when a report with dimensions or metrics cannot be joined to the given dataset. Dimensions, in Google Analytics, have one of four scopes. Scope refers to the type of data to which the dimension is applied. The four type of scopes within Google Analytics:
- Hit Level Dimension / Metric: The lowest scope, if a custom dimension has a hit-level scope, the value is only applied to the hit with which the value was set.
- Session Level Dimension: Session scopes incorporate data that was associated with all hits within a given session.
- User Level Dimension: The highest scope, if a custom dimension has a user scope then all the data associated with all hits within a given session is incorporated into the user scope. Furthermore, all data from future sessions is also incorporated into the scope.
- Product Level Dimension / Metric: This is only specific to Enhanced Ecommerce implementations, where certain dimensions are only available when looking at a specific product (e.g. Shoe Color, Shoe Size).
Note that only for custom dimensions the scope is visible as a column in Admin > Property Level Settings > Custom Definitions > Custom Dimensions OR Custom Metrics. This is not available for standard dimensions or metrics.
Google Support article on this matter: https://support.google.com/analytics/answer/2709828?hl=en
An example of this is when trying to understand which pages influenced product performance, like attempting to apply the product-scoped Custom Dimension of “Product Size” with the hit-scoped dimension of “Page”. This is very often the culprit for reports “breaking” or when they fail to return much or any information.
This is because the scoping of these dimensions do not match. There may be cases (unfortunately) where you can apply different-scoped dimensions and metrics in the same report, but it doesn’t mean that you should trust it. For example, we created a custom report showing session-scoped dimension “Landing Page” with session-scoped metric “Sessions” and hit-scoped metric “Pageviews”:
The number of times a user landed on our homepage in this screenshot is 1,627, not 3,997. Since Landing Page is defined as the first page a user visits in their session, the number of sessions incremented is the accurate count. So be forewarned! Google Analytics is powerful, but you cannot do meaningful analysis without your thinking cap on and keeping scoping in mind.
How to Fix:
- Ensure the chosen metrics and dimensions in a report are scoped similarly to produce best results
- When trying to combine two or more dimensions, check with your analytics / development team to verify the information from the first dimension was surfaced at the same time of the second dimension
Now, next on the list….
C. My report filter is not working
Report-level filters are extremely useful when only a specific subset of data is needed. This section covers report filters in Custom Reports, but the same logic can be applied in Standard Reports.
When applying filters to any Report, it’s important to understand that filters are sequential (remember this!!!). This means that the filter logic will get applied from top to bottom using “and” logic.
Examples of this will be seen later, but let’s first talk about filter options.
This option truly will only return data from the data that matches the filter text. This option should be used only when there is one value a user is looking for, and no variations of that value.
The most common mistakes when using the “Exact” filter option include:
- Unintentional spaces
- e.g. Country of “United States” versus “United States ” or “United States”
- Most commonly found before, after, or between words
- Improper casing
- e.g. Medium of “Organic” versus “organic”
- Maybe you have a force lowercase filter here? Check your actual data to verify!
- Missing characters
- e.g. Page of “analyticspros.com/blog/” versus “analyticspros.com/blog”
- Note that missing trailing slash!
“Regex” is short for Regular Expressions, and can be explained as a set of logic comprised of various characters, such as a period or asterisk, that Google Analytics knows how to interpret in order to slice and dice data.
Read this Google Support article on Regex: https://support.google.com/analytics/answer/1034324?hl=en
This option should be used if there are multiple values from a specific dimension that is desired to be reported on, or if the list of values are similar and creating an “or” statement for the list of values would take too much time.
Let’s say I only want to look at traffic from my favorite 2 cities in the world—Las Vegas and Seattle! Is this a weird mix for the average person? Yes. Is it weird since I’ve lived in both extensively? Absolutely not.
A user’s first inclination may be to create an “Include” filter for each city.
However, hitting save with these filters (Primary Dimension: City, Primary Metric = Sessions) would return no data. That is because filter logic is sequential (that’s right, we were told to remember this!). In the above screenshot, the first rule ran through all of the collected hits and pulled in the hits where the City equals “Las Vegas”. From this new refined dataset, the second rule ran through the remaining hits and tried to pull in the hits where the City equals “Seattle”. Since this is not possible for one hit to have two cities associated with it, Google Analytics returned no data. Consider filter order as a refinement of data that is processed step by step, not as an all-inclusive “and” statement.
The solution to this issue would be to use “Regex”. The pipe (“|”) indicates an “or” logic, so the following configuration would be accurate. Remember, no unwanted spaces still.
Another useful functionality of the “Regex” filter option is if a “CONTAINS” logic is needed. For example, if I wanted to see performance across all of our blog pages (neatly sorted underneath a /blog/ folder in our directory), the following regex filter would be too cumbersome:
Since all of these pages share the same first beginning, possible configurations could include:
/blog/google-analytics/(article title 1|article title 2)
In the above example, (.*) means “anything”, so any number combination after “/blog/” would be included in this logic.
However, if this was the only URL structure for blog pages, and I stress only, and no other URL on our site could possibly have “/blog/” in the page path unless it was a blog, then the regex function could simply be:
Note, the use of “CONTAINS” in this case must be used carefully as there may be traces of the value in places you don’t expect. For example, this page below looks like it is just a category page and not a specific article page. Including this in reporting would inflate pageview performance.
Lastly, regex is not case-sensitive.
D. I see “(not set)” in my report
Broadly speaking, the “(not set)” values are placeholders used by Google Analytics when data is either unavailable or not displayed. More specifically, “(not set)” indicates that Google Analytics did not receive any information for the associated dimension in a given report.
One place we can see this is for traffic that was not sent via campaign tracking parameters, such as Direct, Referral, or Organic traffic. When we apply a secondary dimension of “Campaign”, it makes sense that campaign information does not exist and is not associated with these visits.
Another common occurrence is seeing “(not set)” in your Landing Page report.
A page needs to be associated with every hit, and there are cases where an event may send before a pageview tag has fired, causing (not set) to appear in your Landing Pages report.
How to Fix:
Verify that the source of data is sending the data appropriately.
- Is the data point populated from a Data Import?
- Verify values are imported correctly
- Are the data points populated from the website?
- Verify values are sending from the website correctly
Part Two is coming, so stay tuned!
If there are other Google Analytics “issues” that you need explained, let us know!