How to Recognize and Fix the Google Analytics (not set) Value in GA4 Reports

GA4 Reporting Analytics Strategies

icon Get in-depth insights

How to Set up [GA4] to BigQuery Export

icon Get in-depth insights

How to Set up [GA4] to BigQuery Export

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.

What Does '(not set)' Mean in GA4?

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.

How to Fix '(not set)' Issues in GA4 Reports and Dimensions

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:

  • Source/Medium
  • Campaign
  • Landing Page
  • Google Ads
  • Page Title
  • Content Group
  • Measurement Protocol
  • Country
  • Language
  • Event-Scoped and Item-Scoped Dimensions
  • User-Scoped Custom Dimensions
  • Technology Dimensions

    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.

    Fixing '(not set)' in Source/Medium

    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.

    Why does this happen?

    • Incorrect UTM Parameters: If your URLs are tagged with incorrect UTM parameters that don’t align with Google’s definitions, GA4 can’t correctly assign traffic to the source/medium.
    • Missing session_start Event: If the session_start event is missing, GA4 can’t record the source/medium for that session.
    • Session Timeouts: If a user’s session times out or ends, then resumes without a new session_start event, it can lead to '(not set)' in this dimension.
    • Server-side Tagging: Server-side tagging can also cause this if the session timeout duration isn’t correctly configured.
    • Audience Triggers: Using audience triggers can increase the occurrence of '(not set)' since these events may not be tied to active sessions.

      Solutions

      • Correctly tag your URLs with UTM parameters: According to Google's guidelines, ensure that all URLs are tagged with the correct UTM parameters, such as utm_source, utm_medium, and utm_campaign.
      • Ensure the session_start event is consistently triggered: The session_start event is crucial for capturing accurate session data. Make sure it’s consistently triggered at the beginning of each user session to properly track their activity.
      • Consider adjusting the session timeout duration: By default, sessions in GA4 time out after 30 minutes of inactivity, which can cause new sessions to start without proper tracking if users return later. Adjusting the session timeout duration to better fit your users' behavior can reduce instances of '(not set)' caused by unexpected session breaks.
      • Limit the use of audience triggers: Audience triggers can create additional events that aren’t tied to specific sessions, leading to '(not set)' values. Limiting the use of these triggers and avoiding the logging of additional events when audiences refresh can help keep your data clean.
      • Ensure session IDs are accurate in Measurement Protocol: If you’re using Measurement Protocol to send events, it’s vital to ensure that session IDs are accurate and match those collected client-side.

      Uncover in-depth insights

      Modern Data Management Guide

      Download now

      Bonus for readers

      Modern Data Management Guide

      Fixing '(not set)' in Campaign Reports

      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.

      Why does this happen?

      • Missing UTM Parameters: The utm_campaign parameter isn’t included in the URL tagging, leading to incomplete campaign tracking.
      • Incorrect Tagging: Errors in manual tagging of URLs can result in missing campaign information.
      • Auto-tagging Disabled: Not enabling auto-tagging in Google Ads data can lead to missing campaign data.

        Solution

        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.

        Hassle-free data analysis and reporting

        Easily collect, prepare, and analyze marketing data. Stay on top of your marketing performance

        Start Free Trial
        Automate your digital marketing reporting

        Fixing '(not set)' in Landing Page Reports

        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.

        Why does this happen?

        • Session Timeouts: GA4 sessions automatically timeout after 30 minutes of inactivity. If a user leaves the page and returns after the session has expired, new events like user_engagement and scroll may be logged without a corresponding page_view event if the page isn’t reloaded.
        • User Behavior: Users who navigate away from the landing page or remain idle for too long may trigger a new session without a new page_view, especially if they don’t reload the page or move to another one.
        • Single-Page Applications (SPAs): In SPAs, page content changes may not always trigger a new page_view event, leading to missing parameters for the landing page.

          Solution

          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.

          Fixing '(not set)' in Google Ads 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.

          Why does this happen?

          • Unlinked Accounts: If your GA4 account is not linked to your Google Ads account, GA4 won’t be able to retrieve data from Google Ads, resulting in '(not set)' values. Linking these accounts is crucial for seamless data flow.
          • Auto-tagging Disabled: Auto-tagging automatically adds tracking parameters to your Google Ads URLs, allowing GA4 to track user behavior after they click on an ad. If auto-tagging is not enabled, GA4 might miss important data, leading to '(not set)' values.
          • Manual Tagging Errors: If you rely on manual tagging and there are errors or inconsistencies in the UTM parameters, GA4 may not correctly attribute the traffic, causing '(not set)' values to appear.
          • Multiple Google Ads Accounts: If you have multiple Google Ads accounts running ads, and not all of them are linked to your GA4 account, data from unlinked accounts will appear as '(not set)'.

            Solution

            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.

            Close the Loop between Marketing & Revenue

            Merge advertising, web analytics, and internal data in one report for a comprehensive overview of your performance

            Start Free Trial
            Automate your digital marketing reporting

            Fixing '(not set)' in Page Titles

            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.

            Why does this happen?

            • Missing or Empty Title Tag: If the HTML <title> tag is missing or contains no content, GA4 won’t receive the page title information, resulting in '(not set)' in your reports.
            • GA4 Tag Firing Too Early: If the GA4 tracking tag fires before the page title is fully loaded or set, the title information may not be captured. This is particularly common in Single-Page Applications (SPAs) where page content changes dynamically without a full page reload.
            • Incorrect SPA Handling: In SPAs, the page title might be updated late or inconsistently, leading to the previous page's title being recorded instead, or resulting in '(not set)' if the title isn’t updated at all.

            Solution

            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.

            Fixing '(not set)' in Content Groups

            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.

            Why does this happen?

            • Data Not Sent to GA4: The most common reason for '(not set)' in Content Group is that the data is not being sent to GA4, despite the dimension being available. This issue typically arises when the content group parameter is not properly configured in Google Tag Manager (GTM).
            • Case Sensitivity: The content_group parameter is case-sensitive. If there are spelling errors or inconsistencies in capitalization when setting this parameter in GTM, GA4 will not recognize the values, leading to '(not set)'.
            • Incorrect or Empty Values: If the content_group parameter is sent with incorrect or empty values, GA4 will log it as '(not set)'. This can occur if the GA4 tag fires before the content group values are properly pushed into the data layer or before the content group element is fully loaded.

              Solution

              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.

              Fixing '(not set)' in Measurement Protocol

              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.

              Why does this happen?

              • Lack of Existing Client-side Data: The most common reason for '(not set)' values when using the Measurement Protocol is that it does not inherently use the client-side data already collected, such as page location, referrer, and other session-specific parameters.
              • Missing Parameters: When event data is sent via MP without these crucial parameters, GA4 cannot link the event to the appropriate session or page, leading to '(not set)' values across multiple dimensions.

                Solution

                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.

                Measure CPO and ROAS in GA4

                Automatically link your Ad Platforms cost data to Google Analytics 4 conversion data, so you can analyze your marketing KPIs and make fully informed decisions

                Start Free Trial
                Measure CPO and ROAS in GA4

                Fixing '(not set)' in Country

                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.

                Why does this happen?

                • VPNs and Proxies: Increasing use of VPNs and proxies allows users to mask or change their IP addresses, making it challenging for GA4 to determine the correct geographical location.
                • Measurement Protocol (MP): As discussed earlier, MP can cause '(not set)' values in multiple dimensions, including geographical ones. This occurs because MP does not allow for manual overriding of the IP address or user agent, resulting in a lack of location data.
                • Server-side GTM (ssGTM): If you use ssGTM, you can modify or even completely remove the IP address before it reaches GA4, leading to '(not set)' values for location-based dimensions.

                  Solution

                  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.

                  Fixing '(not set)' in Language

                  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.

                  Why does this happen?

                  • Measurement Protocol (MP): If you’re using MP and fail to include the language values with your events, GA4 won’t be able to record the language, resulting in '(not set)' values. It’s crucial to send language data with every event to ensure accurate tracking.
                  • Privacy Extensions: Browser privacy extensions or tools that hide browser details can also obscure the language settings, leading to '(not set)' in the language dimension.
                  • Server-side GTM (ssGTM): If your ssGTM setup excludes the language parameter from the data it sends, GA4 won’t receive this information, causing the language dimension to display as '(not set)'.

                    Solution

                    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 Are '(not set)' 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.

                    Why does this happen?

                    • Non-Persistent Dimensions: Event-scoped dimensions apply only to the event they’re sent with. If other events, like checkout or purchase, don’t include the same parameters, they’ll show '(not set)'.
                    • Inconsistent Parameter Usage: For item-scoped dimensions, such as item_name and item_id, if you send only the item_id with a purchase event but not the item_name, GA4 will display '(not set)' for the item name in reports related to purchases.

                    Solution

                     To ensure consistent data in your reportssending 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 Are '(not set)' in GA4

                    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.

                    Why does this happen?

                    • Persistence Issues: Despite being designed to persist, user-scoped custom dimensions may not always carry over to subsequent events, leading to '(not set)' values.
                    • Delayed Registration: If you start sending a user property but delay registering the custom dimension in GA4, any data collected before registration will show as '(not set)' in your reports.

                      Solution

                      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 Dimensions Are '(not set)' in GA4

                      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.

                      Why does this happen?

                      • Measurement Protocol Limitations: The Measurement Protocol does not allow the user agent to be sent, which means GA4 cannot capture browser-related details, resulting in '(not set)'.
                      • Server-side Tagging (SGTM): SGTM can modify or remove the user agent string for privacy reasons, which prevents GA4 from identifying browser details.
                      • Browser Extensions: Some users employ privacy tools or browser extensions that hide or alter the user agent string, leading to '(not set)' in technology dimensions.

                        Solution

                        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.

                        Possible Other Reasons for '(not set)'

                        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.

                        • Incorrect Data Types: If you send data in the wrong format, such as a string instead of an integer, GA4 might not recognize the value, resulting in '(not set)' for that dimension.
                        • Automatic Event Limitations: Custom parameters sent with automatically collected events like first_visit and session_start can only include default parameters such as page location, referrer, title, language, and screen resolution. Attempting to send additional custom parameters with these events can cause '(not set)' values.
                        • Bot Traffic: Although GA4 automatically filters out most bot traffic, lesser-known bots can still slip through. These bots typically don’t engage with the site in a meaningful way, which can lead to '(not set)' values across various dimensions due to the lack of interaction.

                        Solution

                        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.

                        Google's Update to Reduce '(not set)' Values in GA4

                        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.

                        What Does This Mean?

                        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.

                        Key Takeaways on Fixing '(not set)' in GA4

                        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.

                        Automate your digital marketing reporting

                        Manage and analyze all your data in one place! Access fresh & reliable data with OWOX BI — an all-in-one reporting and analytics tool

                        Start Free Trial
                        Measure CPO and ROAS in GA4

                        FAQ

                        Expand all Close all
                        • What does '(not set)' mean in Google Analytics 4 (GA4) reports?

                          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.

                        • Why do I see '(not set)' in the Source/Medium dimension?

                          '(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.

                        • How can I fix '(not set)' values in the Campaign dimension?

                          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.

                        • What causes '(not set)' values in the Page Title dimension?

                          '(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.

                        • How can I reduce '(not set)' values in Content Group dimensions?

                          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.

                        • How did the November 2023 GA4 update help with '(not set)' values?

                          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.

                        icon Get in-depth insights

                        How to Set up [GA4] to BigQuery Export

                        icon Get in-depth insights

                        How to Set up [GA4] to BigQuery Export