How to Fix (not set) in Google Analytics

Cody Schneider9 min read

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.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

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.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

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, and utm_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:// to https:// 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

  1. Navigate to Behavior > Site Content > Landing Pages.
  2. You'll likely see a "(not set)" row. Click the "Secondary dimension" dropdown above the table.
  3. 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

  1. Navigate to Acquisition > All Traffic > Source/Medium.
  2. 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.
  3. 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.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

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:

  1. Go to Admin > Property > Tracking Info > Session Settings.
  2. 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.

GraphedGraphed

Still Building Reports Manually?

Watch how growth teams are getting answers in seconds — not days.

Watch Graphed demo video

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.

  1. Go to Admin > All Filters (under the Account column).
  2. Click + Add Filter.
  3. Give your filter a name, like "Exclude Not Set Landing Pages".
  4. Select Custom for the "Filter Type".
  5. Choose the Exclude option. In "Filter Field", select the dimension.
  6. From the "Filter Field" dropdown, select the dimension you want to clean up (e.g., "Landing Page").
  7. In the "Filter Pattern" box, type: \(not set\) (Note: backslashes are needed because parentheses are special characters)
  8. 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