What is Not Set in Google Analytics 4?
Seeing "(not set)" in a Google Analytics 4 report can feel like hitting a data dead-end. You're looking for clear answers about your website's performance, but instead, you get a vague, unhelpful placeholder. This article will cut through the confusion, explaining exactly what "(not set)" means, the most common reasons it appears in your reports, and how you can fix it for cleaner, more reliable data.
What Exactly Does "(not set)" Mean in GA4?
In Google Analytics 4, "(not set)" is a placeholder value used when a specific piece of information - known as a dimension - is missing for a given event or session. Think of it like a shipping label on a package. You received the package (the hit or event), but the "From" address (the specific dimension) was either left blank, was unreadable, or was never provided in the first place.
It’s important to understand that "(not set)" is not a single error. Instead, it's a symptom that can have many different root causes depending on which report you're looking at. Finding the source requires a bit of detective work, but once you know where to look, you can often resolve the issue and prevent it from muddying your data in the future.
Common Reports Riddled with "(not set)" (and Their Causes)
Let's break down where you're most likely to encounter "(not set)" and what's usually causing it in each specific case. The context of the report is everything.
1. The Landing Page Report
This is probably the most common and confusing place to see "(not set)". You might look at your report and see that a significant number of your sessions don't have a landing page, which seems impossible. How can a session start without a page?
- The Primary Culprit: Session Timeout and Non-Pageview Events. GA4’s session timeout is 30 minutes by default. Imagine a user visits your "About Us" page and then leaves the tab open to go have lunch. 45 minutes later, they come back and scroll down the same "About Us" page. This scroll fires a
user_engagementevent. Because more than 30 minutes have passed, GA4 starts a new session. However, the first event in this new session isuser_engagement, not apage_view. Sinceuser_engagementisn't tied to a specific page URL in the same way a page view is, the "Landing page" dimension for this new session is registered as "(not set)". - Measurement Protocol Hits: If you are sending data to GA4 from a server-side application using the Measurement Protocol (for example, tracking when an offline subscription renews), these hits might trigger a new session. If the hit you send doesn't include the necessary page location (
dl) and page title (dt) parameters, the landing page will appear as "(not set)".
What to do: For the most part, "(not set)" in the landing page report is a normal consequence of how GA4 measures sessions. You can reduce its frequency by extending the session timeout duration (under Admin > Data Streams > Configure tag settings > Show more > Adjust session timeout), but you can't eliminate it entirely. It's often best to filter it out when doing analysis to focus on sessions that began with actual page views.
2. Traffic Acquisition or User Acquisition Reports
When you see "(not set)" in reports detailing your traffic source, medium, or campaign, it's almost always an issue with campaign tracking. GA4 doesn’t have enough information to categorize where the user came from.
- Missing or Incorrect UTM Parameters: This is the number one cause. If you're running email campaigns, social media ads, or linking from partner websites and not using proper UTM codes, GA4 can't attribute the traffic. To work correctly, a manually tagged URL needs, at minimum,
utm_source,utm_medium, andutm_campaign. Forgetting even one of these can sometimes lead to classification issues. - Redirects Stripping Parameters: Sometimes, marketing teams use link shorteners (like Bitly) or internal redirects for cleaner-looking URLs. If these redirects are not configured correctly, they can strip the UTM parameters from the URL before the user lands on your site. The user gets to the right page, but the tracking data is lost along the way.
- Auto-tagging Issues with Ads Platforms: For Google Ads, you should always have auto-tagging enabled. This automatically appends a
gclid(Google Click Identifier) to your URLs, which gives GA4 all the rich campaign, ad group, and keyword data it needs. If auto-tagging is off and you're not painstakingly using manual UTMs for every ad, your Google Ads traffic can fall into "(not set)".
What to do: Establish a rigid process for creating UTM-tagged URLs for all manual marketing efforts. Use a consistent, lowercase naming convention and use a UTM builder spreadsheet to avoid typos. For ads, double-check that your Google Ads and GA4 accounts are correctly linked and that auto-tagging is enabled in your Google Ads account.
3. Google Ads Reports
Seeing "(not set)" in reports dimensioned by Google Ads Campaign, Ad Group, or Keyword is a clear signal that the data handshake between Google Ads and Google Analytics 4 is broken.
- Unlinked Accounts: This is the simplest and most common problem. If your Google Ads account isn't linked to your GA4 property, GA4 cannot fetch the detailed campaign information associated with the click IDs (
gclid) coming from your ads. - Auto-Tagging Disabled: Repeating this one because it’s critical. Even if your accounts are linked, if auto-tagging is turned off in Google Ads, a
gclidwill not be passed, and GA4 will have no ad-specific data to associate with the session.
What to do: Navigate to the GA4 Admin panel and check your Product Links (Admin > Product Links > Google Ads Links). Make sure your correct Google Ads account is listed and linked. Then, log in to your Google Ads account and confirm that auto-tagging is enabled in the account settings.
4. Region/City and Other Geographic Reports
Occasionally, you'll see "(not set)" for dimensions like city, region, or even country. This means GA4 was unable to determine the geographic location of the user.
- IP Address Obfuscation: This is usually out of your control. Users on a VPN, a private corporate network, or using certain privacy tools may have their IP address masked. Google's IP geolocation databases are also not 100% complete, so sometimes an IP simply can't be resolved to a specific location.
What to do: There is very little you can do to action here. The presence of some "(not set)" data in geographic reports is normal and generally represents a small fraction of your overall traffic.
Your Action Plan: How to Systematically Hunt Down "(not set)"
Instead of feeling overwhelmed, follow this systematic approach to investigate and fix your "(not set)" issues.
- Isolate the Problem Report: Start by identifying exactly which report is showing "(not set)". The cause for a landing page issue is entirely different from a traffic source issue.
- Add a Secondary Dimension: This is your most powerful troubleshooting tool. For example, if you see "(not set)" in your Landing page report, add Session default channel group as a secondary dimension. You might find that "(not set)" is overwhelmingly associated with the "Direct" or "Organic Search" channels, which supports the session-timeout theory. If it's your Traffic source report, add Landing page + query string as a secondary dimension. You may see that the traffic all points to one page, indicating a specific untagged campaign is the issue.
- Conduct a Full UTM Audit: Check all your active non-Google marketing campaigns. Are the URLs properly tagged? Are they consistent? A common error is using different casings, like "Email" and "email," which GA4 treats as two separate mediums. Create a simple spreadsheet for your team to build and log all campaign URLs to enforce consistency.
- Verify Your Account Links: Go into the GA4 Admin and double-check your Google Ads and Search Console product links. It’s a simple step that can solve major data gaps.
- Review Custom Events and Measurement Protocol: If you are sending custom events via Google Tag Manager or from a backend server, review their configuration. Make sure you are passing all relevant parameters like
page_locationandpage_titlewith those events to provide proper context. Missing parameters are a common reason for seeing "(not set)" in dimension reports that you've built yourself in Explorations.
Final Thoughts
Dealing with "(not set)" values in Google Analytics 4 is a common challenge, but it's far from insurmountable. By understanding that it’s a symptom of missing information rather than a bug, you can use the context of your reports and secondary dimensions to diagnose the root cause and implement changes that lead to cleaner, more actionable data.
Wrestling with reports and hunting down inconsistencies like this is often tedious, time-consuming work. We built Graphed to cut out that entire layer of manual analysis. Instead of digging through GA4, adding filters, and trying to reconcile data, our platform plugs directly into your data sources. You can simply ask plain-English questions like, "What were my top 10 landing pages from paid search last week?" and get an instant, accurate visualization, freeing you up to focus on strategy instead of getting lost in the weeds.
Related Articles
How to Enable Data Analysis in Excel
Enable Excel's hidden data analysis tools with our step-by-step guide. Uncover trends, make forecasts, and turn raw numbers into actionable insights today!
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.