What is (not set) in Google Analytics?
Seeing "(not set)" in your Google Analytics reports can be frustrating, especially when you’re trying to understand your website's performance. It represents a gap in your data where Google Analytics couldn't attribute information to a specific dimension. This article will explain what "(not set)" means in different GA4 reports, why it appears, and how you can fix it to get cleaner, more reliable data.
What Exactly is "(not set)" in Google Analytics?
Think of "(not set)" as a placeholder. When Google Analytics processes data for one of your reports, it looks for a value for every dimension you're viewing. If it can't find or receive a value for a particular dimension - like a landing page, traffic source, or geographic location - it will label that bucket of data as "(not set)".
It’s important to understand that "(not set)" is not an error in Google Analytics itself. Instead, it’s a symptom of an issue with your data collection or tracking setup. It signals that information is getting lost somewhere between a user’s interaction and when that data reaches your GA4 property. A small amount of "(not set)" data (less than 5%) is often normal due to privacy settings or bot traffic, but large volumes indicate a problem that needs your attention.
Common GA4 Reports Where You'll Find "(not set)"
While "(not set)" can appear in almost any report, you'll most commonly encounter it in these key areas:
- Landing Page Report: Shown for sessions that didn't start with a
page_viewevent. - Traffic Acquisition Report (Session source / medium): Appears when GA4 can't identify where a user came from.
- Page Title and Screen Name Report: Shows up for events that aren't associated with a specific web page title or app screen name.
- Location (City/Region): Appears when GA4 cannot determine the user's geographic location from their IP address.
- Custom Dimensions &, Event Parameters: A classic issue where a custom event is fired without its required parameters.
Why Does "(not set)" Appear and How Can You Fix It?
To get rid of "(not set)", you first need to diagnose the cause. The solution depends entirely on which report you're looking at, as the root problems are often very different.
1. The Landing Page Report
In GA4, a "landing page" is the first page a user 'lands' on to start a new session. If you see "(not set)" here, it means GA4 recorded a session but couldn't attach it to a specific page view.
Common Causes:
- A session that has no
page_viewevents. This is the most common cause in GA4. A session can be initiated by an automatically collected event (likesession_startorfirst_visit) or another custom event that fires before thepage_viewtrigger. This can happen if a visitor opens your page, triggers an event, and then leaves before the page fully loads. - The measurement code (gtag.js or GTM) isn't firing correctly on the landing page, so while a
session_startevent is registered, the associatedpage_viewisn't. - An excessively long session timeout setting. The default is 30 minutes. If a user is idle on a page for longer than that, their original session ends. When they come back and click something, a new session starts, but since they didn't 'land' from an external source, the landing page can sometimes be reported as "(not set)".
- Filters that might be excluding
page_viewdata from specific pages. This is less common but can cause issues.
How to Fix It:
- Ensure universal tracking: Make sure your GA4 tracking code or GTM container is correctly installed on every page of your website. Use the Google Tag Assistant to confirm that the
page_viewevent is firing on your key landing pages. - Check your session timeout settings: Navigate to Admin > Data Streams > [Your Web Stream] > Configure tag settings > Show all > Adjust session timeout. Make sure the setting makes sense for your website’s user behavior. 30 minutes is standard, but if users are expected to be idle longer (e.g., on a long-form article or video page), consider increasing it.
- Review custom event triggers: If you have custom events configured in GTM, check their triggers. An event firing improperly before a page view can start a session prematurely, leading to a "(not set)" landing page.
2. The Traffic Acquisition Report (Source / Medium)
This is probably the most painful place to find "(not set)" because it means you aren't getting credit for your marketing channels. This value appears when GA4 processes a new user or session but doesn't have any referral data, campaign tags, or Google Ads information to attribute the visit.
Common Causes:
- Broken or Missing UTM Parameters: This is the main culprit. You might be running email campaigns or social media ads without proper UTM tagging. Even a tiny mistake, like a typo, can make the whole tag invalid.
- Improper Redirects: Redirects (like 301 or 302) on your server can sometimes strip the referral and UTM information from a URL before it reaches GA4.
- Mixed HTTP and HTTPS Pages: If a user clicks a link from a secure (HTTPS) page to a non-secure (HTTP) page, the browser often strips the referrer information for security reasons.
- Google Ads Auto-Tagging is Disabled: If you run Google Ads, you must enable auto-tagging. Otherwise, GA4 won't know that the traffic is coming from your paid campaigns, and it won't be able to attribute
source / mediumcorrectly.
How to Fix It:
- Enforce a strict UTM tagging strategy: Make sure every campaign link has, at minimum,
utm_source,utm_medium, andutm_campaign. Use lowercase and be consistent to avoid splitting data. Tools like Google's Campaign URL Builder can help prevent errors. - Enable Auto-Tagging in Google Ads: In your Google Ads account, go to Account Settings > Auto-tagging. Ensure the box next to "Tag the URL that people click through from my ad" is checked. Also, confirm inside GA4 (Admin > Product Links > Google Ads) that your accounts are properly linked.
- Audit your redirects: Ask a developer to check for any redirects that might be stripping URL parameters. Traffic from these sources might be mistakenly classified as Direct instead.
- Migrate to HTTPS: All websites should use HTTPS. If yours is still on HTTP, it’s not only a security risk but could also be the source of your "(not set)" traffic data.
3. Page Title &, Screen Name Report
In this report, "(not set)" simply means that an event occurred that was not associated with a page or screen view.
Common Causes:
- Events firing before a page title loads: This is common in Single Page Applications (SPAs) or on pages with slow load times. An event might be triggered by a user action before the
<title>tag in the HTML has been registered. - Custom events that aren't page-specific: You might have an event like
newsletter_signupthat can be triggered from an overlay, which isn't technically part of a specific page’s content. Since it isn't directly tied to apage_viewat that moment, it may not inherit a page title.
How to Fix It:
- Audit On-Page SEO: First, ensure every single page on your website has a unique and descriptive
<title>tag. This is basic SEO practice but is easy to overlook. - Adjust GTM trigger timing: If using Google Tag Manager, make sure your GA4 Configuration tag fires on "Initialization (All Pages)" and your other event tags fire at the appropriate time (like "Container Load" or "DOM Ready") to ensure the page has loaded first. This gives the page title time to be available.
4. Custom Dimensions and Event Parameters
When you set up custom events (e.g., form_submit), you often include event parameters to add context (e.g., form_name). If you see "(not set)" when looking at form_name, it's almost always because the form_submit event fired at least once without sending the form_name parameter along with it.
How to Fix It:
- Use GA4's DebugView: DebugView (in GA4's Admin panel) is your best friend here. Run tests on your website, fire the custom events, and watch the event stream in DebugView. You'll see exactly which parameters are being sent with each event hit. If a parameter is missing when it should be there, you've found the issue.
- Make parameters mandatory: In your GTM setup or custom JavaScript, ensure that the parameter is always sent with the event. If the value might legitimately be empty at times, you might have to code a fallback value (like "not applicable") to send instead of nothing, which would otherwise result in "(not set)".
Final Thoughts
Finding "(not set)" in your reports is less of an error message and more of a helpful hint pointing you toward gaps in your data tracking. By systematically identifying which reports are affected and applying the right troubleshooting steps for UTMs, tracking code installation, and event configuration, you can significantly clean up your data and get more reliable insights.
Tidying up your raw data sources is a great start, but we know how challenging it can be to connect all the dots across various platforms like Google Analytics, your ad accounts, and your CRM. Once your data is clean, Graphed allows you to connect all your data sources in one place. Instead of cross-referencing CSVs and fighting with individual platform reports, you can simply ask questions in plain English, like "Show me a dashboard of site sessions from GA4 compared to qualified leads from HubSpot for the last quarter." We can help you instantly visualize your full customer journey and let you focus on insights, not manual reporting.
Related Articles
How to Connect Facebook to Google Data Studio: The Complete Guide for 2026
Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.
Appsflyer vs Mixpanel: Complete 2026 Comparison Guide
The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.
DashThis vs AgencyAnalytics: The Ultimate Comparison Guide for Marketing Agencies
When it comes to choosing the right marketing reporting platform, agencies often find themselves torn between two industry leaders: DashThis and AgencyAnalytics. Both platforms promise to streamline reporting, save time, and impress clients with stunning visualizations. But which one truly delivers on these promises?