GA4 (not set): Steps to Remove and Resolve Data Issues
What is (not set) in GA4?
GA4 uses a placeholder called (not set) whenever it does not receive any information for a particular dimension.
Why does (not set) appear in GA4 reports?
The number 1 reason for (not set) appearing in your GA4 reports is because you are either not tagging ad URLs or your tagging is incorrect or incomplete.
Tag ad URLs by using the UTM tracking parameters (manual tagging) or via the auto-tagging feature.
Regularly monitor and validate your tagged URLs to identify and fix any (not set) issues that may impact your GA4 data.
Seeing (not set) data in your GA4 reports is common and normal, especially during the first 24 to 72 hrs.
For example, you may see a value of (not set) for a custom dimension during the first 24 hours after its creation.
This occurs because it takes some time for GA4 to process and populate the data for newly created custom dimensions.
Similarly, Server-side tracking can sometimes delay data processing, especially if your server is experiencing high traffic or latency.
In such cases, data might not be available in GA4 reports immediately, and you could see (not set) values temporarily.
Note: Sometimes, you may need to wait for up to 72 hours for (not set) to disappear from your GA4 reports.
(not set) could also appear in your GA4 reports due to various factors which are beyond your control.
For example, some Adblockers and privacy extensions can cause missing source or medium information, thus resulting in (not set) as the value of source or medium dimension.
Whenever the value of a dimension is not passed to GA4 for whatever technical reason, expect to see (not set) data in your reports.
There are many reasons to have (not set) values in the reporting, and these reasons vary from report to report depending upon the dimension selected.
If the (not set) values contribute to the majority of your GA4 data, it is likely that there are significant issues with your GA4 implementation, and you should investigate and fix the errors.
Note: You can minimise (not set) from appearing in your GA4 reports, but in most situations, you can not eliminate it 100%. There will always be some (not set) issues.
Get weekly practical tips on GA4 and/or BigQuery to accurately track and read your analytics data.
How to remove GA4 (not set) Landing Page?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Landing Page’ dimension:
In GA4, (not set) can appear for the landing page dimension when a session doesn’t have a page_view event associated with it.
The ‘page_view’ event needs to be the first event in a session for GA4 to correctly set the landing page.
GA4 uses the first ‘page_view’ event of a session to determine the landing page.
If any other event fires before the ‘page_view’ event, the landing page is recorded as “(not set)“.
This is the most common cause of (not set) landing pages appearing in your GA4 reports.
It is unlikely that you can 100% eliminate the issue of (not set) landing pages because of various factors that could be outside of your control, but you can certainly minimise this issue.
By implementing the following measures, you can significantly increase the likelihood that the ‘page_view’ event will be the first event in a GA4 session:
- Exclude today and yesterday from your date range before analyzing “(not set)” landing pages.
- Extend your GA4 session timeout setting.
- Aim for your GA4 configuration tag to fire in less than one second.
- Use the standard implementation of GA4 to avoid (not set) landing pages.
- Verify that the ‘page_view’ event is firing as expected when a user lands on your website.
- Configure your GTM server-side tagging correctly.
- Correctly configure your Measurement Protocol requests.
- Avoid immediate redirects without logging the initial page load.
- Avoid redirecting users to the homepage or some other page instead of a 404 page.
- Spambot attacks can result in (not set) landing pages.
#1 Exclude today and yesterday from your date range before analyzing “(not set)” landing pages.
You could temporarily see (not set) landing pages appearing in your GA4 reports for the first 24 to 48 hrs as GA4 has not completed data processing.
To get a more accurate picture of “(not set)” landing pages:
- Exclude today and yesterday from your date range.
- Set your date range to end at least 48 hours ago.
For example, if today is October 1, 2024, set your date range to end on September 29, 2024, or earlier.
Note: Data processing time can vary based on your property’s event volume:
- Smaller GA4 properties may see complete data faster, sometimes within 24 hours.
- Larger GA4 properties with high traffic volumes might require 48 to 72 hours hours for the most complete data.
#2 Extend your GA4 session timeout setting.
One of the best ways to ensure that a GA4 session starts with the ‘page_view’ event is by extending your GA4 session timeout setting from 30 minutes to 7 hours 55 minutes:
A GA4 session can start without a pageview/screenview.
So you could end up with views or user engagements with no sessions.
This could result in (not set) appearing as the value of your ‘Landing Page’ dimension.
When you use the maximum session timeout allowed by GA4, you can stop the GA4 session with pageview/screenview from expiring early, thus greatly reducing the chance of starting a new GA4 session without a pageview/screenview.
#3 Aim for your GA4 configuration tag to fire in less than one second.
The GA4 Configuration tag (aka Google tag) fires the ‘page_view’ event.
If the configuration tag takes longer than one second to fire, the ‘user_engagement’ event is most likely to fire first.
This leads to ‘(not set)’ landing pages because GA4 uses the first event to determine the landing page.
Several factors can delay the firing of the GA4 configuration tag:
- Slow page load times.
- Complex GTM setups.
- Network latency.
- Large amounts of content or scripts on the page.
Here is what you can do to speed up the firing of the GA4 configuration tag:
- Make your web pages load faster, esp. on mobile devices.
- Place GTM container code as high as possible in the <head> section of your web pages so that Google Tag Manager (GTM) start loading as early as possible.
- Make sure that the GA4 Configuration tag (aka Google tag) is triggered on All Pages and fires before any GA4 event tag.
- Minimize GTM container size by removing unnecessary tags, triggers, and variables. Use built-in variables when possible.
- Delay the firing of non-essential tags in favour of the GA4 configuration tag.
- Use Server-side tagging, as it can help speed up the firing of the GA4 configuration tag.
#4 Use the standard implementation of GA4 to avoid (not set) landing pages.
Standard implementation (hardcoded Google tag or via GTM) gives you direct control over when and how the GA4 tags fire.
This ensures that the ‘page_view’ event, which sets the landing page, fires correctly and at the right time.
Using a plugin or CDP (like ‘Segment’) to deploy Google tag and/or GA4 event tags is a non-standard implementation of GA4 which is neither recommended or supported by Google.
When using plugins or CDPs to deploy Google tag and/or GA4 event tags, there’s an additional layer that can potentially introduce timing issues with event firing or data discrepancies, leading to more “(not set)” landing pages.
Plugins and CDPs may alter the order in which events are processed and sent to GA4, potentially causing other events to fire before the ‘page_view’ event.
#5 Verify that the ‘page_view’ event is firing as expected when a user lands on your website.
Use tools like Google Tag Assistant and developer console to verify that the GA4 tracking code is firing correctly and that the ‘page_view’ event is firing as expected when a user lands on your website.
Test your website on different browsers (Chrome, Firefox, Safari, etc.) and devices (desktop, mobile, tablet) to ensure that the ‘page_view’ event is firing consistently and is the first event to fire.
#6 Configure your GTM server-side tagging correctly.
GTM Server side tagging can increase (not set) landing pages when not configured correctly.
For example,
If the ‘page_view’ event is not sent or is delayed in reaching the server-side GA4 tag, GA4 cannot correctly attribute the first page the user lands on, which could result in (not set) being recorded for the landing page.
If the consent mode or other privacy settings are not correctly handled, it can prevent the ‘page_view’ event from being sent to the server-side GTM container which can lead to (not set) landing pages.
Set up a trigger in Server-Side GTM that only fires ‘user_engagement’ events when they don’t start a session.
#7 Correctly configure your Measurement Protocol requests.
Misconfigured Measurement Protocol requests can lead to (not set) landing pages.
If the landing page information is missing or not provided in the Measurement Protocol request, GA4 will use the placeholder (not set) for the ‘Landing Page’ dimension in your reports.
The ‘page_location’ parameter is crucial for setting the landing page in GA4.
If this parameter is missing or incorrectly formatted in the Measurement Protocol request, GA4 won’t be able to determine the landing page.
In Measurement Protocol requests, ensure that the ‘page_view’ event is sent as the first event of a GA4 session.
Always send measurement protocol requests with all the required parameters.
#8 Avoid immediate redirects without logging the initial page load.
GA4 determines the landing page based on the first ‘page_view’ event of a session.
If the redirect happens immediately before the ‘page_view’ event can fire, GA4 may not be able to capture the original landing page leading to (not set) landing pages.
Set a small delay of 1 second before redirecting the user. This ensures that the ‘page_view’ event is correctly recorded.
#9 Avoid redirecting users to the homepage or some other page instead of a 404 page.
If a user lands on a page that no longer exists and is automatically redirected to the home page or some other page, it could result in ‘(not set)’ being reported in GA4 for the landing page.
GA4 determines the landing page based on the first ‘page_view’ event of a session.
If the redirect happens before this event can fire on the non-existent page, GA4 may not be able to capture the original landing page.
If the redirect causes some other GA4 event(s) to fire before the ‘page_view’ event, that could also result in a “(not set)” landing page.
Instead of redirecting users to the homepage, create a custom 404 error page that clearly informs the user the page doesn’t exist.
This allows GA4 to capture a valid ‘page_view’ event for the 404 page, ensuring that the landing page is set to the non-existent page they originally tried to visit.
If you have to redirect users to the home page or some other page, set a small delay of 1 second before redirecting the user.
This ensures that the ‘page_view’ event is correctly recorded.
You can implement this with a custom HTML tag in GTM to delay the redirect.
#10 Spambot attacks can result in (not set) landing pages.
Spambots often send fake traffic to websites. They may not trigger the ‘page_view’ event which GA4 uses to determine the landing page.
You should filter out all such traffic from your reports before you analyze the (not set) landing pages.
Related Articles: How to Stop Google Analytics Spam – Remove Referral Spam.
How to remove GA4 (not set) Page Title?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Page title and screen class’ dimension:
Make sure that all of the web pages contain the title (<title>..</title>).
To find the list of web pages missing the title tag, add a secondary dimension called ‘Page path and screen class’ and then filter out the (not set) results:
Once you find the list of web pages which are missing titles, ask your developer/SEO to add the title tags to these pages.
Note: If the title information is missing or not provided in the Measurement Protocol request, GA4 will use the placeholder (not set) for the ‘Page title and screen class’ dimension.
How to remove GA4 (not set) Source/Medium?
Whenever GA4 is unable to determine the source or medium for a session, it reports (not set) as the value of the source or medium dimension:
GA4 may be unable to determine the source or medium for a session because of the following factors:
- Missing or incorrect UTM parameters
- Missing ‘session_start’ event
- Adblockers and privacy extensions.
- Measurement Protocol
- Audience Triggers
#1 Missing or incorrect UTM parameters.
UTM parameters in a URL help GA4 identify the source, medium, and campaign for a session.
If these parameters are missing or incorrect, GA4 may not be able to attribute the session to a specific source or medium.
Tag ad URLs by using the UTM tracking parameters (manual tagging).
Use the Campaign URL Builder to make sure that your manual tagging is correct.
#2 Missing ‘session_start’ event.
If the session_start event is not correctly tracked or is missing, GA4 might not be able to determine the source or medium for a session.
The ‘session_start’ event in GA4 is automatically triggered whenever a new session starts.
However, in GA4, a new session can also start without a ‘session_start’ event if the previous session has timed out.
This will result in missing ‘session_start’ events in your data.
When you use the maximum session timeout allowed by GA4 (which is 7 hours 55 minutes), you can stop the GA4 session with pageview/screenview from expiring early, thus greatly reducing the chance of starting a new GA4 session without a ‘session_start’ event.
There are several other factors which could also cause the ‘session_start’ event not to be sent to your GA4 property:
#1 If a user leaves your website before the ‘session_start’ event is sent to your GA4 property, it could result in missing ‘session_start’ events in your data.
#2 Ad-blockers or privacy extensions in a user’s web browser can stop the ‘session_start’ event from being sent to your GA4 property.
#3 Incorrect GA4 configuration, network issues and JavaScript errors can cause the ‘session_start’ event not to be sent to your GA4 property.
Make sure GA4 tracking is set up correctly.
#3 Adblockers and privacy extensions.
Some Adblockers and privacy extensions can cause missing source or medium information, thus resulting in (not set) as the value of source or medium dimension.
#4 Measurement Protocol.
If the source/medium information is missing or not provided in the Measurement Protocol (MP) request, GA4 will use the placeholder (not set) for any dimension related to the source or medium.
Make sure you send MP events using a valid session ID (the ID of the session that was already recorded by GA4).
When events are not correctly tied to a session, the ‘source/medium dimension may show up as ‘(not set)’, which indicates missing data.
When sending events that occurred in the past using the GA4 MP, you need to include not only the valid ‘session id’ but also the timestamp when the event occurred.
This helps GA4 to accurately attribute the event to the correct session and time period.
The timestamp should be sent using the ‘timestamp_micros’ parameter, representing the number of microseconds since the Unix epoch (January 1, 1970) at which the event occurred.
In the context of sending events via GA4 MP, the “past” refers to any time that has already occurred, and more specifically, before the current time the event data is being sent.
If an event occurs in real-time and you send that data to GA4 immediately, that would not be considered “in the past.”
However, if an event occurred, for example, two hours ago, and you are only now sending that data to GA4, that event would be considered as having occurred “in the past.”
GA4 uses the ‘timestamp_micros’ parameter to determine whether an event occurred in the past.
If the timestamp_micros parameter is less than the current time, then the event is considered to have occurred in the past.
Note: GA4 MP Events can be backdated up to 3 calendar days based on your GA4 property‘s timezone.
#5 Audience Triggers.
The Audience Triggers in GA4 fire an event when users match the definition of an audience and become members.
By using GA audience triggers, you can create complex events (conversions) in GA4.
The use of audience triggers in GA4 can also increase the amount of (not set) traffic sources in your GA4 reports.
This is because the audience triggers are processed in the backend of GA4, and the changes they induce (such as adding a user to a certain audience when they meet predefined criteria) may not correspond to a specific event being sent to a GA4 data stream.
When a user qualifies for an audience based on your Audience Trigger criteria, GA4 automatically updates the audience list.
But it does not necessarily associate this update with a specific event or session, thus resulting in (not set) values appearing for the source/medium in your GA4 reports.
Minimize the use of audience triggers in GA4 to avoid (not set) from appearing in your GA4 reports.
Source and Medium for non-key events in GA4 are (not set).
The source and medium for non-key events in GA4 are usually “(not set)“.
This is because GA4 typically does not automatically capture source and medium information for non-key events.
In GA4, source and medium information is most relevant at points of entry and key conversion actions.
Since source and medium information is most relevant at points of entry, GA4 automatically captures this information for certain non-key events that mark significant entry points in the user journey.
These entry-point events typically include ‘first_visit’, ‘session_start’, and other similar non-key events.
For non-key events that occur early in the user journey but are not specifically designated as entry points (like custom events triggered early), you would need to configure GA4 or use Google Tag Manager (GTM) to explicitly capture source and medium information.
Non-key events that occur deeper within the user journey (such as interactions with specific features, content, or elements on the site) typically do not automatically capture source and medium information.
There is no official explanation from Google regarding why they don’t capture source and medium information for every single event.
While there is no official explanation, it is reasonable to infer that it would significantly increase the volume of data collected, which can lead to increased storage requirements and processing overhead.
Also, capturing such information might not provide additional valuable insights.
However,
GA4 does automatically capture source and medium information for key events.
Since key events are significant user interactions (like conversions, purchases, or sign-ups) where the source and medium of the traffic are highly relevant for attribution analysis, GA4 automatically capture source and medium information.
Following is a detailed explanation:
Points of Entry:
First Visit (first_visit):
This event marks the first time a user visits your website or app.
GA4 captures source and medium information to identify how the user initially arrived. This data is crucial for understanding the effectiveness of acquisition channels.
Session Start (session_start):
This event signifies the beginning of a new session. GA4 captures source and medium information to attribute the session to the correct traffic source, ensuring accurate session-level attribution.
Non-Key Events:
Deeper users’ interactions:
Non-key events that occur deeper within the user journey typically do not automatically capture source and medium information.
This is because these interactions are often not directly related to the initial source of the traffic, and capturing this information might not provide additional valuable insights.
Custom configuration needed:
For non-key events that occur early in the user journey but are not specifically designated as entry points (like custom events triggered early), you would need to configure GA4 or use Google Tag Manager (GTM) to explicitly capture source and medium information.
How GA4 handles source/medium for Key Events.
Key Event Configuration:
For events marked as key events (e.g., conversions, transactions), GA4 ensures that source and medium data is captured to facilitate accurate attribution analysis.
Automatic Capture:
GA4 automatically captures source and medium information for entry-point events (‘first_visit’, ‘session_start’) because these events are pivotal for understanding where users are coming from.
Example Scenario:
#1 First Visit: A user finds your website through a Google search and visits your website for the first time. The ‘first_visit’ event captures ‘google / organic’ as the source/medium.
#2 Session Start: The user starts a new session. The ‘session_start’ event captures ‘google / organic’ as the source/medium.
#3 Non-Key event early in the journey: Suppose you have a custom event called ‘view_landing_page’ that occurs early in the user journey. This event will not automatically capture the ‘source/medium’ information unless configured to do so.
#4 Non-Key event later in the journey: The user plays a video (‘video_play’ event) or scrolls down the page (‘scroll’ event). These deeper interactions in the journey will also not automatically capture ‘source/medium’.
Summary
#1 GA4 automatically captures source and medium information for key entry-point events like ‘first_visit’ and ‘session_start’.
#2 Key events automatically capture source and medium information because they are critical for attribution analysis.
#3 Source and medium information are not automatically captured for non-key events, especially those occurring deeper in the user journey.
#4 Non-key events generally show “(not set)” for source and medium because GA4 does not automatically capture this information.
#5 Additional configuration using GA4 settings or Google Tag Manager is required to capture source and medium information for non-key events.
#6 In GA4, source and medium information are most relevant at points of entry and key conversion actions.
How to remove GA4 (not set) Session Google Ads campaign?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for a Google Ads dimension.
If you need to tag Google Ads, then use the auto-tagging feature instead of manual tagging.
The auto-tagging feature help GA4 identify the source, medium, and campaign for a session.
Without auto-tagging enabled, GA4 may not be able to attribute the session to a specific source or medium.
If, for some reason, you decide not to use the auto-tagging feature, then tag the Google Ads URLs manually via UTM parameters.
Otherwise, traffic from Google Ads may appear as (not set) in GA4.
Traffic from unliked Google Ads account(s) often appears as (not set) in GA4.
You can then see the value of (not set) for a Google Ads dimension.
Make sure to link the GA4 property with Google Ads.
How to remove GA4 (not set) Content group?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Content group’ dimension:
So if you have not set up content grouping in GA4, then the value of the ‘content group’ dimension will remain (not set).
You also need to make sure that you have set up content grouping correctly in GA4 by:
#1 Sending the ‘content_group’ parameter (and not the ‘content group’ parameter or ‘Content_Group’ parameter). Remember, event parameter names are case-sensitive.
#2 Firing the GA4 configuration tag after the content_group is pushed to the data layer.
If your GA4 events send the content_group parameter with an empty value, then GA4 displays (not set)’ as the value for the ‘Content group’ dimension.
The automatically collected events do not accept the content_group event parameter.
So when you combine the content group dimension with automatically collected events, the value of the content group dimension can be reported as (not set).
Note: The automatically collected events session_start or first_visit do not accept custom parameters. So when you send a custom parameter with these events, the parameter will appear as (not set).
How to remove GA4 (not set) Browser?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Browser’ dimension:
The ‘Browser’ dimension represents the web browser (Chrome, Firefox, Safari, or Edge) used by a user.
Apply ‘First user source /medium’ as a secondary dimension to the report:
If you see an unusual traffic source/medium, it could indicate traffic from spambots.
If you are getting a lot of traffic from spambots, that could also result in (not set) appearing for the Browser dimension in your GA4 reports.
Note: Some web browsers, extensions, or VPN services might manipulate or obscure the user agent string, which can make it difficult for GA4 to accurately identify the web browser being used, thus resulting in (not set) appearing for the Browser dimension in your GA4 reports.
How to remove GA4 (not set) Country?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Country’ dimension:
GA4 typically derives the user’s country based on their IP address.
If the IP address is not tracked, GA4 cannot determine the user’s location, which can lead to (not set) values for the Country dimension.
Users browsing your website using VPNs, proxies, or other similar tools that obfuscate their IP addresses can make it challenging for GA4 to accurately determine their location.
The Measurement Protocol does not allow you to send or override the user IP address or user agent.
This means you cannot manually specify these values when sending events through the Measurement Protocol.
You will need to rely on automatic data collection for tracking IP addresses and user agents.
For similar reasons, you can also see the (not set) values for other location-based dimensions like ‘city’.
How to remove GA4 (not set) Campaign, First User Campaign’ or ‘Session Campaign’?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Campaign’ , ‘First User Campaign’ or ‘Session Campaign’ dimensions:
‘utm_campaign’ key is used to send the name of the custom campaign to GA4.
Make sure that you always provide the value of the ‘utm_campaign’ key whenever your tag URLs with UTM parameters.
You can see the values of the ‘utm_campaign’ key in GA4 through the following dimensions:
- Campaign
- First user campaign
- Session campaign
How to remove GA4 (not set) Item name?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Item name’ dimension:
In GA4, event-scoped and item-scoped dimensions only apply to the specific event with which they are sent. They do not carry over or apply to other events in the same session, including subsequent and previous events.
This could result in (not set) values in your reports if an event-scoped or custom-scoped dimension is not explicitly included with every relevant event.
Let’s say you have an ecommerce website, and you are tracking views of different products.
You send an ‘item_view’ event to GA4 whenever a user views a product.
With each ‘item_view’ event, you also send the ‘item_name’ as an event parameter.
Now, if you are tracking a ‘purchase’ event but do not include the ‘item_name’ with the purchase event, the ‘item_name’ for the purchase event would be reported as (not set) in GA4.
To ensure ‘item_name’ is reported for the ‘purchase’ event, you would need to include it with the ‘purchase’ event.
As a best practice, ensuring that all relevant event-scoped and item-scoped dimensions are included with each event that you send to GA4 is important.
This requires careful planning and management of your event and e-commerce tracking setup and thorough testing to confirm that all event data is correctly recorded.
How to remove GA4 (not set) Custom Dimension?
Custom dimensions in GA4 are not retroactive. That means they only start collecting data from the time they are registered and configured in your GA4 property.
Registering a custom dimension in GA4 is the process of creating a new dimension that GA4 does not automatically track.
Custom dimensions allow you to collect and analyze data that GA4 does not automatically track.
Once you’ve registered a custom dimension, you can include it as a parameter in your event data.
Any event data that was sent prior to the registration of the custom dimension won’t include data for that dimension, even if the corresponding event parameter was being sent to GA4.
So if you started sending an event parameter to GA4 on June 1st, but did not register it as a custom dimension until June 6th, then the custom dimension data would only start being recorded from June 6th onwards.
For the period between June 1st and June 6th, GA4 reports would show (not set) for that custom dimension because it had not been registered yet.
So if you plan to use certain event parameters in your reports, be sure to register them as custom dimensions as soon as you start sending them to GA4. This will ensure you collect all the data you need from the outset.
GA4 Measurement Protocol and (not set)
The second most common reason for (not set) appearing in your GA4 reports is the use of measurement protocol to send data.
When using the Measurement Protocol, you may not always provide all the data that the standard GA4 tracking code collects automatically.
If certain data, such as traffic source or medium is not included in the Measurement Protocol request, GA4 will use the placeholder (not set) for those dimensions in your reports.
Ensure that you include all necessary parameters (such as source and medium) in your Measurement Protocol requests.
Make sure the parameter values are formatted correctly, as GA4 may not be able to process incorrectly formatted values, leading to (not set) entries.
Regularly monitor your measurement protocol requests to identify and fix any (not set) issues that may impact your GA4 data.
GA4 Server Side tracking and (not set)
The Server side tracking can also result in (not set) data in GA4 reports if not implemented correctly.
If your server-side tracking implementation is not complete or does not track all user interactions, GA4 might not receive the necessary data for certain dimensions, leading to (not set) values in your reports.
When using server-side tracking, you must include all relevant parameters in your requests to GA4.
If the values for the parameters you send from the server are not formatted correctly or don’t match GA4’s expected format, GA4 might not be able to process the data, resulting in (not set) values.
Regularly monitor your server-side tracking implementation to identify and fix any (not set) issues that may impact your GA4 data.
What is (not set) in GA4?
GA4 uses a placeholder called (not set) whenever it does not receive any information for a particular dimension.
Why does (not set) appear in GA4 reports?
The number 1 reason for (not set) appearing in your GA4 reports is because you are either not tagging ad URLs or your tagging is incorrect or incomplete.
Tag ad URLs by using the UTM tracking parameters (manual tagging) or via the auto-tagging feature.
Regularly monitor and validate your tagged URLs to identify and fix any (not set) issues that may impact your GA4 data.
Seeing (not set) data in your GA4 reports is common and normal, especially during the first 24 to 72 hrs.
For example, you may see a value of (not set) for a custom dimension during the first 24 hours after its creation.
This occurs because it takes some time for GA4 to process and populate the data for newly created custom dimensions.
Similarly, Server-side tracking can sometimes delay data processing, especially if your server is experiencing high traffic or latency.
In such cases, data might not be available in GA4 reports immediately, and you could see (not set) values temporarily.
Note: Sometimes, you may need to wait for up to 72 hours for (not set) to disappear from your GA4 reports.
(not set) could also appear in your GA4 reports due to various factors which are beyond your control.
For example, some Adblockers and privacy extensions can cause missing source or medium information, thus resulting in (not set) as the value of source or medium dimension.
Whenever the value of a dimension is not passed to GA4 for whatever technical reason, expect to see (not set) data in your reports.
There are many reasons to have (not set) values in the reporting, and these reasons vary from report to report depending upon the dimension selected.
If the (not set) values contribute to the majority of your GA4 data, it is likely that there are significant issues with your GA4 implementation, and you should investigate and fix the errors.
Note: You can minimise (not set) from appearing in your GA4 reports, but in most situations, you can not eliminate it 100%. There will always be some (not set) issues.
How to remove GA4 (not set) Landing Page?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Landing Page’ dimension:
In GA4, (not set) can appear for the landing page dimension when a session doesn’t have a page_view event associated with it.
The ‘page_view’ event needs to be the first event in a session for GA4 to correctly set the landing page.
GA4 uses the first ‘page_view’ event of a session to determine the landing page.
If any other event fires before the ‘page_view’ event, the landing page is recorded as “(not set)“.
This is the most common cause of (not set) landing pages appearing in your GA4 reports.
It is unlikely that you can 100% eliminate the issue of (not set) landing pages because of various factors that could be outside of your control, but you can certainly minimise this issue.
By implementing the following measures, you can significantly increase the likelihood that the ‘page_view’ event will be the first event in a GA4 session:
- Exclude today and yesterday from your date range before analyzing “(not set)” landing pages.
- Extend your GA4 session timeout setting.
- Aim for your GA4 configuration tag to fire in less than one second.
- Use the standard implementation of GA4 to avoid (not set) landing pages.
- Verify that the ‘page_view’ event is firing as expected when a user lands on your website.
- Configure your GTM server-side tagging correctly.
- Correctly configure your Measurement Protocol requests.
- Avoid immediate redirects without logging the initial page load.
- Avoid redirecting users to the homepage or some other page instead of a 404 page.
- Spambot attacks can result in (not set) landing pages.
#1 Exclude today and yesterday from your date range before analyzing “(not set)” landing pages.
You could temporarily see (not set) landing pages appearing in your GA4 reports for the first 24 to 48 hrs as GA4 has not completed data processing.
To get a more accurate picture of “(not set)” landing pages:
- Exclude today and yesterday from your date range.
- Set your date range to end at least 48 hours ago.
For example, if today is October 1, 2024, set your date range to end on September 29, 2024, or earlier.
Note: Data processing time can vary based on your property’s event volume:
- Smaller GA4 properties may see complete data faster, sometimes within 24 hours.
- Larger GA4 properties with high traffic volumes might require 48 to 72 hours hours for the most complete data.
#2 Extend your GA4 session timeout setting.
One of the best ways to ensure that a GA4 session starts with the ‘page_view’ event is by extending your GA4 session timeout setting from 30 minutes to 7 hours 55 minutes:
A GA4 session can start without a pageview/screenview.
So you could end up with views or user engagements with no sessions.
This could result in (not set) appearing as the value of your ‘Landing Page’ dimension.
When you use the maximum session timeout allowed by GA4, you can stop the GA4 session with pageview/screenview from expiring early, thus greatly reducing the chance of starting a new GA4 session without a pageview/screenview.
#3 Aim for your GA4 configuration tag to fire in less than one second.
The GA4 Configuration tag (aka Google tag) fires the ‘page_view’ event.
If the configuration tag takes longer than one second to fire, the ‘user_engagement’ event is most likely to fire first.
This leads to ‘(not set)’ landing pages because GA4 uses the first event to determine the landing page.
Several factors can delay the firing of the GA4 configuration tag:
- Slow page load times.
- Complex GTM setups.
- Network latency.
- Large amounts of content or scripts on the page.
Here is what you can do to speed up the firing of the GA4 configuration tag:
- Make your web pages load faster, esp. on mobile devices.
- Place GTM container code as high as possible in the <head> section of your web pages so that Google Tag Manager (GTM) start loading as early as possible.
- Make sure that the GA4 Configuration tag (aka Google tag) is triggered on All Pages and fires before any GA4 event tag.
- Minimize GTM container size by removing unnecessary tags, triggers, and variables. Use built-in variables when possible.
- Delay the firing of non-essential tags in favour of the GA4 configuration tag.
- Use Server-side tagging, as it can help speed up the firing of the GA4 configuration tag.
#4 Use the standard implementation of GA4 to avoid (not set) landing pages.
Standard implementation (hardcoded Google tag or via GTM) gives you direct control over when and how the GA4 tags fire.
This ensures that the ‘page_view’ event, which sets the landing page, fires correctly and at the right time.
Using a plugin or CDP (like ‘Segment’) to deploy Google tag and/or GA4 event tags is a non-standard implementation of GA4 which is neither recommended or supported by Google.
When using plugins or CDPs to deploy Google tag and/or GA4 event tags, there’s an additional layer that can potentially introduce timing issues with event firing or data discrepancies, leading to more “(not set)” landing pages.
Plugins and CDPs may alter the order in which events are processed and sent to GA4, potentially causing other events to fire before the ‘page_view’ event.
#5 Verify that the ‘page_view’ event is firing as expected when a user lands on your website.
Use tools like Google Tag Assistant and developer console to verify that the GA4 tracking code is firing correctly and that the ‘page_view’ event is firing as expected when a user lands on your website.
Test your website on different browsers (Chrome, Firefox, Safari, etc.) and devices (desktop, mobile, tablet) to ensure that the ‘page_view’ event is firing consistently and is the first event to fire.
#6 Configure your GTM server-side tagging correctly.
GTM Server side tagging can increase (not set) landing pages when not configured correctly.
For example,
If the ‘page_view’ event is not sent or is delayed in reaching the server-side GA4 tag, GA4 cannot correctly attribute the first page the user lands on, which could result in (not set) being recorded for the landing page.
If the consent mode or other privacy settings are not correctly handled, it can prevent the ‘page_view’ event from being sent to the server-side GTM container which can lead to (not set) landing pages.
Set up a trigger in Server-Side GTM that only fires ‘user_engagement’ events when they don’t start a session.
#7 Correctly configure your Measurement Protocol requests.
Misconfigured Measurement Protocol requests can lead to (not set) landing pages.
If the landing page information is missing or not provided in the Measurement Protocol request, GA4 will use the placeholder (not set) for the ‘Landing Page’ dimension in your reports.
The ‘page_location’ parameter is crucial for setting the landing page in GA4.
If this parameter is missing or incorrectly formatted in the Measurement Protocol request, GA4 won’t be able to determine the landing page.
In Measurement Protocol requests, ensure that the ‘page_view’ event is sent as the first event of a GA4 session.
Always send measurement protocol requests with all the required parameters.
#8 Avoid immediate redirects without logging the initial page load.
GA4 determines the landing page based on the first ‘page_view’ event of a session.
If the redirect happens immediately before the ‘page_view’ event can fire, GA4 may not be able to capture the original landing page leading to (not set) landing pages.
Set a small delay of 1 second before redirecting the user. This ensures that the ‘page_view’ event is correctly recorded.
#9 Avoid redirecting users to the homepage or some other page instead of a 404 page.
If a user lands on a page that no longer exists and is automatically redirected to the home page or some other page, it could result in ‘(not set)’ being reported in GA4 for the landing page.
GA4 determines the landing page based on the first ‘page_view’ event of a session.
If the redirect happens before this event can fire on the non-existent page, GA4 may not be able to capture the original landing page.
If the redirect causes some other GA4 event(s) to fire before the ‘page_view’ event, that could also result in a “(not set)” landing page.
Instead of redirecting users to the homepage, create a custom 404 error page that clearly informs the user the page doesn’t exist.
This allows GA4 to capture a valid ‘page_view’ event for the 404 page, ensuring that the landing page is set to the non-existent page they originally tried to visit.
If you have to redirect users to the home page or some other page, set a small delay of 1 second before redirecting the user.
This ensures that the ‘page_view’ event is correctly recorded.
You can implement this with a custom HTML tag in GTM to delay the redirect.
#10 Spambot attacks can result in (not set) landing pages.
Spambots often send fake traffic to websites. They may not trigger the ‘page_view’ event which GA4 uses to determine the landing page.
You should filter out all such traffic from your reports before you analyze the (not set) landing pages.
Related Articles: How to Stop Google Analytics Spam – Remove Referral Spam.
How to remove GA4 (not set) Page Title?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Page title and screen class’ dimension:
Make sure that all of the web pages contain the title (<title>..</title>).
To find the list of web pages missing the title tag, add a secondary dimension called ‘Page path and screen class’ and then filter out the (not set) results:
Once you find the list of web pages which are missing titles, ask your developer/SEO to add the title tags to these pages.
Note: If the title information is missing or not provided in the Measurement Protocol request, GA4 will use the placeholder (not set) for the ‘Page title and screen class’ dimension.
How to remove GA4 (not set) Source/Medium?
Whenever GA4 is unable to determine the source or medium for a session, it reports (not set) as the value of the source or medium dimension:
GA4 may be unable to determine the source or medium for a session because of the following factors:
- Missing or incorrect UTM parameters
- Missing ‘session_start’ event
- Adblockers and privacy extensions.
- Measurement Protocol
- Audience Triggers
#1 Missing or incorrect UTM parameters.
UTM parameters in a URL help GA4 identify the source, medium, and campaign for a session.
If these parameters are missing or incorrect, GA4 may not be able to attribute the session to a specific source or medium.
Tag ad URLs by using the UTM tracking parameters (manual tagging).
Use the Campaign URL Builder to make sure that your manual tagging is correct.
#2 Missing ‘session_start’ event.
If the session_start event is not correctly tracked or is missing, GA4 might not be able to determine the source or medium for a session.
The ‘session_start’ event in GA4 is automatically triggered whenever a new session starts.
However, in GA4, a new session can also start without a ‘session_start’ event if the previous session has timed out.
This will result in missing ‘session_start’ events in your data.
When you use the maximum session timeout allowed by GA4 (which is 7 hours 55 minutes), you can stop the GA4 session with pageview/screenview from expiring early, thus greatly reducing the chance of starting a new GA4 session without a ‘session_start’ event.
There are several other factors which could also cause the ‘session_start’ event not to be sent to your GA4 property:
#1 If a user leaves your website before the ‘session_start’ event is sent to your GA4 property, it could result in missing ‘session_start’ events in your data.
#2 Ad-blockers or privacy extensions in a user’s web browser can stop the ‘session_start’ event from being sent to your GA4 property.
#3 Incorrect GA4 configuration, network issues and JavaScript errors can cause the ‘session_start’ event not to be sent to your GA4 property.
Make sure GA4 tracking is set up correctly.
#3 Adblockers and privacy extensions.
Some Adblockers and privacy extensions can cause missing source or medium information, thus resulting in (not set) as the value of source or medium dimension.
#4 Measurement Protocol.
If the source/medium information is missing or not provided in the Measurement Protocol (MP) request, GA4 will use the placeholder (not set) for any dimension related to the source or medium.
Make sure you send MP events using a valid session ID (the ID of the session that was already recorded by GA4).
When events are not correctly tied to a session, the ‘source/medium dimension may show up as ‘(not set)’, which indicates missing data.
When sending events that occurred in the past using the GA4 MP, you need to include not only the valid ‘session id’ but also the timestamp when the event occurred.
This helps GA4 to accurately attribute the event to the correct session and time period.
The timestamp should be sent using the ‘timestamp_micros’ parameter, representing the number of microseconds since the Unix epoch (January 1, 1970) at which the event occurred.
In the context of sending events via GA4 MP, the “past” refers to any time that has already occurred, and more specifically, before the current time the event data is being sent.
If an event occurs in real-time and you send that data to GA4 immediately, that would not be considered “in the past.”
However, if an event occurred, for example, two hours ago, and you are only now sending that data to GA4, that event would be considered as having occurred “in the past.”
GA4 uses the ‘timestamp_micros’ parameter to determine whether an event occurred in the past.
If the timestamp_micros parameter is less than the current time, then the event is considered to have occurred in the past.
Note: GA4 MP Events can be backdated up to 3 calendar days based on your GA4 property‘s timezone.
#5 Audience Triggers.
The Audience Triggers in GA4 fire an event when users match the definition of an audience and become members.
By using GA audience triggers, you can create complex events (conversions) in GA4.
The use of audience triggers in GA4 can also increase the amount of (not set) traffic sources in your GA4 reports.
This is because the audience triggers are processed in the backend of GA4, and the changes they induce (such as adding a user to a certain audience when they meet predefined criteria) may not correspond to a specific event being sent to a GA4 data stream.
When a user qualifies for an audience based on your Audience Trigger criteria, GA4 automatically updates the audience list.
But it does not necessarily associate this update with a specific event or session, thus resulting in (not set) values appearing for the source/medium in your GA4 reports.
Minimize the use of audience triggers in GA4 to avoid (not set) from appearing in your GA4 reports.
Source and Medium for non-key events in GA4 are (not set).
The source and medium for non-key events in GA4 are usually “(not set)“.
This is because GA4 typically does not automatically capture source and medium information for non-key events.
In GA4, source and medium information is most relevant at points of entry and key conversion actions.
Since source and medium information is most relevant at points of entry, GA4 automatically captures this information for certain non-key events that mark significant entry points in the user journey.
These entry-point events typically include ‘first_visit’, ‘session_start’, and other similar non-key events.
For non-key events that occur early in the user journey but are not specifically designated as entry points (like custom events triggered early), you would need to configure GA4 or use Google Tag Manager (GTM) to explicitly capture source and medium information.
Non-key events that occur deeper within the user journey (such as interactions with specific features, content, or elements on the site) typically do not automatically capture source and medium information.
There is no official explanation from Google regarding why they don’t capture source and medium information for every single event.
While there is no official explanation, it is reasonable to infer that it would significantly increase the volume of data collected, which can lead to increased storage requirements and processing overhead.
Also, capturing such information might not provide additional valuable insights.
However,
GA4 does automatically capture source and medium information for key events.
Since key events are significant user interactions (like conversions, purchases, or sign-ups) where the source and medium of the traffic are highly relevant for attribution analysis, GA4 automatically capture source and medium information.
Following is a detailed explanation:
Points of Entry:
First Visit (first_visit):
This event marks the first time a user visits your website or app.
GA4 captures source and medium information to identify how the user initially arrived. This data is crucial for understanding the effectiveness of acquisition channels.
Session Start (session_start):
This event signifies the beginning of a new session. GA4 captures source and medium information to attribute the session to the correct traffic source, ensuring accurate session-level attribution.
Non-Key Events:
Deeper users’ interactions:
Non-key events that occur deeper within the user journey typically do not automatically capture source and medium information.
This is because these interactions are often not directly related to the initial source of the traffic, and capturing this information might not provide additional valuable insights.
Custom configuration needed:
For non-key events that occur early in the user journey but are not specifically designated as entry points (like custom events triggered early), you would need to configure GA4 or use Google Tag Manager (GTM) to explicitly capture source and medium information.
How GA4 handles source/medium for Key Events.
Key Event Configuration:
For events marked as key events (e.g., conversions, transactions), GA4 ensures that source and medium data is captured to facilitate accurate attribution analysis.
Automatic Capture:
GA4 automatically captures source and medium information for entry-point events (‘first_visit’, ‘session_start’) because these events are pivotal for understanding where users are coming from.
Example Scenario:
#1 First Visit: A user finds your website through a Google search and visits your website for the first time. The ‘first_visit’ event captures ‘google / organic’ as the source/medium.
#2 Session Start: The user starts a new session. The ‘session_start’ event captures ‘google / organic’ as the source/medium.
#3 Non-Key event early in the journey: Suppose you have a custom event called ‘view_landing_page’ that occurs early in the user journey. This event will not automatically capture the ‘source/medium’ information unless configured to do so.
#4 Non-Key event later in the journey: The user plays a video (‘video_play’ event) or scrolls down the page (‘scroll’ event). These deeper interactions in the journey will also not automatically capture ‘source/medium’.
Summary
#1 GA4 automatically captures source and medium information for key entry-point events like ‘first_visit’ and ‘session_start’.
#2 Key events automatically capture source and medium information because they are critical for attribution analysis.
#3 Source and medium information are not automatically captured for non-key events, especially those occurring deeper in the user journey.
#4 Non-key events generally show “(not set)” for source and medium because GA4 does not automatically capture this information.
#5 Additional configuration using GA4 settings or Google Tag Manager is required to capture source and medium information for non-key events.
#6 In GA4, source and medium information are most relevant at points of entry and key conversion actions.
How to remove GA4 (not set) Session Google Ads campaign?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for a Google Ads dimension.
If you need to tag Google Ads, then use the auto-tagging feature instead of manual tagging.
The auto-tagging feature help GA4 identify the source, medium, and campaign for a session.
Without auto-tagging enabled, GA4 may not be able to attribute the session to a specific source or medium.
If, for some reason, you decide not to use the auto-tagging feature, then tag the Google Ads URLs manually via UTM parameters.
Otherwise, traffic from Google Ads may appear as (not set) in GA4.
Traffic from unliked Google Ads account(s) often appears as (not set) in GA4.
You can then see the value of (not set) for a Google Ads dimension.
Make sure to link the GA4 property with Google Ads.
How to remove GA4 (not set) Content group?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Content group’ dimension:
So if you have not set up content grouping in GA4, then the value of the ‘content group’ dimension will remain (not set).
You also need to make sure that you have set up content grouping correctly in GA4 by:
#1 Sending the ‘content_group’ parameter (and not the ‘content group’ parameter or ‘Content_Group’ parameter). Remember, event parameter names are case-sensitive.
#2 Firing the GA4 configuration tag after the content_group is pushed to the data layer.
If your GA4 events send the content_group parameter with an empty value, then GA4 displays (not set)’ as the value for the ‘Content group’ dimension.
The automatically collected events do not accept the content_group event parameter.
So when you combine the content group dimension with automatically collected events, the value of the content group dimension can be reported as (not set).
Note: The automatically collected events session_start or first_visit do not accept custom parameters. So when you send a custom parameter with these events, the parameter will appear as (not set).
How to remove GA4 (not set) Browser?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Browser’ dimension:
The ‘Browser’ dimension represents the web browser (Chrome, Firefox, Safari, or Edge) used by a user.
Apply ‘First user source /medium’ as a secondary dimension to the report:
If you see an unusual traffic source/medium, it could indicate traffic from spambots.
If you are getting a lot of traffic from spambots, that could also result in (not set) appearing for the Browser dimension in your GA4 reports.
Note: Some web browsers, extensions, or VPN services might manipulate or obscure the user agent string, which can make it difficult for GA4 to accurately identify the web browser being used, thus resulting in (not set) appearing for the Browser dimension in your GA4 reports.
How to remove GA4 (not set) Country?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Country’ dimension:
GA4 typically derives the user’s country based on their IP address.
If the IP address is not tracked, GA4 cannot determine the user’s location, which can lead to (not set) values for the Country dimension.
Users browsing your website using VPNs, proxies, or other similar tools that obfuscate their IP addresses can make it challenging for GA4 to accurately determine their location.
The Measurement Protocol does not allow you to send or override the user IP address or user agent.
This means you cannot manually specify these values when sending events through the Measurement Protocol.
You will need to rely on automatic data collection for tracking IP addresses and user agents.
For similar reasons, you can also see the (not set) values for other location-based dimensions like ‘city’.
How to remove GA4 (not set) Campaign, First User Campaign’ or ‘Session Campaign’?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Campaign’ , ‘First User Campaign’ or ‘Session Campaign’ dimensions:
‘utm_campaign’ key is used to send the name of the custom campaign to GA4.
Make sure that you always provide the value of the ‘utm_campaign’ key whenever your tag URLs with UTM parameters.
You can see the values of the ‘utm_campaign’ key in GA4 through the following dimensions:
- Campaign
- First user campaign
- Session campaign
How to remove GA4 (not set) Item name?
GA4 uses a placeholder called ‘(not set)’ whenever it does not receive any information for the ‘Item name’ dimension:
In GA4, event-scoped and item-scoped dimensions only apply to the specific event with which they are sent. They do not carry over or apply to other events in the same session, including subsequent and previous events.
This could result in (not set) values in your reports if an event-scoped or custom-scoped dimension is not explicitly included with every relevant event.
Let’s say you have an ecommerce website, and you are tracking views of different products.
You send an ‘item_view’ event to GA4 whenever a user views a product.
With each ‘item_view’ event, you also send the ‘item_name’ as an event parameter.
Now, if you are tracking a ‘purchase’ event but do not include the ‘item_name’ with the purchase event, the ‘item_name’ for the purchase event would be reported as (not set) in GA4.
To ensure ‘item_name’ is reported for the ‘purchase’ event, you would need to include it with the ‘purchase’ event.
As a best practice, ensuring that all relevant event-scoped and item-scoped dimensions are included with each event that you send to GA4 is important.
This requires careful planning and management of your event and e-commerce tracking setup and thorough testing to confirm that all event data is correctly recorded.
How to remove GA4 (not set) Custom Dimension?
Custom dimensions in GA4 are not retroactive. That means they only start collecting data from the time they are registered and configured in your GA4 property.
Registering a custom dimension in GA4 is the process of creating a new dimension that GA4 does not automatically track.
Custom dimensions allow you to collect and analyze data that GA4 does not automatically track.
Once you’ve registered a custom dimension, you can include it as a parameter in your event data.
Any event data that was sent prior to the registration of the custom dimension won’t include data for that dimension, even if the corresponding event parameter was being sent to GA4.
So if you started sending an event parameter to GA4 on June 1st, but did not register it as a custom dimension until June 6th, then the custom dimension data would only start being recorded from June 6th onwards.
For the period between June 1st and June 6th, GA4 reports would show (not set) for that custom dimension because it had not been registered yet.
So if you plan to use certain event parameters in your reports, be sure to register them as custom dimensions as soon as you start sending them to GA4. This will ensure you collect all the data you need from the outset.
GA4 Measurement Protocol and (not set)
The second most common reason for (not set) appearing in your GA4 reports is the use of measurement protocol to send data.
When using the Measurement Protocol, you may not always provide all the data that the standard GA4 tracking code collects automatically.
If certain data, such as traffic source or medium is not included in the Measurement Protocol request, GA4 will use the placeholder (not set) for those dimensions in your reports.
Ensure that you include all necessary parameters (such as source and medium) in your Measurement Protocol requests.
Make sure the parameter values are formatted correctly, as GA4 may not be able to process incorrectly formatted values, leading to (not set) entries.
Regularly monitor your measurement protocol requests to identify and fix any (not set) issues that may impact your GA4 data.
GA4 Server Side tracking and (not set)
The Server side tracking can also result in (not set) data in GA4 reports if not implemented correctly.
If your server-side tracking implementation is not complete or does not track all user interactions, GA4 might not receive the necessary data for certain dimensions, leading to (not set) values in your reports.
When using server-side tracking, you must include all relevant parameters in your requests to GA4.
If the values for the parameters you send from the server are not formatted correctly or don’t match GA4’s expected format, GA4 might not be able to process the data, resulting in (not set) values.
Regularly monitor your server-side tracking implementation to identify and fix any (not set) issues that may impact your GA4 data.
My best selling books on Digital Analytics and Conversion Optimization
Maths and Stats for Web Analytics and Conversion Optimization
This expert guide will teach you how to leverage the knowledge of maths and statistics in order to accurately interpret data and take actions, which can quickly improve the bottom-line of your online business.
Master the Essentials of Email Marketing Analytics
This book focuses solely on the ‘analytics’ that power your email marketing optimization program and will help you dramatically reduce your cost per acquisition and increase marketing ROI by tracking the performance of the various KPIs and metrics used for email marketing.
Attribution Modelling in Google Analytics and BeyondSECOND EDITION OUT NOW!
Attribution modelling is the process of determining the most effective marketing channels for investment. This book has been written to help you implement attribution modelling. It will teach you how to leverage the knowledge of attribution modelling in order to allocate marketing budget and understand buying behaviour.
Attribution Modelling in Google Ads and Facebook
This book has been written to help you implement attribution modelling in Google Ads (Google AdWords) and Facebook. It will teach you, how to leverage the knowledge of attribution modelling in order to understand the customer purchasing journey and determine the most effective marketing channels for investment.