What is Not Considered a Source in Google Analytics?
Here is the converted markdown content:
You've been dutifully checking your Google Analytics reports, but when you look at your traffic sources, you see things that don't quite make sense. Entries like "(direct) / (none)" or "(not set)" clutter your nice, clean list of sources like Google, Facebook, and Instagram. So, what's going on here? This article will explain exactly what those confusing labels mean and clarify what is - and isn't - considered a traffic source in Google Analytics.
First, What Is a Valid Source?
Before diving into what isn’t a source, let's quickly clarify what is. In Google Analytics 4, your user acquisition reports are typically broken down by "Source" and "Medium" to tell you where your traffic came from.
- Source: This is where the user came from. Think of it as the specific origin or website, like "google," "facebook.com," or the name of an email newsletter.
- Medium: This is how the user got to your site. It’s the category of the source, like "organic" for SEO, "cpc" for paid ads, or "referral" for a link from another website.
Together, they give you a clear picture. For example:
google / organic:Someone searched on Google and clicked on an unpaid search result.facebook.com / referral:Someone clicked a link to your site from a friend's organic (unpaid) post on Facebook.spring_promo / email:Someone clicked a link from your "Spring Promo" email campaign.
When everything is working correctly, this information is golden. But sometimes, GA4 can't identify the source or medium, leaving you with labels that aren’t really sources at all.
The Big One: Understanding (direct) / (none)
The (direct) / (none) entry is one of the most common and misunderstood items in any analytics report. It doesn’t represent a single channel, instead, it's a catch-all bucket for any traffic where Google Analytics has no referral data whatsoever. GA4 knows a user arrived, but it has no idea how. It's the equivalent of someone appearing at your front door without telling you if they drove, walked, or were beamed in.
So, where does this mysterious direct traffic come from? Here are the most common scenarios.
1. Users Typed Your URL Directly or Used a Bookmark
This is the classic, textbook definition of direct traffic. Someone knows your brand or website, opened their browser, typed yourwebsite.com into the address bar, and hit Enter. Similarly, if they saved your site as a bookmark and clicked it, Google Analytics will classify this as direct traffic because there’s no referring source to track.
2. Clicks From "Dark Social"
The term "dark social" refers to traffic from private sharing channels that web analytics tools can't easily track. When a friend sends you a link through a messaging app, there's no referring website to pass along to GA4. Common examples include:
- Text messages (SMS)
- Messaging apps like WhatsApp, Signal, or Facebook Messenger
- Company chat apps like Slack or Microsoft Teams
- Direct messages on social platforms like Instagram or LinkedIn
Any traffic coming from these untrackable links will almost always get lumped into the (direct) / (none) bucket.
3. Clicks from Untagged Marketing Campaigns
This is where things can get messy for marketers. If you send an email newsletter but don’t add UTM tracking parameters to your links, most of that traffic will appear as direct. Desktop email clients like Microsoft Outlook almost never pass referrer information. While some web-based clients like Gmail sometimes can, it's not reliable. Always using UTM tags (like utm_source=spring_newsletter) is the only way to be sure you're properly tracking email campaigns.
4. Clicks From Offline or Non-Web Documents
If you put a link to your website in a PDF, a Microsoft Word document, a presentation slide, or a mobile app, any clicks on that link will register as direct traffic. Since the click originated from an offline or non-web-based source, there’s no referring website for GA4 to record.
5. Transition from a Secure (HTTPS) to a Non-Secure (HTTP) Site
For security and privacy reasons, most browsers will not pass referrer information when traffic moves from a secure https:// site to an insecure http:// site. While less common today since most websites have switched to HTTPS, it can still contribute to your direct traffic if your site is not fully secure.
The takeaway: (direct) / (none) doesn’t mean your analytics is broken. It simply means the traffic's origin is unknown. Your job is to minimize the "unknown" part by properly tagging campaigns you control.
The Other Mystery: What Does "(not set)" Mean?
At first glance, (not set) looks a lot like (direct) / (none). But they are fundamentally different. While direct traffic means GA identified an absence of a referrer, (not set) means GA received information but the value for a specific dimension you're looking at (in this case, "Source") is missing or was never collected.
Think of it like getting a form back that has a blank field. You know the submission happened, but some information is just... missing. Here’s why you might see (not set) as a source.
1. Incomplete UTM Parameters
This is by far the most frequent cause. UTM parameters work as a team. To be properly registered as a campaign, a link needs at least utm_source, utm_medium, and utm_campaign. If you create a link with utm_medium=cpc and utm_campaign=winter_sale but forget to include utm_source, Google Analytics won't know where to file it. The session medium and campaign might be captured, but the source will appear as (not set).
2. Failed Auto-tagging Integrations
When you link services like Google Ads to Google Analytics and enable auto-tagging, Google Ads automatically attaches a parameter called a "gclid" (Google Click Identifier) to your URLs. GA4 then deciphers this gclid to get all the rich campaign data. However, if this process is misconfigured or a redirect on your site strips the gclid parameter from the URL before GA4 can read it, you can wind up with (not set) values where detailed Google Ads data should be.
3. Sessions Timing Out
By default, a session in GA4 ends after 30 minutes of inactivity. Let's say a user arrives from google / organic, browses a few pages, then leaves your site open in a tab to take a long phone call. An hour later, they come back to that tab and click to another page. A new session starts, but since they didn't come from an external source this time (they were already on the site), the original source/medium is lost. This can sometimes result in (not set).
The takeaway: (not set) is usually a sign of a technical tracking mistake or a URL tagging issue. It’s an indicator that your data collection can be improved.
Self-Referrals: When Your Own Site Shows as a Source
Another "source" that isn’t a real source is your own website. If you see your domain (e.g., yourwebsite.com) listed in your source report, it's called a self-referral. This is problematic because it tells you nothing new and, worse, it overwrites the original, valuable source data.
Imagine a user clicks a paid ad and lands on your site. Their session is correctly attributed to google / cpc. But then they click a link that takes them to an improperly configured subdomain or a page with a tracking issue. This can trigger a new session, with the "source" now listed as yourwebsite.com. Your paid ad attribution is gone, replaced with useless information.
Self-referrals are almost always caused by tracking problems:
- Missing Tracking Code on Some Pages: The user moves from a page with the GA4 tag to one without, and then back to one with it. This breaks the session and starts a new one attributed to your own site.
- Improper Cross-Domain Tracking: If your checkout process is on
shop.yourwebsite.comand your main content is onwww.yourwebsite.com, moving between them without proper setup will cause self-referrals.
How to fix it: You can quickly fix this in GA4. Go to Admin > Data Streams > [Your Web Stream] > Configure tag settings > Show all > List unwanted referrals. Add your own domain here. This tells GA4 to simply ignore referrals from your own site.
How to Get Cleaner, More Accurate Traffic Data
Eliminating every instance of (direct) / (none) and (not set) is impossible, but you can significantly reduce them by establishing good data hygiene practices.
- Master UTM Parameters: This is rule number one. Use a tool like Google's Campaign URL Builder to consistently tag links in emails, non-Google ad campaigns, social media bios, and influencer posts. Never leave it to chance.
- Create a UTM Naming Convention: Fights
(not set)and general data messiness. Decide on a consistent pattern (e.g., all lowercase, no spaces, usingsnake_caseor-) and stick to it. Is it "facebook," "Facebook," or "facebook.com"? Choose one and document it for your team. - Configure Unwanted Referrals: As mentioned above, immediately add your own domain and any third-party payment gateways (like PayPal or Stripe) to the list of unwanted referrals in your GA4 settings.
- Audit Your GA4 Tagging: Use Google's Tag Assistant tool or your browser's developer tools to periodically check that your GA4 tag is present and firing correctly on every page of your website.
- Test, Test, Test: Before you launch a major campaign with tagged links, click on one yourself in a private/incognito browser window. Then, check the Realtime report in GA4 to confirm the session source, medium, and campaign are all appearing as you expect.
Final Thoughts
Seeing entries like (direct) / (none), (not set), or your own website in your Google Analytics traffic reports can feel like a bug, but it's really GA4's way of telling you a piece of the story is missing. Understanding why a source is unknown - from "dark social" sharings to a simple typo in a UTM tag - is the first step toward getting a truer picture of where your audience is actually coming from and how effective your marketing efforts really are.
Of course, digging through GA4 to diagnose tracking issues and then jumping to other platforms like Google Ads, Facebook ads, and your CRM to build a complete view of performance can feel like a full-time job. We built Graphed because we believe getting clear answers shouldn't be so laborious. By connecting your critical data sources in one place, we let you create real-time reports and dashboards just by asking questions in plain English. Instead of trying to piece together the puzzle yourself, you can simply ask, "Which campaigns are driving sales this month?" and get an instant, unified answer.
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.