GA4 Audit: A Checklist for Settings, Events and Links

GA4 Audit: A Checklist for Settings, Events and Links

analyticsNovember 1, 2026
By Antonio Fernandez

TL;DR

  • Standard GA4 properties keep event-level data for 2 or 14 months (360: up to 50), and a 2-month setting empties year-over-year Explorations.
  • A property can hold up to 10 data filters; a filter left in Testing only tags data, while Active excludes it permanently and never retroactively.
  • Standard properties allow 30 key events (360: 50), 50 unwanted-referral conditions per web stream, and up to 400 Google Ads links per property.
  • GA4 deduplicates web purchases that share a transaction_id, so a missing or blank ID can collapse orders and undercount revenue.

A GA4 audit is a structured check of a Google Analytics 4 property to confirm that the data it collects is complete, clean and trustworthy enough to make decisions on. It covers property settings, data retention, data filters, cross-domain measurement, key events, consent signals, event quality, product links and ecommerce tracking, and it ends with a list of fixes ranked by how much each problem distorts your reports.

Settings that were wrong on day one, such as a two-month retention window or a missing internal traffic filter, keep quietly shaping every report until someone looks. The sections below walk through what to check, where each setting lives in the current Admin menu, and what a failure looks like in the data.

What a GA4 audit checks

A useful audit works from the property outward: first the settings that decide what data is kept, then the events that feed it, then the links that send it to other Google products. Each area below lists the Admin path and the specific thing to verify.

Property settings

Open Admin > Property settings > Property details and confirm the reporting time zone and currency. A property set to a US time zone while the business runs on Bangkok time shifts every daily total by the time difference, so "yesterday" in GA4 does not match "yesterday" in your sales system. Currency matters for the same reason: revenue in reports is shown in the property currency, and a mismatch makes revenue comparisons with your back office harder than they should be.

While you are in Admin, check Data display > Reporting identity. GA4 offers Blended, Observed and Device-based options. There is no single right answer, but the team reading the reports should know which one is active, because it changes how users are counted.

Data retention

Go to Admin > Data collection and modification > Data retention. Standard properties can keep event-level data for 2 months or 14 months; GA4 360 properties can choose 2, 14, 26, 38 or 50 months. Check which setting your property actually uses.

Retention only applies to Explorations and funnel reports. Standard aggregated reports are not affected. The practical effect is that an analyst who tries to build a year-over-year Exploration on a 2-month property sees an empty date range. Raising the setting to 14 months extends data that has not yet been deleted, but it cannot bring back data that is already gone, so this is a fix that pays off later, not today. Changes take effect after a 24-hour wait, and the "Reset user data on new activity" toggle on the same screen controls whether each new event restarts a user's retention clock.

Data filters and internal traffic

Under Admin > Data collection and modification > Data filters you can create up to 10 data filters per property. The three types are Internal traffic (by IP address or range), Developer traffic (events sent in debug mode) and Web hostname traffic.

An internal traffic filter only works if the internal traffic rule exists. That rule lives at Data streams > your web stream > Configure tag settings > Show more > Define internal traffic, and it attaches a traffic_type value to matching events. The filter then excludes events carrying that value. Check three things: the rule exists, its IP addresses still match your office and agency networks, and the filter state.

Filters have three states. Testing tags matching events with the "Test data filter name" dimension without removing them. Active permanently excludes matching data: it is never processed and does not reach BigQuery either. Inactive does nothing. A filter left in Testing means internal visits are still counted even though the team believes they are excluded. Filters are not retroactive, so the fix only cleans data from the day it goes active.

Cross-domain measurement

If users move between domains you own, for example from a marketing site to a separate booking or checkout domain, open Configure tag settings > Configure your domains and confirm every domain is listed. All pages on each domain must carry the same Google tag ID from the same web data stream.

To verify, click a link from one domain to the other and check that the destination URL contains a _gl parameter. Redirects that strip query strings, or navigation triggered by JavaScript, can drop it. When cross-domain measurement is broken, the second domain records a new session with your own first domain as the referrer, which inflates sessions and steals credit from the real traffic source.

Key events

Review the list under Admin > Data display > Events and the key events marked there. A standard property can mark up to 30 events as key events; 360 properties can mark 50. Audit questions: does each key event represent a real business outcome, does it fire once per outcome, and is anything important missing? A key event on a high-volume interaction such as a page scroll makes conversion rates meaningless, and a duplicate form-submit event can double your reported leads.

If your site shows a consent banner, check that the Google tag receives consent state before it fires and updates it after the visitor chooses. Consent mode v2 uses four signals: analytics_storage, ad_storage, ad_user_data and ad_personalization. Tag Assistant shows the consent state on each hit, which is the quickest way to confirm that a "deny" choice is respected and an "accept" choice is passed through. A banner that blocks the tag entirely, rather than passing a denied state, removes those visits from GA4 instead of modelling them.

How to spot broken or duplicate events in DebugView and Realtime

DebugView lives at Admin > Data display > DebugView. It only shows devices sending events in debug mode, which you can switch on with Tag Assistant or Tag Manager preview mode, or by adding debug_mode: true to the tag configuration. The seconds stream shows the last 60 seconds of events, newest first, and the minutes stream covers the last 30 minutes. Select your own device in the DEBUG DEVICE menu so a colleague's testing does not mix with yours.

Walk through your site the way a customer would and watch the stream. The patterns to look for:

  • Two page_view events per page load: Usually the tag is installed twice, for example hard-coded in the theme and again through Tag Manager.
  • A key event firing on page load instead of on success: A thank-you event that fires when the form page opens, rather than after submission, records leads that never happened.
  • Missing parameters: Click an event to see its parameters. A purchase without transaction_id or currency, or a lead event without the form name you planned to report on, will not be fixable later.
  • Odd event names: Event names are case-sensitive and limited to 40 characters, so Form_Submit and form_submit become two separate events.

The Realtime report is the complement for live traffic without debug mode. Use it to confirm that real visitors produce the events you expect, and to check that traffic sources look plausible. DebugView does only limited attribution, so judge sources in the Acquisition reports, not here.

Under Admin > Product links, open Google Ads links and confirm the right ad accounts are connected. A property can hold up to 400 Google Ads links, and linking a manager account counts as one. Check that personalised advertising is enabled on the link if you plan to use GA4 audiences in Google Ads, and that auto-tagging is on in the Google Ads account so ad clicks arrive with the click ID GA4 needs to attribute them to the right campaign. If you import GA4 key events into Google Ads, confirm the same action is not also counted by a separate Google Ads conversion tag, or bidding will optimise to a doubled number.

Then open Search Console links. Each web data stream can link to only one Search Console property, and the link needs a GA4 Editor who is also a verified owner in Search Console. Search Console data appears in GA4 about 48 hours after Search Console collects it. The Search Console report collection is unpublished by default, so if nobody can find the reports, publish the collection from the Library in the left navigation.

Referral exclusions and unwanted referrals

Payment gateways, single sign-on pages and booking engines often send users back to your site with their own domain as the referrer. GA4 then starts a new session credited to the gateway, and your paid and organic channels lose the sale. Check the Traffic acquisition report with the session source dimension and look for payment processors, email login domains or your own domains in the list.

Fix it at Configure tag settings > List unwanted referrals, where you can add up to 50 conditions per data stream. GA4 adds ignore_referrer=true to matching events so that referrer is not treated as a new traffic source. Your own domain and subdomains are not counted as new referrers by default, and cross-domain navigation that carries the _gl parameter is not treated as a referral either, so a self-referral in the report points back to the cross-domain check above.

Ecommerce and purchase event validation

For online stores, the purchase event deserves its own pass. Place a test order, ideally with a discount code that makes it free or with a staging payment method, and check in DebugView that the purchase event carries:

  • a unique transaction_id for every order,
  • value and currency together, because value without currency is not counted as revenue,
  • an items array with item ID or name, price and quantity for each product.

GA4 deduplicates web purchases that share a transaction ID, which protects against a thank-you page being reloaded. The same rule works against you if the ID is missing or blank: an empty transaction_id can cause purchases to be collapsed together and revenue to be undercounted. Then compare a recent week of GA4 purchases and revenue with your store's order system. Some gap is normal because of consent choices, ad blockers and refunds, but a gap that suddenly widens usually means a tracking change broke something. As an illustrative example only, if GA4 has historically recorded around 90 orders for every 100 in the back office and that falls to 60 after a checkout redesign, the redesign is the first place to look.

A reusable GA4 audit checklist

Use this table as a starting checklist. Each row names the check and what a failure looks like in the data.

A reusable GA4 audit checklist
CheckWhere in GA4What a failure looks like
Data retentionAdmin > Data collection and modification > Data retentionExplorations show nothing older than 2 months
Internal traffic filterAdmin > Data filtersFilter still in Testing; staff visits counted as users
Cross-domainConfigure tag settings > Configure your domainsYour own domain appears as a referral source
Unwanted referralsConfigure tag settings > List unwanted referralsPayment gateway credited with purchases
Purchase eventDebugView, Monetization reportsMissing transaction_id or currency; revenue far below the store system

How often to run a GA4 audit

Run a full GA4 audit once when you take over a property, then a lighter review every quarter. Re-check immediately after anything that touches tracking: a site redesign, a new checkout or booking engine, a consent banner change, a new domain, or a Tag Manager container rebuild. A quarterly review takes far less time than the first audit because you are only confirming that nothing has drifted: filters still active, key events still firing once, purchases still matching the store.

Keep a short change log next to the property, with the date and the reason for each settings change. When numbers move, the first question is always whether the business changed or the tracking changed, and a change log answers it in seconds.

What this means for Thai marketers

Many Thai businesses send customers from the website into LINE Official Account chats, third-party booking engines or marketplace stores, and each of those hand-offs is a place where GA4 can lose the trail. A booking engine on its own domain needs cross-domain measurement or an unwanted referral rule. A "Chat on LINE" button should fire its own event so that leads which close in chat can at least be counted as intent on the site.

Thai sites also tend to run Thai and English versions side by side, sometimes on separate subdomains. Confirm both versions carry the same Google tag ID and that the subdomains share one cookie domain, or one visitor switching language can turn into two users. Finally, check that the property time zone is set to Bangkok so daily figures line up with Thai business days and with daily ad budgets in Google Ads.

FAQ

How long does a GA4 audit take?

A GA4 audit of a single property with one web stream usually fits into a working day for the settings review, plus time to test events by walking through the site. Properties with several domains, apps or ecommerce add more time, mostly for event and purchase testing.

Can a GA4 audit fix historical data?

No, a GA4 audit cannot repair data that has already been processed. Data filters, retention increases for deleted data and cross-domain fixes all apply going forward, which is why it pays to audit early rather than after a year of skewed reports.

Do I need GA4 360 to fix audit issues?

No, every check in this guide works on a standard GA4 property. GA4 360 raises limits such as retention length, key event count and custom dimension quotas, but it does not change how the core settings work.

Get a second pair of eyes on your property

If you would rather have a specialist run the checks and fix what they find, Relevant Audience offers a GA4 setup and migration service that covers configuration, events and ecommerce tracking. When GA4 is one of several data sources that need to agree, the data integration and consolidation service brings analytics, ad platforms and CRM data into one view, and the Google Ads management team can make sure campaigns bid on clean, deduplicated key events.

Antonio Fernandez

Antonio Fernandez

Founder and CEO of Relevant Audience. With over 15 years of experience in digital marketing strategy, he leads teams across southeast Asia in delivering exceptional results for clients through performance-focused digital solutions.

Share to:
Copy link:

Read us often? Add Relevant Audience as a preferred source so our articles surface more in your Google results.