Are you bothered with (not set) values in Google Analytics? One of the measurement issues I often discover in my Google Analytics audits are related to (not set).
Note: some of the links on this page are affiliate links. Link to affiliate disclosure.
(Not set) is a name that Analytics uses when it hasn’t received any valid information for the dimension you have selected.
The difficulty is that the reasons for (not set) appearing as a dimension value vary according to the report and dimension.
In this blogpost I will share all details about (not set). You will learn how to automatically detect issues including best practices on how to effectively deal with them.
Table of Contents
- Introduction to (not set) Value
- How it Negatively Impacts Your Analysis
- (not set) in Reports
- Automated Check
- Concluding Thoughts
Introduction to (not set) Value
In a perfect world your data is 100% accurate and reliable. As we all know, our Analytics world is not perfect.
You don’t need 100% accurate data to improve your business, but you should always strive for the highest data quality possible. This is especially true if data plays a crucial role in your decision making process. And I hope it does!
When it comes to reporting and analysis, (not set) values can be a real pain. The (not set) label simply doesn’t tell anything valuable you can use in your analysis or decision-making process. It actually hurts the usefulness of your stats.
(Not set) is usually found in many different dimensions and in some cases it is troublesome and in others it’s not.
How it Negatively Impacts Your Analysis
As mentioned before, the (not set) value doesn’t have to be an issue, but unfortunately it often negatively impacts your data and analysis. I will share three examples with you so that you can better understand the impact of this value.
First Example
I am a huge advocate of leveraging Google Analytics Content Groupings for in-depth content analysis.
Let’s take a look at the example below:
In this case Google has configured a content grouping to:
- Group product category data.
- Better analyze the product categories as a whole.
The value of 45% is not an issue here as you can never allocate all pages and pageviews to a product category content group.
Second Example
On the other hand, the (not set) value in content grouping can be a real issue.
When I set up content grouping for my clients, I always like to include a site-wide content grouping.
- To give them a holistic overview of content performance in relation to success events (conversions). You can do this by closely analyzing the “page value” metric.
- To enable holistic navigational analysis and optimization.
- To overcome technical hurdles with their content structure.
In this case I want to minimize the (not set) value. The higher the (not set) value the more difficult my data analysis becomes. I usually set a custom alert to automatically monitor changes in this (not set) value.
Third Example
This is fictional data of a German Ecommerce Store – traffic medium report.
- CPC = 1000 sessions // 25%
- Organic = 500 sessions // 12.5%
- Referral = 500 sessions // 12.5%
- (none) = 750 sessions // 18.8%
- (not set) = 1250 sessions // 31.3%
How would you start optimizing based on this data?
- Over 30% of all sessions lack referral/medium information.
- Underreporting of the other/known mediums.
- Is there another/unknown medium which we can’t see because of incorrect campaign tagging?
As you can guess, the (not set) value in your mediums report negatively impacts data quality and traffic channel analysis and optimization.
10 (not set) Places in Google Analytics
Your Google Analytics account might have a ton of (not set) data without you actually knowing it!
In this chapter I am going to reveal 10 specific dimensions where the (not set) value might occur in your account. These are the most common dimensions in my experience. You will also learn strategies on how to fix these issues (if necessary and possible).
Everyone uses their own benchmarks, but I recommend to pay extra attention to (not set) dimension percentages higher than 2%.
#1: Content Grouping
As explained before, it depends on the goal of your content grouping setup whether (not set) is a problem or not.
You have an issue if you want to group as many pages as possible in your content grouping and the (not set) value is greater than 10% of total pageviews.
Here is my action plan for setting up in-depth, site-wide content groupings:
- Set up a site-wide content grouping in your test view.
- Collect a few days of data and make sure to minimize the (not set) bucket (less than 2% of all pageviews).
- Copy your content grouping to the master view once you are happy with the numbers.
- Set up a custom alert that automatically informs you when the (not set) value is exponentially rising.
- Modify the content grouping to accommodate for content/URL changes. If you can automate this (with some development help), it’s even better!
#2: Hostname
A large percentage of (not set) for the hostname dimension shouldn’t be ignored.
Here is how to make a check and deal with this:
Step 1: navigate to Acquisition >> All Traffic >> Channels.
Step 2: change the primary dimension to “Hostname”.
Step 3: review the dimension values.
The report should only contain “hostnames” that relate to you; otherwise you might have traffic coming from spam bots (in case of (not set) value).
They send fake data to your Google Analytics account without actually visiting your website.
Step 4: exclude all hits from known bots and spiders (in view settings).
Step 5: add an include filter on your hostname(s).
You should read this post on Google Analytics filters if you want to learn more about this. Applying step 4 and 5 should fix your (not set) problem AND helps fixing GA issues because of code hijacking (your GA code is implemented on another site).
#3: Page Title
Step 1: Navigate to Behavior >> Site Content >> All Pages.
Step 2: switch the primary dimension to “Page Title”.
Here is my take on dealing with (not set) Page Titles:
- You don’t need to fix anything if the (not set) values belong to pages behind the login. Is this case there is no negative impact on SEO and you can work with the “Page” dimension instead.
- You should worry about this if the (not set) values are pages that are spidered on your website and indexed in Google. Having a (not set) value here might negatively impact your overall SEO.
How to fix:
- There might be an error with the <title> tag in the head of your page or no <title> tag at all. So make sure to look into that and fix it accordingly. You can find out on which pages this happens by adding the secondary dimension “Page” to the (not set) value on “Page Title”.
- It might be that your GA tag fires above the <title> tag of your pages. Move your GA code to a position under the <title> tag if that’s the case.
#4: Landing Page
Navigate to Behavior >> Site Content >> Landing Pages.
This report is very important when you are optimizing your website performance, e.g. with AB testing.
Encountering (not set) values within the landing page dimension is a serious data quality issue.
Two reasons why (not set) might occur in your account:
- Sessions that are expired: a session ends after 30 minutes of inactivity or at midnight. Google Analytics ends a session at midnight of the timezone configured in the reporting view. Events triggered after 30 minutes will lead to a new session. If that event is the only hit, the landing page dimension (not set) is set. This is a pain for websites that have a lot of events implemented and unfortunately there is no real fix here.
- Sessions that are broken: this is the case when all hits, pageviews, ecommerce events etc. are not properly connected. Or if you have Classic and Universal Analytics trigger actions within the same session. Two simple rules: use only one version of the GA tracking code on your website and make sure all tracking is properly working together.
In addition to the reasons mentioned before, you might suffers from implementation issues in general.
#5: Campaign Parameters
Google Analytics is a very flexible tool as you can set up your own campaign tracking structure. Although this is great for all of us, sometimes it leads to measurement issues.
Step 1: navigate to Acquisition >> All Traffic >> Source/Medium.
Step 2: navigate to Acquisition >> Campaigns >> All Campaigns.
Review the dimension values for step 1 and 2. You are doing a great job if (not set) is not among the values of utm_medium, utm_source and utm_campaign.
Incorrectly tagged links can lead to (not set) showing up as the source or medium. Some traffic sources might not have campaign, keyword or ad content information. In that case these parameters could show up as (not set).
In any case, if you encounter (not set) issues among your campaign parameters I recommend to closely examine your utm tagging. You could use an online spreadsheet or the free campaign URL builder from Google.
#6: AdWords in General
The main reason for having (not set) in your AdWords reports is that the website in the Analytics account is receiving traffic from an AdWords account that is not or improperly linked to the reporting view.
Here are four things you should check:
- Auto-tagging is on and cost data is applied.
- There is no redirect in the destination URL of your AdWords campaign.
- The GCLID parameter is preserved.
- URLs are properly tagged in case of manual tagging (in 99% of all cases I recommend auto-tagging over manual tagging!).
#7: Browser
Navigate to Audience >> Technology >> Browser & OS.
Usually if you see (not set) it is just for a very small percentage of traffic. The page detects a user agent. The user agent carries information related to your device as well as browser information. This is ok as Google might not be able to match some information here.
However, you need to investigate this further if it is a large percentage (e.g. 5%). This could indicate “traffic” from bots or crawlers.
Two ways of dealing with this:
#1: Exclude all hits from known spiders and bots in the view settings.
#2: Investigate the “service provider” dimension of (not set) browser traffic.
In the example above, you can see google incl. and (not set). In this case both “traffic sources” have suspicious stats (pages/session and avg. session duration). You will want to exclude both Service Providers with a Google Analytics filter.
#8: Network Domain
Access the Channels report and change the primary dimension into Network Domain.
The Network dimension might return a (not set) percentage higher than 5 or 10%. This goes back to the visitor’s IP address. The IP address or service provider may not be shared by the visitor, which could happen for a variety of reasons. As the behaviour of this group doesn’t deviate, there is no need to further investigate this.
In addition, it is worthwhile to investigate pageview, session and goal conversion data to see whether it all looks normal.
#9: Geo Location
Navigate to Audience >> Geo >> Location.
A small percentage of (not set) might show up here and that’s totally fine.
Google Analytics determines the location of users from their IP address, but this information isn’t always available.
For example, if you access a website via a virtual connection or on some mobile devices.
Read this post for more information.
#10: Reverse Goal Path
Navigate to: Conversions >> Goals >> Reverse Goal Path.
The reverse goal path report shows goal completion locations and the three previous pages viewed.
It depends on your goal settings, but if your goal takes less than 3 steps to complete, (not set) appears for sure and this is totally fine.
For example, the second row shows (entrance) and (not set) as the previous steps. In these sessions visitors reach the goal location directly.
Automated Check for (Not Set)
Manually checking (not set) data might take a lot of time. Especially if you want to do this every month or even more often.
As data quality is key in generating insights and optimization, I will share three different ways of automating (a big part of) this process.
1. Custom Alerts with Segmentation
Custom Alerts can be a great help in detecting measurement issues in Google Analytics.
You could set up an automated alert for each of the dimensions mentioned before.
Important to decide:
- When to trigger an alert? (daily, weekly, monthly)
- What is your current base level of (not set)?
- What would be your ideal trigger? Increase of (not set) value with 10% or…?
Here is some general advice on setting this up. For example, on the dimension “Medium”.
Step 1: define a segment that captures sessions with the (not set) value for dimension “Medium”.
Step 2: set up your custom alert and apply the segment.
2. Google Analytics Dashboard
On the other hand, you might want to keep track of (not set) values of key dimensions in Google Analytics.
Getting creative with Google Analytics Dashboards allows you to monitor these (not set) values in a semi-automated way.
Here is a widget example:
And here is a quick dashboard example:
If you are like me, you might prefer Google Data Studio for building your reports and dashboards.
3. Supermetrics Add-on
Then I would love to quickly mention the Add-on for Google Sheets: Supermetrics.
It allows you to leverage the Google Analytics API and getting a bunch of data sources imported in Google Sheets.
Read more about the Google Analytics Audit Tool (works with Supermetrics) that I have recently launched.
It is a great help for automatically checking (not set) values on a few key dimensions in Google Analytics.
And, with their new connectors, you can even get this data directly into Google Data Studio!
Concluding Thoughts
As you know by now, (not set) is a placeholder when metrics are recorded without dimension information. The higher the percentage of the (not set) value, the more urgent it is to solve a potential measurement issue.
It plays a crucial part in Google Analytics data quality and whether the data has the potential to improve or hurt your business.
Action Steps:
- Check for (not set) values in your Google Analytics account(s) and key dimensions.
- If needed, do your best to solve (not set) issues with the recommendations in this post.
- Build in some automated checks – as outlined in this article – to better keep track of drastic changes on (not set) values in your account.
Do you have anything to add? How important and urgent is data quality for your organization?
One last thing... Make sure to get my automated Google Analytics 4 Audit Tool. It contains 30 key health checks on the GA4 Setup.
CK says
I have a lot of Source/Medium data (23%) that is set to (not set). Are you saying that every URL on our site should be tagged with a Google Tracking parameter? Or only the URLs we share in ad campaigns, email blasts and other shares?
Thanks in advance.
Paul Koks says
In general, the Source and Medium should always be populated. Either they are automatically recorded (e.g. organic, direct, referral), or tagged with custom UTM parameters (e.g. affiliates, email). If you see (not set) as the source and/or medium, it is likely from a mistagged link. So you need to correctly tag all the channels that are – on default – not recognized by Google. And make sure to set the source and medium parameter.