How to Fix (not set) in Google Analytics
Seeing "(not set)" in your Google Analytics reports can feel like hitting a frustrating roadblock. You're trying to analyze your performance, but a significant chunk of your data is unclassified. This article explains exactly what "(not set)" means, uncovers the most common culprits behind it, and gives you actionable steps to clean up your data for good.
What Exactly Does "(not set)" Mean in Google Analytics?
In short, "(not set)" is a placeholder value that Google Analytics uses when it has not received any information for a dimension you are looking at. It's not an error message or a bug in the system. Instead, it’s a signal that for a given session or hit, a specific piece of data was missing, so GA labels it as "(not set)" instead of leaving it blank.
Think of it like getting a form back from a customer where they filled out their name and email but left the "How did you hear about us?" field empty. The submission itself is valid, but one piece of information is missing. For Google Analytics, a session might be recorded with valuable data like time on page and conversions, but if it doesn't know the landing page or the traffic source, it will show "(not set)" for that dimension.
While a tiny percentage of "(not set)" data is normal, a high volume can mask important insights, making it difficult to accurately measure campaign effectiveness, user behavior, and overall marketing ROI.
Common Places Where "(not set)" Appears and Why
To fix the issue, you first need to identify where it's happening and diagnose the cause. While "(not set)" can appear for almost any dimension, it's most common in a few key reports.
1. In Acquisition / Traffic Reports (Source, Medium, Campaign)
When you see "(not set)" as a source/medium, it usually suggests a problem with your URL tracking parameters (UTMs). GA uses these tags to understand where your traffic is coming from. Without them, it often defaults to Direct traffic, but sometimes it just gives up and uses "(not set)".
- Missing or Incorrect UTM Parameters: This is the number one cause. If you're running email campaigns, social media ads, or any other marketing initiative and aren't meticulously tagging your destination URLs with
utm_source,utm_medium, andutm_campaign, GA won't know how to classify the traffic. - Redirects Stripping Referrer Data: Sometimes, marketing funnels involve redirects. For example, a user clicks a link that goes from
http://tohttps://or passes through a tracking link before landing on your site. If these redirects aren't configured correctly (e.g., they aren't server-side 301 redirects), they can strip the referral information, leaving GA with no data on the original source. - Mixed Auto-tagging and Manual Tagging: If you use Google Ads, you should enable auto-tagging, which automatically adds a
gclid(Google Click Identifier) to your URLs. If you also try to manually add UTM tags to those same links, the two can conflict and result in "(not set)" traffic data.
2. In the Landing Page Report
Seeing a high volume of "(not set)" in your Landing Page report (found under Behavior > Site Content > Landing Pages) is very common and often confusing. Remember, a landing page is the first page a user sees in a session.
- Sessions Without a Pageview Hit: This is the most frequent cause. A Google Analytics session can start with hits other than a pageview, such as an event hit or an e-commerce hit. For example, if a user lands on a page, and a third-party chat widget loads and fires an event to GA before the main GA pageview tag fires, a session begins. GA records the event, but since no page details were passed with it, the landing page for that session is recorded as "(not set)".
- Tracking Code Firing Order: This is closely related to the point above. If you use a tag-management system like Google Tag Manager, and an event tag is configured to fire on a trigger that happens before the standard Page View trigger, you can get "(not set)" landing pages.
- Session Timeout: A GA session expires after 30 minutes of inactivity by default. Imagine a user opens your website in one tab and leaves it for 45 minutes. They then return and click a button that triggers a GA event like "Play Video". Since the original session timed out, GA starts a new session. But this new session begins with an event hit, not a pageview hit. As a result, the landing page is logged as "(not set)".
3. For Other Dimensions (Like Screen Resolution or Device Category)
While less common, you may see "(not set)" show up for other technical or user-based dimensions.
- Hits from Non-Browser Sources: Some data can be sent to Google Analytics via the Measurement Protocol — a way to send raw hit data from a server or application (like a CRM or POS system) directly to GA. If these server-side hits don't include data for dimensions like screen resolution, browser version, or device category, it will appear as "(not set)".
- Specific Event Tracking: You might see "(not set)" under dimensions like Page Title when an event is tracked that isn't connected to a specific page load. For instance, an event that tracks an off-page interaction might not have a page title to associate it with.
How to Fix "(not set)" in Google Analytics: A Step-by-Step Guide
Troubleshooting "(not set)" is a process of elimination. The goal is to isolate the problem by cross-referencing dimensions until you find a clear pattern.
Step 1: Diagnose the Source Using Secondary Dimensions
Before you can fix the problem, you need to understand the context. Simply looking at a report full of "(not set)" values doesn't tell you much. The key is to add a secondary dimension to break down the data further.
Example 1: Investigating "(not set)" Landing Pages
- Navigate to Behavior > Site Content > Landing Pages.
- You'll likely see a "(not set)" row. Click the "Secondary dimension" dropdown above the table.
- Search for and select Source / Medium.
Now, look at the results. Does the "(not set)" landing page traffic correlate with a specific source or medium, like an email campaign or organic social? This tells you where to focus your efforts. For example, if it's tied to an email campaign, the issue is likely due to how events (like a pop-up) are firing for users arriving from emails.
Example 2: Investigating "(not set)" Traffic Sources
- Navigate to Acquisition > All Traffic > Source/Medium.
- Click on the "(not set)" link in the primary dimension column. This will filter the report to show only session data associated with "(not set)" as the source/medium.
- Add a secondary dimension of Landing Page.
This may reveal that all your "(not set)" traffic is going to one specific page. This could indicate a tracking code issue, a faulty redirect pointing to that page, or an un-tagged ad campaign directing users there.
Step 2: Fix Issues in Your Acquisition Reports
If your diagnosis points to tracking parameters, here’s how to tighten things up:
Standardize Your UTM Tagging
Create a strict, unified system for how your team creates UTM tags. Use a spreadsheet or a shared document to define your conventions and ensure consistency. Always use utm_source, utm_medium, and utm_campaign.
Use Google's Campaign URL Builder to create accurately formatted URLs and avoid typos. For example, a link in a Facebook ad for a summer sale could look like this:
https://www.yourstore.com/?utm_source=facebook&utm_medium=cpc&utm_campaign=summer_sale_2024
Check for Conflicting Tagging
Go to Admin > Property Settings and ensure Auto-tagging is enabled for your Google Ads account if you haven't done it already. If it is, never add manual UTM parameters to your Google Ads URLs. Let auto-tagging do its job.
Step 3: Fix Issues in Your Landing Page Report
Fixing "(not set)" landing pages almost always comes down to your on-site tracking setup.
Audit Tag Firing Order in Google Tag Manager (GTM)
If you use GTM, this is your first stop. Use the "Preview" mode to simulate a visit to your website. Check the timeline on the left to see the order in which your tags fire. You want to ensure your main Google Analytics Configuration or Page View tag fires before any other GA event tags on page load. If an event tag that sends data to GA is firing first, that's your problem.
- Adjust the triggers for your event tags. Instead of using a broad "All Pages" or "Container Loaded" trigger, you might need to use a "Window Loaded" trigger or even create a custom trigger sequence to ensure the pageview happens first.
Adjust Session Timeout Settings
If your site encourages long periods of idle time (e.g., content-heavy articles, video players, complex design tools), the default 30-minute timeout may be too short. You can adjust this in GA:
- Go to Admin > Property > Tracking Info > Session Settings.
- Adjust the "Session timeout" to a more appropriate duration, maybe 1 or 2 hours.
Warning: Be careful with this setting. Extending it can artificially lower your bounce rate and change other session-based metrics across your entire property.
Step 4 (Optional): Filter Out "(not set)" Data from a View
This method doesn't fix the underlying problem, but it can clean up your reports for easier analysis once you've addressed the root cause. This is best done in a new, test view so you don't permanently alter your main reporting data.
- Go to Admin > All Filters (under the Account column).
- Click + Add Filter.
- Give your filter a name, like "Exclude Not Set Landing Pages".
- Select Custom for the "Filter Type".
- Choose the Exclude option. In "Filter Field", select the dimension.
- From the "Filter Field" dropdown, select the dimension you want to clean up (e.g., "Landing Page").
- In the "Filter Pattern" box, type:
\(not set\)(Note: backslashes are needed because parentheses are special characters) - Apply this filter to your desired View(s) and save.
Again, treat this as a reporting patch, not a solution. The best approach is always to find and fix the source of the missing data.
Final Thoughts
Working through "(not set)" issues in Google Analytics is a rite of passage for anyone serious about data-driven marketing. By treating it as a signal of missing information, you can systematically diagnose the cause — from flawed UTM links to misconfigured tags — and implement solutions that make your data more accurate and trustworthy.
Tired of endlessly jumping between reports and setting up secondary dimensions just to find answers? We built Graphed to simplify this entire process. Instead of manually digging through GA, you can connect your data sources once and use plain English to ask what you need, like, "Show me my sessions with '(not set)' landing pages and break them down by traffic source." Graphed instantly builds the report for you, so you can spend less time wrangling data and more time acting on it.
Related Articles
What SEO Tools Work with Google Analytics?
Discover which SEO tools integrate seamlessly with Google Analytics to provide a comprehensive view of your site's performance. Optimize your SEO strategy now!
Looker Studio vs Metabase: Which BI Tool Actually Fits Your Team?
Looker Studio and Metabase both help you turn raw data into dashboards, but they take completely different approaches. This guide breaks down where each tool fits, what they are good at, and which one matches your actual workflow.
How to Create a Photo Album in Meta Business Suite
How to create a photo album in Meta Business Suite — step-by-step guide to organizing Facebook and Instagram photos into albums for your business page.