11+ Places Where (not set) Can Strike in Google Analytics



When it comes to reporting on your website, knowing that your data is as accurate as possible is one of the most important considerations. Most effort is done in the implementation phase, but as time goes on, you may start to see ‘(not set)’ creeping into some of your Google Analytics reports. This label doesn’t tell us much in terms of analytics or decision-making and it can strike in multiple places throughout your data. In some places it is not a concern while in others, it is a red flag that should not be overlooked.

Below is a list of over 11 dimensions where you may see (not set):

Landing Page

Behavior > Site Content > Landing Pages

This report tells us which page or screen a user viewed first when they came to our site. This (not set) can be one of the most important indicators of an issue with your tracking. There are three main issues that could cause this to show up: expired sessions, broken sessions, and incorrect implementation.

Example One: Expired Sessions

By default, sessions expire after 30 minutes of inactivity, which is measured from the last hit that GA receives. If you have a website where someone could theoretically load a page, spend 30 minutes on that page, and then come back at a certain point and trigger an event, like from a PDF download, then that new event will trigger a brand new session. If that’s the only hit within the session, then the landing page will appear as (not set).

This can often happen with websites with long-form content or embedded videos, though almost everyone will see it show up for a small portion of traffic. Think how many times you may have opened a webpage only to be distracted and come back to it later.

Fix #1: If you can reasonably expect this to happen on your site due to your content, you can change your Session Timeout settings to be up to 4 hours. This should decrease the (not set) numbers.


Fix #2: Perhaps a better solution would be to implement more events to help keep the current session alive. These can be things like YouTube tracking, scroll tracking, or even a timer after a certain number of minutes. Be careful though, as this change will also affect your bounce rate, time on site, and time on page, though you’ll only be moving closer to accurate!

Example Two: Broken Sessions

When a user loads a webpage, any combination of hits can be sent in; pageviews, events, social actions, transactions, etc. These should all be connected so you can get a full picture of user activity on your site. However, for a variety of reasons, sometimes these hits can get separated and exist in separate sessions. If a new session doesn’t have a pageview in it, then you’ll see your Landing Page show as (not set). This is one of the more serious issues that should be addressed.

Fix: Usually this happens with a tracking issue; events and pageviews triggered from a combination of on-page JavaScript and perhaps a tool like Google Tag Manager. Make sure your trackers are talking together to connect all of the hits of session, and make sure you’re using the same version of Google Analytics to send in all of your hits (which is hopefully Universal!)

Page Title

Behavior > Site Content > All Pages

Maybe you’re seeing all of your page paths in the Site Content reports, but when you switch to “Page Title,” (not set) appears as a row. This means that there is an error with the <title> tag in the head of your webpage or no <title> tag at all. This isn’t an urgent issue with Google Analytics since you can work around it by using Page as the primary dimension, but it is a problem when considering SEO and site experience.

Another possibility is that your Google Analytics code is loading and firing above the <title> tag in the head of your page.

Fix: Implement missing <title> meta information in the head of all webpages or move your GA code.


Audience > Technology > Network
This is one to definitely pay attention to! Go to the Network report and change the primary dimension to “Hostname.”

As a reminder, the Hostname dimension refers to the page that was loaded. So for our website, the Hostname would appear as “www.lunametrics.com.


You should only see Hostnames that are familiar to you and from your own site. If you see a (not set) row, it is likely from ‘ghost’ spam- a spam bot that leaves fake data in your Google Analytics reports. Because this type of spam never actually hits your site and only injects the fake data, fake hostnames can show up in the behavior reports or no hostname at all.

Filtering this report to only include the (not set) hostname and adding Source/Medium as a secondary dimension will likely show fake referral information. And again, when there’s no data available, (not set) will show up.


Fix: Since this is spam and skewing your data by a little or a lot depending on the percent of traffic (not set) accounts for, it’s always best to filter it out of your reporting views. Your best bet is to create an Include filter to only include traffic that is coming from a visit to your site. If there are hits that are not coming from your site, they’ll be filtered out.

Source, Medium, Campaign and Ad Content

Acquisition > All Traffic > Source/Medium
Acquisition > Campaigns > All Campaigns

These dimensions are associated with your acquisition reports. The Source and Medium should always be populated. Either they are automatically recorded by Google, or tagged with custom UTM parameters. If you see (not set) showing up as the source or medium, it is likely from a mis-tagged link. If (not set) shows up for campaign or ad content, it is likely because these traffic sources did not have campaign or content information.

Fix: Make sure that all tagged links are formatted (and spelled) correctly. The URL builder from Google is a good process to use, especially since it requires source, medium and campaign. Always have utm_source and utm_medium at the least.

Organic Keywords

Acquisition > Campaigns > Organic Keywords

For organic keywords, (not provided) will likely be your number one term. This particular keyword is a placeholder for organic keywords that Google is not showing for privacy reasons. If you see (not set), that means that the traffic coming to your site did not have keyword. It might be from an odd search engine that doesn’t pass that info, or perhaps you’ve manually tagged something as Organic and not supplied a keyword.

Fix: This does not necessarily need a fix if you are not tagging keywords in campaigns, but to include this information, you can use the “utm_term” field from the URL builder mentioned previously.

Paid Keywords

Acquisition > Campaigns > Paid Keywords

If you see (not set) in your Paid Keywords report, this is a sign that something isn’t configured correctly. You’re getting Paid Search traffic from somewhere, but you’re not getting the details about that traffic.

Fix #1: This could signal a problem with your AdWords connector. Make sure that the correct accounts are linked to your Google Analytics view.

Fix #2: If AdWords is connected properly, then something may be wrong with your tagging. We always recommend auto-tagging. Check to make sure this is enabled, or if you are using manual tagging, make sure you’re also passing through the utm_term parameter.

Browser and Browser Version

Audience > Technology > Browser & OS

When you visit a webpage, the page detects what is called a user agent. The user agent has information related to what device you are using as well as which browser and browser version. If you see (not set), it is likely accounting for a very small percentage of your traffic. Google had libraries to identify user agents so when it does not match, (not set) will show up.

This could indicate crawlers and bots, especially if you see a bounce rate and new sessions percentage near 100% and an average session duration of less than a second.

Fix: Make sure the option to exclude hits from known bots and spiders is checked in your View Settings.


Fix #2: If you are still seeing a lot of (not set) hits showing up in your browser reports, add the secondary dimension to see which service providers they are coming from and manually exclude with view filters.


Geo Location

Audience > Geo > Location
Audience > Technology > Network

A small percentage of (not set) hits may also show up in your locations report. Unlike the browser metrics, this is not necessarily a flag for spam and bot activity. Google Analytics determines the location of users from their IP address. As Jonathan Weber notes in this post, this information can’t always be determined – especially if your website isn’t connected directly to the device like with a virtual connection or from some mobile browsers.

Additionally, the Service Provider dimension may also appear as (not set) – which also 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. This also isn’t necessarily a flag for spam or bots, and is fairly common to see a small percentage of traffic with (not set). Check to see if these visits have transactions/goal completions/pageviews to help determine if they’re bots or not.

Reverse Goal Path

Conversions > Goals > Reverse Goal Path

The reverse goal path report shows goal completion locations as well as the previous three pages viewed. This is separate from goal funnels and will show all goals. “Not set” will always show up in this report. Why? Because it doesn’t always take three or more steps for users to complete goals (which is a good thing!). Remember, “not set” shows up when there is no data to show. So if someone enters the site and completes a goal right away (#1 in the example below), previous steps 2 and 3 would be “not set.”


Through all of the cases above and possibly many more, the overall explanation is that (not set) is a placeholder when metrics and hits are recorded without dimension information. Sometimes you can avoid seeing this in your reports by more thorough campaign tagging, event tracking and spam blocking, but other times it is an inherent part of the reports, such as in the reverse goal path.

Samantha is a Manager for the Analytics & Insight department at LunaMetrics. She has a passion for exploring data and loves the excitement of finding solutions and explanations behind metrics. Her background includes advertising, SEO, and analytics as well as involvement in the arts. When she isn't logged into Google Analytics, she can be found traveling, talking about food or playing games.

  • Simo Ahava

    Great article, thanks!

    I have one other, personally painful case for the Landing Page (not set): midnight cut-off.

    GA ends a session at midnight of the timezone configured in the profile. This means that if you have multiple views with different time zones, they can have different number of sessions.

    It also means that if you have a site like my blog which attracts some visitors from U.S., I tend to see (not set) landing pages in my reports. Why? Because my timezone is in Finland time, and midnight Finland is 5pm New York.

    So my friends in the East Coast are reading my blog at 23:59, sending engagement events I record on my articles. Then the clock strikes twelve and their session resets. The next engagement events they send are registered without a landing page, as it’s typical that people don’t navigate to other pages.

    This has led me to have around 6% (!!) faulty sessions in my profile with (not set) landing pages and certainly a large number of inflated sessions on top of that.

    I sincerely hate the midnight session break. I hate it so much. But from a time-function data model point of view I kind of understand it.

  • Andrea Moro

    Clear and simple. Thanks for taking your time to collate this for us all.

  • I find when Organic Keywords are (not provided) it completely stymies SEO efforts. Of course, it may be that Google monetizes this info behind the paywall, I have only ever used the free version of GA.

  • Great post! Thank you. It helped to fix my session problems with people reading articles and returning to them beyond 30min threshold .

  • Stellan Zuch

    I tried using utm parameters in Google URL Builder but couldn’t find “Campaign Term & Campaign Content” in google analytics All campaigns section. can anyone explain why it’s not showing or how to check it?

    I tried to check it in campaign-> all campaigns -> advanced but there i couldn’t find “keyword” under “campaign->dimension” tab.

    • Samantha Barnes

      This is a confusing thing in Google Analytics! Even though the labels are ‘utm_term’ and ‘utm_content’, these end up in the ‘Keyword’ and ‘Ad Content’ dimensions in the interface.

  • Ruggedrider

    Great advice! A quick question for you. I see (not set) in my mobile app data OS reports and it has the highest session amount. Is there anything I can I do to fix it? Thanks again for the article.

    • Zoe

      I’d love an answer to this question too! TIA

  • Hi Samantha, great article.

    I’ve just looked into our landing page (not set) problem – 100% came from the referral spam site www [dot] event-tracking [dot] com. Is this a common source of not set problems?

    • mr_bubs

      I don’t know if it’s common, but I’ve seen it too. we excluded this spam traffic from this site at the profile level.

    • Samantha Barnes

      Yes, that is common because the event is firing without an associated pageview. Highly recommended to add a filter to your view to include hits only from your site’s hostname- this should take care off the ‘ghost’ referral and event hits.

  • Dear Samantha~

    Thanks so much for an awesome article. I was able to pinpoint some key areas that needed to be improved on some sites I’m working on. I’ve added your article to my Evernote. I appreciate your hard work on this.


  • Дима

    https://goo.gl/Md30x0 not set problems

  • mr_bubs

    Fantastic stuff. Do you know if it’s possible to have a null landing page instead of (not set)? In some reports, i see lower total numbers when i add landing page as a secondary dimension, but there is no (not set) row.

    • Samantha Barnes

      That’s really interesting because we have been seeing similar behavior recently with other (not set) values changing to blank as well. I would keep an eye out for this and I may be changing this article soon!

      • mr_bubs

        Thanks, Samantha. It’s common for us to see this problem when custom dimensions or metrics are not initialized — for example, if i have an ‘Add to Favorite List’ event with a custom dimension of a product ID, and i set up a custom report with the event cat/action/label and the custom dimension, events sent with a null product ID would not show up at all. So we’ve started initializing all variables, especially in the dataLayer, as ‘(not set)’.

        Looking forward to any updates you have and thanks again. – Adam

  • Amrit Esh

    I am having problem in not showing real time visitors locations in analytics, especially when I search the website through organic keywords and land on the website. I have blocked my country and IP in the analytics, till facing the issue. the traffic is showing as direct but my location is not visible in analytics.Please help me out.@saman@disqus_BmezU9aPKc:disqus

    • Samantha Barnes

      If you are blocking your own IP address and even your whole country, you will not see your hits in the Real-Time reports or in Google Analytics at all.

  • susanad

    Very useful article, thanks! I wish you would elaborate a bit more on what else might cause hostname to be “not set” and any solutions for these circumstances. You say that “If you see a (not set) row, it is LIKELY from ‘ghost’ spam” but in my case the hostname filter seems to be filtering out legitimate traffic too to a Shopify site. Actually, the filter seemed to be working fine until March 30 when there was a drop in traffic in the filtered view. When I look at unfiltered view, some 80% of traffic has a hostname “not set.”

    I tried researching why this might be happening, but there doesn’t seem to be much documentation about Shopify specifically, besides the actual checkout pages possibly using virtual pageviews instead of regular ones. However, my issue is affecting all pages on the site to my domain (not just checkout pages).

    Any ideas why this might be happening?

  • Hi, Samantha. This is raly great article. I have one question about (not set). I have (not set) in Sales Performance report when I drill down to any transaction ID and choose Checkout Option as secondary dimention. I always see 7 items with checkout option (not set) and some correct number of items with correct checkout options:

    Can you give me please an advise why does this happen?

    • Samantha Barnes

      Hi Alex,

      When (not set) shows up, that means that there are hits sent without the Checkout Option populated. I would do some test checkout steps or transactions and check the data layer if you’re using Tag Manager or the on-page code to see where this information isn’t coming through.

      • The most interesting thing is that there is no any duplication or incorrect data. I’ve tried to do test transaction and only see this seven same items with (not set) in Checkout Option as secondary dimension. Double checked data layer and see no problem. Thanks for your answer. I’ll try to dig deeper.

        • Ameet Singh Thind

          Hi Alex, did you find a solution to this problem, as i am facing the same issue

  • Rahul Survase

    Hi ..Great article…Thank you so much..I have problem when i am fetching analytics data..the thing is for so many records ga:adwordsCampaignId and ga:campaign name are returns as (not set)..am is missing anything?? Please help..

  • I have integrated google analytic in android app but Analytic reports showing session for referral also. How can we stop from showing reports for referral session? I have not implemented anything for supporting referral session I want to show only direct session but my reports showing both direct and referral session.

  • Khushbu Solanki
  • Achilleas Tsitroulis

    https://uploads.disquscdn.com/images/7bc4901775d3fde01a4386b29cf8948adac857d3bcfcde0ea36b7ce7a18696a2.png Thanks!
    Any ideas on how to fix the “social network” – (not set) problem?

  • Shane Cunningham

    I have a customer’s site that is showing “not set” for AdWords campaign items, but only in the Behavior Flow charts for some reason. If I view any Acquisition reports, each campaign’s data appears correctly, and I have no “not set” items. However, when I view the same campaigns in any reports under Behavior, they all show up as “not set”. Any idea what I have setup incorrectly? To make matters more interesting, previous campaigns that are now no longer running used to show up just fine in the Behavior view. The only thing that I am aware of that has changed is that the site has been redesigned, but the GA code was still correctly set on each new page. Again, I am seeing matching data between Google AdWords reports and Google Analytics reports under Acquisition, but any Behavior reports show “not set”. Please assist with any ideas you might have. Thanks.

Contact Us.

Follow Us




We'll get back to you
in ONE business day.
Our Locations
THE FOUNDRY [map] LunaMetrics

24 S. 18th Street
Suite 100

Pittsburgh, PA 15203


4115 N. Ravenswood
Suite 101
Chicago, IL 60613


2100 Manchester Rd.
Building C, Suite 1750
Wheaton, IL 60187