Have you ever noticed the '(not set)' value instead of the actual value in Google Analytics 4? This means that GA4 doesn’t have data on this value or can’t interpret it, leading to '(not set)' in Google Analytics issues. This issue often arises due to data collection problems, such as improper configurations, missing parameters, or limitations in tracking code implementation.
Ensuring the correctly placed Google Analytics tracking code can help avoid '(not set)' values. Gaps in data collection can lead to '(not set)' values, indicating incomplete or missing user information like geographic location or session data. This value is a fly in the ointment for you as a marketing specialist. You have numbers, but it’s unclear what they mean or how to use them in your data analysis.
Additionally, getting a '(not set)' value in several standard Google Analytics 4 reports is a sign of an error in how web analytics is implemented on your site. It’s essential to observe this value when setting up analytics for the first time and when adding new functionality.
Note: This article was written in December 2018 and has been completely updated in September 2024 based on the most recent changes.
In Google Analytics 4 (GA4), '(not set)' appears as a placeholder when a dimension in your report lacks a value. This can occur for various reasons, such as when a specific parameter or dimension doesn't apply to the data being tracked or if there is an issue with tracking configuration.
For example, if you’re using GA4 to measure website data only, dimensions related to apps, like “App Store,” will show as '(not set),' which makes sense. However, issues arise when '(not set)' appears in areas where it’s unexpected or shouldn't be, indicating a potential issue with data collection or configuration.
When it comes to '(not set)' values in Google Analytics 4 (GA4) reports and dimensions, they can be frustrating, as they often indicate missing or incomplete data. These placeholders appear when GA4 can't assign specific values to a dimension, which can obscure important insights.
Here are the key reports and dimensions where you might encounter '(not set)' values in GA4:
This list covers a lot of ground, so let’s dive in to understand how to address '(not set)' issues in Google Analytics 4 reports.
One of the most common places to see '(not set)' is in the source/medium dimension, found in the Acquisition → User acquisition or Traffic acquisition reports in your Google Analytics account.
This dimension often shows '(not set)' because the campaign value isn’t added to the UTM parameters. When this happens, GA4 can't accurately track and report on the effectiveness of your marketing campaigns, leading to gaps in your data.
Always include the utm_campaign parameter along with utm_source and utm_medium when tagging URLs to ensure complete and accurate campaign tracking in GA4. This helps GA4 correctly attribute traffic to your campaigns, providing clearer insights into their performance. Regularly audit your URL tags to catch any errors or omissions early.
In GA4, the page_view event is automatically triggered at the start of each session, capturing key parameters like page_title, page_location, page_referrer, and page_path.
However, if this event fails to fire, these critical details go unrecorded, resulting in '(not set)' values for the landing page. Without these parameters, GA4 cannot accurately identify the landing page, leading to gaps in your data.
To ensure the page_view event is recorded for every session, consider extending the session timeout duration beyond the default 30 minutes. This can be adjusted up to a maximum of 7 hours and 55 minutes in GA4 settings. To do this, navigate to the Admin section, select Data collection and modification → Data streams → Configure tag settings.
From there, adjust the session timeout settings to better match your users' browsing habits.
While extending the session timeout can reduce the occurrence of '(not set)' values for landing pages, it may not completely eliminate them.
Additionally, for SPAs, ensure that the page_view event is correctly triggered whenever page content changes. These steps can help mitigate missing data and improve the accuracy of your GA4 reports.
In GA4, several dimensions related to Google Ads, such as Session Google Ads campaign, Ad group, keyword text, query, ad network type, and account name, can be found under Reports → Acquisition → Overview. Properly analyzing Google Ads data is crucial for understanding the effectiveness of your campaigns.
Google Ads reports are essential tools for analyzing the performance of advertising campaigns within Google Analytics. Properly configuring these reports helps avoid issues like '(not set)' values, which can hinder understanding ad performance and optimizing conversions.
If you encounter '(not set)' values in these reports, it indicates that GA4 is unable to capture specific data from your Google Ads campaigns, which can hinder your ability to analyze ad performance effectively.
To resolve '(not set)' issues in Google Ads dimensions, first ensure that your GA4 account is properly linked to all active Google Ads accounts. This connection allows for the automatic exchange of data, ensuring that your reports are complete.
Additionally, enable auto-tagging in your Google Ads account to minimize the risk of errors and ensure that all user interactions are tracked accurately. If you’re using manual tagging, carefully audit your UTM parameters to ensure they are correctly implemented.
By taking these steps, you can significantly reduce the occurrence of '(not set)' values and improve the accuracy of your Google Ads reporting in GA4.
The page title is a critical element in your GA4 reports, as it helps identify which page users are viewing. If the HTML <title></title> tag is missing or empty, GA4 cannot capture this information, leading to '(not set)' values in the Page Title dimension. This issue is uncommon but can occur if the website isn’t properly managed or if there are technical glitches.
To fix '(not set)' issues in the Page Title dimension, ensure that the HTML <title> tag is correctly set on every page. This includes making sure the GA4 tag fires only after the page title has been loaded. For Single-Page Applications, implement proper handling to update the title tag whenever the content changes.
To identify pages with missing titles, go to Reports → Engagement → Pages and screens, select the Page Title dimension, and add a secondary dimension of Page path and screen class.
Use a '(not set)' table filter to quickly find and address any pages missing their titles.
This will help ensure that your reports accurately reflect the pages users are interacting with.
Content groups in GA4 are useful for analyzing the performance of different types of content, providing insights into how various content categories engage users. The Content Group dimension is available by default under Reports → Engagement → Pages and screens.
However, you may encounter '(not set)' values in this dimension, indicating that GA4 is not receiving the necessary data.
To address '(not set)' issues in the Content Group dimension, first ensure that the content_group parameter is correctly configured in GTM. Double-check for any case sensitivity issues or spelling errors that might prevent GA4 from recognizing the values.
Also, make sure that the GA4 tag fires only after the content group values are pushed into the data layer and fully loaded. If any pages lack a content group setup, update them to include this configuration, ensuring consistent data across all your content.
By properly setting up and managing content groups, you can eliminate '(not set)' values and gain more accurate insights into your content performance.
The Measurement Protocol (MP) allows you to send events and data from external systems like CRM, PoS, and other platforms to enhance your GA4 data with additional context.
This is particularly valuable for businesses needing a comprehensive view of user interactions across different channels. However, the MP can only append data to existing sessions in GA4, and it works retroactively for sessions up to 72 hours old.
To minimize '(not set)' issues with the Measurement Protocol, ensure that you include all relevant session data, such as session ID, page location, and referrer, when sending events.
This requires carefully matching the session data collected on the client-side with the data sent via MP to maintain consistency. Additionally, be mindful of the 72-hour window for retroactive session updates, and consider the complexity that MP introduces to your GA4 setup.
The Country and other geographical dimensions, such as region and city, in GA4, rely on the IP address to determine the user’s location. When these dimensions show '(not set),' it typically indicates that GA4 could not accurately determine the user's location due to issues with the IP address.
To reduce '(not set)' values in geographical dimensions, consider minimizing the use of VPNs or proxies where possible. When using Measurement Protocol, ensure that session data, including IP addresses, is as complete as possible.
For ssGTM, avoid altering or removing IP addresses unless necessary, as this directly impacts the accuracy of location data. By taking these steps, you can improve the accuracy of geographical data in your GA4 reports.
The Language dimension in GA4 is typically determined by your browser’s settings. When you see '(not set)' in this dimension, it indicates that GA4 was unable to capture the user's language preference, which can occur for reasons similar to those affecting the browser dimension, with a few specific differences.
To reduce '(not set)' values in the Language dimension, ensure that language values are included with every event sent via Measurement Protocol. Review your ssGTM setup to confirm that the language parameter is not being excluded from data requests.
While '(not set)' values in the language are typically low and may not pose significant issues, if you notice a high occurrence (around 20% or more), it’s worth investigating and correcting the underlying causes to maintain accurate data tracking in GA4.
Event-scoped and item-scoped dimensions in GA4 only apply to the specific event with which they were sent, meaning they do not persist across other events. If a dimension is missing or shows '(not set)' in subsequent events, it’s likely because that dimension wasn’t included with those events.
For example, if you send an item_name with a view_item event but fail to include it with a purchase event, the item name will appear as '(not set)' in purchase-related reports.
To ensure consistent data in your reports, sending the same parameters across all related events throughout the user journey is essential. For instance, if you want to track how many purchases occurred based on item_list_name, you need to send the item_list_name parameter with both the view_item and purchase events.
Additionally, when using data from the Data Layer, ensure that all necessary values are pushed before firing GA4 tags to avoid sending undefined values.
User-scoped custom dimensions in GA4 should ideally persist across all subsequent events after they are first set. However, it has been observed that these dimensions sometimes fail to persist as expected, resulting in '(not set)' values even when they were sent correctly.
To mitigate this issue, consider setting the user property not only in the config tag but also in all event tags. Alternatively, switch to an event-scoped custom dimension, ensuring it is included in all relevant tags. Additionally, register custom dimensions as soon as possible after starting to send the associated user property to avoid retroactive '(not set)' values.
Technology-related dimensions, such as browser name, version, and operating system, can show '(not set)' in GA4 if the user agent string is missing or obscured.
There is no perfect solution when users intentionally hide their browser details, but minimizing the use of server-side tagging modifications and ensuring proper setup for Measurement Protocol events can reduce the occurrence of '(not set)' values. Be aware that some privacy tools may still lead to unavoidable gaps in your technology-related data.
While the common causes of '(not set)' values in GA4 are well-known, there are a few additional factors that could contribute to these issues. Understanding these can help further refine your data accuracy.
To avoid '(not set)' values in custom dimensions, ensure that these dimensions are consistently applied to all relevant events, and that the data types are correct. Allow up to 48 – 72 hours after creating a new custom dimension for GA4 to process the data fully.
If issues persist beyond this timeframe, review your setup for potential misconfigurations. Additionally, be aware of the limitations when sending custom parameters with automatically collected events, and monitor for any unusual traffic spikes that could indicate bot activity.
Recognizing the challenges posed by '(not set)' values, especially those linked to automatically collected events like first_visit and session_start, Google released an update on November 2, 2023. This update aims to mitigate these issues by aligning the parameter values of these automatic events with the first client-triggered event within the same session.
This update won’t completely eliminate '(not set)' values, but it’s expected to significantly reduce their occurrence. The enhancement was initially designed to assist with filtering these automatic events for sub properties in GA4 360 accounts, but all users can benefit from this improvement.
While it may not be a complete fix, any reduction in '(not set)' values is a welcome change, helping to provide more accurate and reliable data in your GA4 reports.
The '(not set)' value can be found in most Google Analytics 4 reports. It indicates that the system either doesn’t have certain data, or doesn’t recognize it. This happens for various reasons. Some of them we can resolve, some of them we can’t, but we can consider this when analyzing data.
In the context of universal analytics, addressing '(not set)' values is crucial for accurate data analysis, as these values can occur due to improper tracking code implementation or missing campaign parameters.
If you ignore the '(not set)' values in your reports, it’ll be costly for your business. Who likes to invest money in inefficient measures? Data corruption leads to misinterpreting reports and shaky decisions. So it’s better to be safe than sorry.
In GA4, '(not set)' appears as a placeholder when the system doesn’t have data for a specific dimension or can’t interpret the data provided. This often indicates issues like improper configurations, missing parameters, or limitations in tracking code implementation.
(not set)' in the Source/Medium dimension typically occurs due to incorrect or missing UTM parameters, a missing session_start event, session timeouts, server-side tagging issues, or the use of audience triggers that aren’t tied to active sessions.
To fix '(not set)' in the Campaign dimension, ensure that the utm_campaign parameter is included in your URL tagging along with utm_source and utm_medium. This helps GA4 accurately track and report on your marketing campaigns.
(not set)' in the Page Title dimension can be caused by a missing or empty <title> tag in the HTML, the GA4 tag firing before the page title is fully loaded, or issues with Single-Page Applications (SPAs) where the title isn’t updated properly.
To reduce '(not set)' values in Content Group dimensions, ensure the content_group parameter is correctly configured in Google Tag Manager (GTM), including proper case sensitivity and spelling. Make sure the GA4 tag fires only after the content group values are fully loaded into the data layer.
The November 2023 GA4 update aimed to reduce '(not set)' values by aligning the parameter values of automatically collected events like first_visit and session_start with the first client-triggered event in the same session. While it doesn’t eliminate all '(not set)' issues, it significantly reduces their occurrence, improving data accuracy.