
You open Google Analytics 4 to see where last month’s leads came from, and the top row reads (not set). Sometimes it is a handful of sessions. Sometimes it is a quarter of your traffic, and you cannot say which campaign earned the sales.
This guide is for Malaysian business owners and marketers who see (not set) in GA4 right now. It explains what the value means, where it appears, how much is normal, how to fix each case and how long the clean-up takes.
If GA4 shows almost no data at all, that is a different tagging failure. Start with our guide on fixing GA4 when it shows no data instead.
The short video below walks through the most common cases inside GA4, so you know what the reports look like before you start.
Source video: Watch on YouTube
Quick Answer: (not set) is the label GA4 uses when it has no value to show for a dimension. The visit or event was recorded, but one piece of information, such as the landing page, traffic source or campaign name, never arrived. The cause depends entirely on which dimension shows it.
Google’s own help article, What the value (not set) means in your reports, calls it a placeholder for missing information. So the problem sits in how data is collected, not in the traffic. Your customers did visit; GA4 just could not label part of the visit.
The fastest diagnosis is to note which dimension shows the value. The table maps each one to its usual cause.
| Dimension showing (not set) | Most likely cause | First thing to check |
|---|---|---|
| Landing page | Session had no page_view event | Session timeout and tag firing order |
| Session source / medium | Missing session_start or broken UTM tags | Google tag trigger and campaign links |
| Google Ads campaign, ad group, keyword | Ads account not linked or auto-tagging off | Admin › Product links › Google Ads links |
| Custom dimension | Registered under 24 hours ago, or parameter sent empty | Registration date and the event payload |
| Content group | Group value missing on some pages | Pages without a content_group value |
Source: compiled from Google Analytics Help, “What the value (not set) means in your reports”, checked October 2026.
Two lookalikes are worth separating early. An (other) row is not (not set); it appears when a report hits its row limit, as Google explains in About the (other) row. And a high Unassigned channel is a related but separate issue, covered in our guide to fixing unassigned traffic in GA4.
Can’t trust your marketing reports?
We set up GA4, Tag Manager and ad tracking so every ringgit of spend ties back to a real source. See how our digital marketing team handles tracking →
Quick Answer: In the GA4 properties ZenWeb audits for Malaysian businesses, the landing page report is the most common place to find (not set), followed by session source and medium, then Google Ads campaign fields. Custom dimensions and content groups trail behind, usually after a recent setup change.
When a client asks us about (not set) in GA4, we log which report raised the question and what the root cause was. The pattern holds across industries.
| Report where (not set) was found | Share of cases |
|---|---|
| Landing page | 38% |
| Session source / medium | 26% |
| Google Ads campaign / keyword | 18% |
| Custom dimensions | 12% |
| Content group and other | 6% |
Source: ZenWeb client tracking, Malaysia, 2024–2026. Figures illustrative of typical patterns.
Landing page leads because GA4 labels each session with the page from its first page_view. If a visitor leaves a tab open, the session times out, and their next click starts a new session with no page view and therefore no landing page.
Some missing values look similar but are not (not set). Age and gender rows that show unknown are usually a signals or thresholding issue; see why GA4 demographics go missing. Events that never appear in reports at all are covered in GA4 custom events not showing in reports.
Quick Answer: A small amount of (not set) in GA4 is normal and cannot be removed fully. As a working rule, under 2% of sessions on the landing page report is healthy, 2% to 5% is worth a look, and anything above 5% points to a setup problem you should fix.
Google does not publish an “acceptable” percentage. These are the bands ZenWeb uses when auditing Malaysian SME properties. To get your figure, divide (not set) sessions by total sessions for the same report and dates.
| Report | Healthy | Watch | Fix now |
|---|---|---|---|
| Landing page | Under 2% | 2% – 5% | Over 5% |
| Session source / medium | Under 1% | 1% – 3% | Over 3% |
| Google Ads campaign (paid sessions only) | Under 1% | 1% – 5% | Over 5% |
Source: ZenWeb operational audit guidance, Malaysian SME GA4 properties, 2024–2026. Illustrative bands, not a Google standard.
Three checks keep you from over-reacting:
Quick Answer: A (not set) landing page means the session had no page_view event. Fix it by making sure the Google tag fires a page view on every page as early as possible, and by lengthening the session timeout if your visitors leave tabs open. Then test the fix in Tag Manager preview mode.
Work through these steps in order. Each one rules out a common cause before you move to the next.
Who needs a longer timeout? Sites where people read long pages, compare quotations or switch to WhatsApp mid-visit, such as property, education and B2B service sites. A shop with short visits rarely does.
Quick Answer: (not set) in source, medium or campaign fields usually means the traffic arrived without usable tags. Link Google Ads to GA4, keep auto-tagging on, and tag every Meta, email and WhatsApp link with complete UTM parameters. Paid traffic you cannot attribute is budget you cannot judge.
Use this checklist for each traffic type:
| Traffic type | What to fix |
|---|---|
| Google Ads | Link the account in GA4 under Admin › Product links › Google Ads links, per Google’s linking guide. In Google Ads, turn on auto-tagging under Admin › Account settings › Auto-tagging, as described in About auto-tagging. |
| Google Shopping | Google notes that sessions carrying the srsltid parameter with a non-Google referrer can show (not set). Check your product URLs are not being rewritten. |
| Meta, TikTok, email, WhatsApp | Add utm_source, utm_medium and utm_campaign to every link. A missing or misspelt parameter leaves gaps. |
| Redirects and payment pages | Make sure redirects keep the query string, and list FPX or card gateways under unwanted referrals. |
One distinction saves a lot of time. (not set) is about reporting on ads that ran. If your ads are not running at all, the problem sits in the ad platform instead: see Google Shopping ads not showing, a Meta ad set that can’t be published or Meta catalog products getting no impressions.
If GA4 and Google Ads still disagree after the link is fixed, see why GA4 and Google Ads numbers don’t match. For naming rules, read our guide to UTM links not working in GA4.
Spending on ads but can’t see which ones work?
We audit your Google Ads link, auto-tagging and UTM setup so every campaign shows up by name. Get a tracking audit from our marketing team →
Quick Answer: Custom dimensions show (not set) when GA4 has not finished processing them, which takes up to 24 hours after registration, or when the parameter is missing or empty on some events. Dimensions are not retroactive, so data from before you registered them will always read (not set).
The most common causes, in order of how often we see them:
Content groups work the same way: any page without a group value shows (not set), and Google advises against sending the parameter with automatic events such as session_start.
Quick Answer: Fixes apply only from the day you make them. Expect new data to look clean within 24 to 48 hours for most changes. Old (not set) rows stay in your historical reports, so annotate the fix date and compare periods after it, not before.
| Fix applied | Day 0 | Day 1–2 | Past data fixed? |
|---|---|---|---|
| Tag trigger or page_view fix | Visible in Realtime | Clean in standard reports | No |
| Session timeout change | Applies to new sessions | Lower (not set) share | No |
| Google Ads link + auto-tagging | Link active | Data within 48 hours | No |
| UTM tags added to links | New clicks tagged | Campaign names appear | No |
| Custom dimension registered | Processing | Values after 24 hours | No |
Source: Google Analytics Help articles on (not set), sessions and Google Ads linking, combined with ZenWeb operational observations, 2024–2026.
Because nothing is corrected backwards, history matters. If GA4 keeps only two months of event data, older exploration detail may already be gone; check your settings in our guide to fixing GA4 data retention.
In reports you share with management, note the day tracking was fixed so nobody compares a broken month against a clean one.
Quick Answer: Most (not set) returns after a website change, a new consent banner or a new campaign launched without tags. Prevent it with a short tracking check after every site update, a shared UTM naming sheet and clear ownership of your GA4 and Tag Manager accounts.
A five-minute monthly check is enough for most SMEs: open the landing page report and note the (not set) share. If it climbs, look at what changed on the site that week.
Quick Answer: Bring in help when (not set) stays above 5% after you have checked triggers, tags and links, when paid campaigns cannot be attributed, or when you have no admin access to fix anything yourself. Those cases usually need a full tracking review rather than one more setting change.
Escalate to a specialist if any of these apply:
ZenWeb is a Google Partner with 500+ Malaysian clients. Our digital marketing services include a tracking review covering GA4, Tag Manager, ad links and consent mode in one pass.
(not set) in GA4 is frustrating but rarely a mystery. Find the dimension, match it to the cause, apply the fix and judge the result two days later. Most cases come down to tags firing in the right order and links carrying the right parameters. If direct traffic also looks inflated, read why GA4 shows too much direct traffic next, and for sales gaps see e-commerce tracking broken in GA4.
Not usually. (not set) means GA4 is missing one piece of information about a real session or event. Spam can add to it, because bot hits often skip page views, but most (not set) comes from tagging gaps such as late triggers, timeouts or untagged links.
No. GA4 does not reprocess past data after a fix. You can filter the row out of an exploration for a cleaner view, but the underlying data stays the same. Note the date you fixed the cause and compare periods after it.
The usual causes are an unlinked Google Ads account, auto-tagging switched off, or clicks from a second Ads account that is not linked. Link every account under Admin › Product links › Google Ads links and confirm auto-tagging is on in each one.
Most fixes show in Realtime the same day and in standard reports within 24 to 48 hours. Custom dimensions need about 24 hours after registration, and a new Google Ads link can take up to 48 hours to send data.
Want GA4 reports you can actually trust?
Book a free 30-minute session. We’ll check your GA4, Tag Manager and ad tracking, find where (not set) comes from and give you a clear fix plan.
Complete the form and our team will contact you to discuss your goals. Let’s grow your business.
Tell us a little about what you need. We'll open WhatsApp with your message ready to send.