At least 90% of the Google Analytics 4 setups I have seen contain critical flaws. Learn how to greatly improve your GA4 configuration with my new GA4 audit tool.
First, I want you to carefully read the sentence below.
“Only collect the data that you need and make sure that it is accurate”.
Collecting bad data results in bad business decisions. And in my experience, more data can greatly increase the noise instead of leading to useful insights.
There are too many people wasting time and resources on reporting and optimization before having fixed the implementation part.
Do you trust your data if you score 50 out of 100?
In the rest of this post I will explain about all the measurements behind this Google Analytics 4 audit tool and how to interpret the results.
And, if you haven’t yet, very soon you will have access as well.
Table of Content
- Background of GA4 Audit Tool
- How to Get a Free Copy
- How to Interpret the Numbers
- What’s Missing
- What’s Next
Background of GA4 Audit Tool
It’s already more than five years ago that I created the Universal Analytics Audit Tool and it has been popular ever since.
After receiving loads of emails and comments on launching an updated version, it’s finally there!
Similar to the previous version, it’s primarily based on leveraging the strength of the Google Analytics API and Google Sheets.
It’s an incredibly flexible tool as you can – if you have sufficient experience with the API and Google Sheets – add or change (other) automated tasks as well.
However, the simple goal is to make you aware of the current state of your Google Analytics 4 setup and data based on 30 criteria (20 for non-ecommerce sites).
This tool is available for FREE for everyone as it is so crucial to be aware of the state of your GA4 implementation and improve it where you can.
Many companies start their data analysis and make important business decisions with the lack of a proper setup. You can imagine the hours wasted and negative impact on their businesses.
The Google Analytics 4 audit tool is a great starting point, but no automated tool can fully replaces the human thinking and logic behind an Analytics audit, implementation and configuration. A fully customized, accurate setup requires a ton of knowledge and experience which you can’t get overnight.
How to Get a Free Copy
Skip this paragraph if you already have access to the Google Analytics 4 Audit Tool and know how to get it to work.
If not, simply hit the button below and you will soon know where and how to improve your Google Analytics 4 setup!
Note: make sure to carefully follow the instructions that you will get via email to run your first Google Analytics 4 setup check.
How to Interpret the Numbers
Perform your first Google Analytics 4 setup check and you will notice 30 checks in the Google Analytics audit report, each with a “PASS” or “FAIL” and a total score.
For an accurate score, make sure to change ‘Ecommerce’ into ‘Non-Ecommerce’ if your website doesn’t have an Ecommerce integration. It will automatically base your score then on 20 instead of 30 checks.
In short:
- Score < 60 – there is a lot to improve in your Google Analytics setup.
- Score > 60, but < 80 – not bad, but there is definitely room for improvement.
- Score > 80 – well done, but make sure to pay attention to checks that say “FAIL”.
- Score = 100 – you are an Analytics Ninja right? Haven’t seen the perfect score yet!
The “Scorecard” sheet provides quick feedback on each of the checks and rates your overall Google Analytics 4 setup and data with a score ranging from 0 to 100.
The “Scorecard Explanation” sheet provides accurate numbers on the checks and more in-depth feedback about your score and where/how to improve it.
In the upcoming chapters you will learn more about the background of the 30 checks.
Good to know is that each of the checks is performed on the last 30 days of data in the selected Google Analytics 4 property.
Now you’ll learn about all different checks in the Google Analytics 4 audit report.
# 1: Sessions on Primary Domain
Your Google Analytics 4 property might receive SPAM traffic or your GA4 measurement ID might be hijacked and be executed on other domains.
These are just two examples that can result in the collection of undesired traffic/sessions in your GA4 property.
Check: is the percentage of sessions on your primary domain (hostname that receives most traffic) greater than 99%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Use common sense when interpreting the results. If your implementation is very advanced and spans across multiple (sub)domains, you have to interpret your numbers differently. I can’t decide for you which domains to include in this check. However, the majority of companies implements the Google Analytics tracking code on one website URL.
# 2: Sampling
Sampling occurs – if you use explorations – at 10M events at the property level for the date range you are using (free GA4 version).
Explorations query raw event and user-level data. When a query needs to process more events or users than the quota limit, Analytics uses a sample of the available data (shown below).
Low traffic websites don’t easily hit this threshold, but high-traffic websites with a substantial amount of users and events implemented easily can.
Check: are the number of events in your GA4 property less than 10.000.000?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: How Sampling Works in Google Analytics 4 (GA4).
Be careful when analyzing explorational data if you FAIL this test. This check serves as a “warning” signal if your traffic rises above a certain threshold. Integrating your GA4 dataset with BigQuery might be a good option for you (if not yet done).
# 3: Query Parameters
I recommend dividing query parameters in two groups: technical and marketing query parameters.
- Technical query parameters don’t have value to store in GA4 – they just cause duplicate page URLs in Google Analytics 4.
- Example: ?fbclid=sjvsajasdfghjkluaaa11123545avg.
- Marketing query parameters – on the other hand – should not be removed as they are important to keep for data analysis needs.
- Example: ?submit=true
At least 90% of the GA4 properties I have seen, store a bunch of technical query parameters. This negatively affects your Google Analytics insights and analysis.
In UA you can exclude specific query parameters in the reporting view settings or you can apply a filter to get rid of all of them.
Unfortunately, at the time of writing, in GA4 there is no option to exclude them via the UI. You can use a custom template in combination with GTM to address this issue.
Check: is the percentage of pageviews that include query parameters smaller than 5%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: Exclude URL Query Parameters in Google Analytics 4.
# 4: Personally Identifiable Information
Sending PII to your Google Analytics 4 property is one of the worst things you can do and is strictly prohibited. You can have your Google Analytics account suspended if you don’t abide by the rules.
This check searches for PII information in your page URLs; by checking for the query parameter “email” in your ‘page_view’ events.
It’s not a 100% complete check, but a good start. PII can also appear in other dimensions in Google Analytics. However, I have found PII to appear most often as part of the page URLs.
Check: is the query parameter “email” found as part of one or more page URLs?
Result: answer is “No” -> PASS, answer is “Yes” -> FAIL.
Reading suggestion: How to redact PII Data from Google Analytics 4 hits.
I recommend to not limiting your PII search to only evaluating the page path reports. Make sure to also check your data imports, event dimensions, custom dimensions, campaign parameters and site search dimensions.
# 5: Self-Referrals
Have you ever noticed your domain name showing up as one of the top referrals in Google Analytics. I have seen too many GA accounts with this self-referrals issue.
Your data becomes unreliable and it leads to bad marketing decisions. And the credits for a conversion are not attributed to the marketing channels that actually deserve it.
Check: is your primary domain showing up as a source within the medium referral report in Google Analytics?
Result: answer is “No” -> PASS, answer is “Yes” -> FAIL.
Reading suggestion: Google Analytics 4: Referral Exclusion List.
Having a very small percentage of self-referrals (e.g. < 0.1%) is not a big issue, but double check your setup if your own domain shows up as one of the top referrals.
# 6: Custom Campaign Tracking
On default, Google Analytics 4 measures direct traffic, referrals, organic traffic and Google Ads traffic (if you run these campaigns and have properly integrated it with GA4).
There is a high likelihood that you haven’t tagged all your compains correctly if these are the only mediums showing up in Google Analytics 4.
Check: are there any other mediums present in your Google Analytics 4 property in addition to the four default mediums?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] URL builders: Collect campaign data with custom URLs.
# 7: Mediums with Low Traffic
There is a huge chance you haven’t set up campaign tracking correctly if 30, 50 or even 100 mediums are showing up in your Google Analytics account. At least, that is what I have experienced in several Google Analytics 4 audits.
One way to run an automated check is to calculate the percentage of mediums with a very low traffic share and that is what I exactly check here.Currently, GA4 is very rigid in terms of channel tracking (Default Channel Grouping) and I highly recommend aligning your UTMs with the Default Channel Grouping rules to ensure you will have your channel measurements in a good place.
Check: is the percentage of mediums that receive less than 1% of total traffic less than 20%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: How to Leverage the Default Channel Grouping in Google Analytics 4 (GA4).
# 8: Email Referrals
High volumes of email referrals indicate inconsistencies in your email link tracking. Further, it will result in inflated direct traffic numbers in GA4.
Check: are email referral sessions smaller than 2% of all sessions attributed to the Email channel?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Default channel group. // learn how to use utm_source and/or utm_medium correctly so that ‘Email’ traffic is categorized correctly
It might be impossible to get rid of all email referrals, but keep in mind that you have a serious issue if email referrals are a substantial portion of your total traffic. Your email, genuine referrals and direct traffic data will be unreliable if that is the case!
# 9: Google Ads Integration
Not correctly measuring Google Ads clicks in your GA4 property is one indication for an incorrect integration between Google Analytics and Google Ads.
Check: are the total number of Google Ads sessions measured greater than zero?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Link Google Ads and Analytics.
This check only applies to you if you are running Google Ads campaigns.
# 10: Unassigned Traffic
The higher the percentage of the “Unassigned” Channel group, the more difficult it becomes to analyze and optimize your traffic channels. Your data will become inaccurate which causes serious challenges and issues when analyzing your data.
Check: is the percentage of sessions in the “Unassigned” Channel group smaller than 2%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: How to Leverage the Default Channel Grouping in Google Analytics 4 (GA4).
Fixing the (Unassigned) channel group is not a one-time exercise. You always need to be alert when new campaign mediums are defined as it might impact the (Unassigned) channel group. Read this article about custom insights in GA4 insights to learn how to automatically monitor this.
# 11: Direct Traffic
Direct traffic come from users that already know you or reside from incorrectly tagged campaigns. A very high percentage of direct traffic indicates a measurement issue.
I have seen direct traffic percentages ranging from 10 to over 30%. It’s hard to set an exact boundary as it might vary from site to site. I have found that “20%” is a good number to work with.
Check: is the percentage of direct traffic sessions lower than 20%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestions: [GA4] Campaigns and traffic sources.
# 12: Demographics and Interests Data
Demographics reports can greatly enrich your data so that you derive deeper insights from your audience and optimize accordingly.
These additional reports require you to enable Google Signals.
Google Signals enables:
- Cross Platform reporting
- Remarketing with Google Analytics
- Advertising Reporting Features
- Demographics and Interests
There might be reasons why you don’t want to enable Google Signals, two common ones:
- Privacy and compliance restrictions.
- Data thresholds because Signals can provide sensitive data.
You can enable and disable Google Signals whenever you want. However, the features only work for the date ranges when Signals was active.
Check: are sessions with ‘Age’ dimension captured in GA4?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: Google Signals: Managing Identity Resolution in GA4.
# 13: Site Search
Site Search insights are key for any website or app that have this feature implemented.
You can enable Site Search tracking via the Enhanced Measurement feature in GA4 (please see link below).
There are two ways to review the Site Search Data in GA4:
- Via the ‘Events’ report.
- Through the Exploration feature. // preferred
This is how it looks like in GA4.
‘Events’ report
Note: for this to work, you need to register ‘search_term’ as a custom dimension (scope: Event).
Exploration report
Note: for this to work, it’s best to add a filter on ‘Event name’ with the value ‘view_search_results’.
Check: is the total event count of the ‘view_search_results’ event greater than zero?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: Complete Tutorial on Tracking Site Search in GA4.
This check only applies to you if you have a Site Search functionality on your website.
# 14: Content Grouping
Content optimization is crucial if you want to get the most out of your website. Setting up proper content groupings helps you to optimize your content efforts and navigation paths much better than before.
Check: is the ‘content_group’ dimension collecting data?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: Advanced Guide to Page View Tracking in Google Analytics 4.
# 15: Manually Collected Events
Automatically collected events are triggered by basic interactions with your app and/or site.
These events are either fully automatically triggered (i.e. ‘session_start’ event) or via Enhanced Measurement (i.e. ‘view_search_results’).
Obviously, it is crucial to – in addition – send extra events that are applicable to your business.
Check: is the number of manually collected events greater than 10?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Event collection limits.
# 16: Conversions
GA4 allows you to define 30 events as a conversion in addition to the default set of conversions:
- purchase (web and app)
- first_open (app only)
- in_app_purchase (app only)
- app_store_subscription_convert (app only)
- app_store_subscription_renew (app only)
For more holistic insights I recommend defining custom conversions in addition to the default set that is available in each GA4 property.
Check: are there non-purchase conversions collecting data in this GA4 property?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Set up conversions.
# 17: Non-Ecommerce (not set)
(Not set) is a placeholder name that Analytics uses when it hasn’t received any information for the GA4 dimension you have selected. The reasons for (not set) appearing as a dimension value vary according to the report and dimension.
I have developed this check based on a benchmark of a wide range of Google Analytics 4 properties in different industries.
Five different dimensions are included in this test.
- Page Title
- Country
- Browser
- Session medium
- Session source
Check: is the percentage of (not set) sessions (check on five dimensions) for none of these dimensions higher than 2%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: 10 Actionable Tips to Master GA4 Dimensions and Metrics.
# 18: Non-Ecommerce Value
It’s very obvious that you set the value parameter for the ‘purchase’ event and probably a few more that fall in the GA4 recommended, ecommerce events bucket.
But, you will want to set a ‘value’ for other events as well. Two sample use cases below:
- A non-ecommerce site embedding lead gen forms on the website.
- An ecommerce site that comes with a ‘remove_from_wishlist’ functionality in addition to the recommended ‘add_to_wishlist’ event.
Check: is the ‘value’ parameter set for at least one non-recommended GA4 ecommerce event?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
# 19: Medium Length
Medium and source are the two UTMs that are crucial to get right.
Setting the wrong values leads to data points that are difficult to interpret and it most probably causes inaccurate channel tracking.
This check evaluates the medium length of all mediums that send data to GA4.
Check: is the number of session mediums consisting of just one character or over 30 equal to zero?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Scopes of traffic-source dimensions.
# 20: Bounce Rate
The bounce rate can be useful, but only if interpreted in context. We can’t simply say a bounce rate of 25% or 75% is good or bad.
A bounce rate of 80% and conversion rate of 10% on one of your landing pages isn’t that bad in most cases!
But, extremely high or low bounce rates on pages with sufficient traffic might indicate a tracking issue. This related check is limited to landing pages with at least 100 entries to improve the accuracy of this check.
Check: are there pages measured with an average bounce rate of less than 5% or higher than 95%?
Result: answer is “No” -> PASS, answer is “No” -> FAIL.
Reading suggestion: Ultimate Guide to Reduce Bounce Rate and Increase Conversions.
These bounce rate percentages correlate with a high likelihood of a measurement problem. So I highly recommend to double check your Google Analytics 4 implementation and configuration if you FAIL this test!
Note:
- The last 10 steps specifically apply to websites with a GA4 Ecommerce implementation.
- The GA4 Audit Tool allows you to evaluate the score based on the type of site (Ecommerce or Non-Ecommerce).
# 21: Ecommerce Purchase Revenue
The first dedicated Ecommerce check is very straightforward as it checks for the sum of revenue from purchases made in your app or site.
Check: is Ecommerce Purchase Revenue greater than 0?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Monetization reports.
# 22: Ecommerce Non-Purchase Value
I recommending capturing the value for ‘non-purchase’ Ecommerce events in addition to the ‘purchase’ event.
This will enhance your understanding of value attribution across the customer user journey.
Check: is the total value for Ecommerce non-purchase events greater than 0?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: [GA4] Recommended events.
# 23: Main Funnel Stages Configured
You could argue about what are the main funnel stages of GA4 Ecommerce. In my opinion the main funnel (in most cases) consists of:
- Product detail view // ‘view_item’
- Add to cart // ‘add_to_cart’
- Start checkout // ‘begin_checkout’
- Purchase // ‘purchase’
Check: are sessions captured for the four main GA4 Ecommerce funnel events (listed above)?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: In-Depth Guide on Funnel Tracking in Google Analytics 4 (GA4).
# 24: Main Funnel Stages Order
In 99% of the cases you expect the number of sessions with a funnel event to drop if users go down the funnel and come closer to the purchase.
And that’s exactly what this check is about (note: the report below is based on ‘users’ and this check is based on ‘sessions’).
Check: are the number of sessions per main funnel step decreasing with the lowest count on the ‘purchase’ event?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: In-Depth Guide on Funnel Tracking in Google Analytics 4 (GA4).
# 25: Ecommerce Duplicate Transactions
Duplicate transactions happen when the order confirmation page can be loaded more than once by the same user without placing any new order. This can trigger the ‘purchase’ event again causing the same transaction to be pushed to GA4 twice or even more.
Check: is the percentage of duplicate transactions lower than or equal to 1%?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
The larger the percentage of duplicate transactions the less reliable your Analytics data becomes. Make sure to resolve this issue.
# 26: Tax / Shipping Values
For every transaction, shipping and tax values in GA4 should in all cases be lower than the transaction revenue.
If any issues occur, the most likely reason goes back to how numbers are formatted.
Check: are transactions with tax and/or shipping greater than revenue smaller than or equal to 3?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
The above screenshot is from Universal Analytics. Previously you needed to register ‘Tax’ and ‘Shipping’ as a custom metric in GA4 to be able to explore them in greater detail. Now they are on default available in GA4 (below) which is great.
# 27: Transaction with zero quantity
Ecommere data in GA4 is stored based on transactions that contain one or multiple items (of the same of different products).
Capturing transactions with zero items/quantity is another red flag and reveals a potential implementation issue regarding item tracking.
Check: are one of more transactions displaying E-commerce quantity equal to 0?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
# 28: Ecommerce Item Revenue
In addition to capturing transaction revenue, you need to ensure to capture item revenue correctly.
This can go wrong for a variety of reasons. One of them is that the ‘price’ is undefined for the ‘purchase’ event.
Check: is Ecommerce Item Revenue greater than zero?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
# 29: Ecommerce Purchase Item Parameters
It’s a great first step if you capture item revenue correctly. In addition, it is crucial that the revenue is attributed to the correct product.
In many cases I have seen that ‘item name’ and related dimensions are incorrect.
Check: are ‘item_name’, ‘item_category’ and ‘item_id’ all set correctly for the ‘purchase’ event?
Result: answer is “Yes” -> PASS, answer is “No” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
# 30: Payment Processors
In a previous blogpost you can read about purchase attribution and payment processors.
Basically, your sales will be attributed in the wrong way if you don’t exclude third-party payment domains correctly.
There could be multiple ways to run this check:
- Try to list all payment providers and run a check on this list.
- Define a ‘payment processor’ as a referral with a very high Ecommerce CR% and two transactions or more.
In this check, I decided to work with the second definition.
Check: are there one or more referrals with at least two transactions and an Ecom CR% greather than 10%?
Result: answer is “No” -> PASS, answer is “Yes” -> FAIL.
Reading suggestion: GA4 Ecommerce: The Top 8 Steps to Get Right.
Great to see you made it to the 30th check of my Google Analytics 4 audit tool and report!
This will definitely help you to interpret and act on the results of the Analytics audit checklist.
Don’t forget to grab your free copy if you haven’t done yet!
What’s Missing
Tell me! I am happy to hear your comments.
Keep in mind that there are limitations on what a tool can do. As there are advantages with a Google Sheets integration, there are limitations as well.
I enjoyed the ride and I hope you too! :-)
What’s Next
Everyone working with Analytics data should be concerned about the quality of their data. In too many Google Analytics 4 audits I have come across huge mistakes in the setup and flaws in the data.
Independent of your exact role, find out what’s going on “behind the scenes” and you will be surprised.
And now, what should you do?
- First option: use the Google Analytics 4 audit tool as a guide to check and improve your GA setup. Keep in mind that no automated tool will ever cover everything you should do to get the maximum out of Google Analytics 4 and 100% reliable data.
- Second option: contact me for a professional, in-depth Google Analytics 4 audit and to learn a ton at the same time.
I hope this post and tool will become a great asset in your GA4 journey!
Now it’s your turn! How can I further improve this Google Analytics 4 audit tool and report for you?
One last thing... Make sure to get my automated Google Analytics 4 Audit Tool. It contains 30 key health checks on the GA4 Setup.
Kasper says
Regarding the removing of query parameters: GA4 also has the dimension Page path and screen class (without query parameters), so why bother?
Paul Koks says
Yes, you could use a dimension called Page path (that does not contain query parameters) but maybe you need to analyze data including one or more specific query parameters. And just don’t want to see parameters that pollute your reports (i.e. fbclid, mc_cid, etc.). That’s where the “Exclude URL query parameters” feature is useful. You remove what’s unwanted and keep the rest (i.e. registration=true).
Katja says
Is your Universal Analytics Audit still accessible somewhere? We just started a new project and implemented UA and GA4. So It would be great if we were able to audit both. Thanks!
Paul Koks says
Hi Katja, let me get back to you by email. Best, Paul
Miroslav says
Am I right that (after Trial period) I need the paid version of SuperMetrics for Sheets?
Paul Koks says
Yes, the GA4 audit tool is free by itself, but it harnesses the power of the Supermetrics for Google Sheets integration. Since quite some time there is no free plan unfortunately so it is up to you whether you think it is worth the investment (not only for the GA4 audit tool, but far more broadly obviously).
Manisha says
How do you calculate new v/s repeat users? The data I have for my accounts shows that the new and repeat user counts are very close. But it should have a significant difference. Because on our site there are more repeat users than new users.
Paul Koks says
Hi Manisha, I don’t have a blog written on this yet and it would go into too much depth to explain it here. This article might be useful to review for you.