The short answer
A useful GA4 property audit answers two different questions:
Is the measurement configuration present and internally coherent?
Does the implementation actually collect the intended data?
AI can inspect the first layer quickly: the selected property, its streams, key events, linked Google Ads accounts, custom dimensions, and custom metrics. It can then compare that inventory with your measurement plan and highlight missing, inconsistent, or ambiguous items.
But configuration is not runtime proof. A web stream can exist while the wrong measurement ID is deployed. An event can be marked as a key event while its parameters are missing. A Google Ads link can exist while the wrong account is linked – or while no useful conversion has been created for bidding.
The safe sequence is: identify the property → inspect configuration → reconcile it with the measurement plan → run a small evidence report → validate critical journeys in the browser.
Table of Contents
What a GA4 property configuration audit should cover
A property audit should be narrow enough to finish, but broad enough to catch the settings that change how marketers interpret reports. These six checks form a practical minimum.
Audit area | What to verify | What it cannot prove |
|---|---|---|
Property details | Property ID, display name, parent account, time zone, currency, property type | That the site or app sends data to this property |
Data streams | Stream type, display name, stream ID, web URL or app identifiers, measurement ID | That the tag fires on every required page or consent state |
Key events | Exact event names, counting methods, default values, creation dates, business purpose | That event parameters are correct or the event represents a qualified outcome |
Google Ads links | Customer IDs, manager-account status, ads-personalization setting, expected account coverage | That a GA4 key event is imported as a Google Ads conversion or used for bidding |
Custom dimensions | Parameter names, display names, scope, descriptions, ads-personalization restrictions | That the parameters arrive with valid values |
Custom metrics | Parameter names, units, scope, descriptions, restricted-data labels | That the metric is populated consistently or suitable for a decision |
Before you start: write down the expected measurement design
An inventory without an expectation is just a list. Before asking AI to audit the property, create a compact measurement brief with:
the production website or app;
the intended GA4 property ID;
expected web and app streams;
the business outcomes that should be key events;
the Google Ads accounts that should be linked;
the custom parameters needed for reporting;
the owner for each decision or fix.
If you do not have a formal tracking plan, begin with the questions the business must answer. “Which forms produce qualified leads?” is useful. “Track everything” is not.
A seven-step GA4 property audit
1. Confirm the property before inspecting anything else
List the GA4 accounts and properties visible to the connected Google login. Match the account name, account ID, property name, and numeric property ID – not only a familiar display name.
This catches a common failure: reviewing a staging, regional, legacy, or client property that looks almost identical to production. Also record the property time zone and currency. Both affect how dates and monetary values should be interpreted.
Evidence to save: account ID, property ID, property display name, property type, time zone, and currency.
2. Review every data stream
For each stream, capture the type, display name, resource ID, and platform-specific identifiers. A web stream should resolve to the expected website and measurement ID. App streams should map to the correct package or bundle identifier.
Flag:
a production property with no expected production stream;
multiple web streams that appear to represent the same site without a documented reason;
staging and production mixed in a way that contaminates reporting;
a website URL or app identifier that no longer matches the live product;
a measurement ID that differs from the one deployed on the site.
The final check requires browser or implementation evidence. The stream list alone cannot show which pages fire the tag.
3. Reconcile key events with business outcomes
A key event is an event considered important to the business. That label should be earned. Compare the exact event names with the measurement brief, then inspect the counting method and any default value or currency.
Questions worth asking:
Does every primary business outcome have one clear key event?
Are micro-events – scrolls, generic clicks, or page views – being treated like commercial outcomes?
Does “once per event” or “once per session” match the intended behavior?
Could two key events describe the same outcome?
Is a value meaningful, or merely a placeholder?
Do not infer quality from the label. A generate_lead event may represent a valid form submission, an unvalidated button click, or both. The audit should record the intended trigger and require runtime evidence.
4. Match Google Ads links to the advertising structure
Compare every linked customer ID with the accounts that should receive Analytics audiences and conversion signals. Distinguish a manager-account link from an individual account link, and record whether ads personalization is enabled.
A valid link is necessary for several workflows, but it is not sufficient. It does not prove that:
the intended key event was created as a Google Ads conversion;
the conversion is primary or included in account goals;
the conversion is used by the relevant campaigns;
Google Ads and GA4 use the same date, scope, counting, or attribution basis.
Treat the link as one checkpoint in the chain, not as an all-clear signal.
5. Inspect custom dimensions and metrics
Custom definitions turn collected parameters into fields that marketers can use in reports. Compare the definition’s parameter name, display name, description, scope, and – when relevant – measurement unit with the implementation specification.
Look for:
definitions with unclear display names or empty descriptions;
event-, user-, or item-scoped dimensions that do not match the intended question;
parameter-name drift between the site, GTM, GA4, and reporting request;
currency metrics with the wrong business meaning;
restricted cost or revenue data without an access plan;
definitions that exist but never appear in reporting metadata or sample data.
Do not guess a custom field’s API name. Search the property’s reporting metadata and use the returned name exactly.
6. Check coverage and run a small evidence report
A configuration request may succeed overall while one section fails. Preserve the status of each section. A failed key-events read is not the same as an empty key-event list.
Then use reporting metadata to find the relevant fields, check that the intended dimensions and metrics are compatible, and run a small report over complete dates. Examples:
event count and key events by event name;
sessions and key events by stream ID;
a custom dimension with the metric it is meant to explain.
The report is a reasonableness check. It can reveal zero rows, unexpected stream coverage, or an apparently unused definition. It still does not explain why an event is missing.
7. Validate critical journeys in the browser
Use Tag Assistant and GA4 DebugView to test each consequential outcome. Trigger the real journey, confirm the expected tag or event fires, inspect its parameters, and verify that GA4 receives it for the intended stream and property.
Test multiple states when they matter: consent granted and denied, mobile and desktop, successful and failed forms, single-page-app route changes, external checkout handoffs, and redirects.
Human review gate: do not change a stream, key event, link, or custom definition until the owner has confirmed the intended measurement design and the runtime evidence.
Visual placement: Insert the Secondary in-article visual “Configuration evidence is not runtime proof” here.
How to classify the findings
Finding | Decision | Next check |
|---|---|---|
Expected object is missing and the audit section succeeded | Investigate as a real configuration gap | Confirm the measurement brief and property ID before proposing a change |
Expected object is missing but the audit section failed | Unknown – not missing | Resolve access, quota, or API error and rerun that section |
Configuration exists but sample reporting is empty | Investigate implementation, date range, filters, or volume | Use Tag Assistant and DebugView; inspect the exact event and parameters |
Configuration and reporting look plausible | Monitor, then validate the critical journey | Retain browser evidence and compare with downstream business outcomes |
Configuration conflicts with the measurement brief | Prepare a reviewed change plan | Document impact, owner, test plan, and rollback path before editing GA4 |
A copyable prompt for the audit
Using the connected Google Analytics profile, first list the accessible accounts and GA4 properties with account names, account IDs, property names, and property IDs. Wait for me to confirm the production property if there is any ambiguity. For the confirmed property, read the property details, data streams, key events, Google Ads links, custom dimensions, and custom metrics. Preserve the status of every section and list failed sections separately; do not treat an error as an empty configuration. Compare the successful evidence with this measurement brief: [PASTE BRIEF]. Flag mismatches, duplicates, ambiguous definitions, and missing expected objects. Then search the property’s reporting metadata for the relevant events and custom fields, check compatibility, and propose one small complete-date report that could test coverage. Do not change GA4, Google Ads, GTM, or the website. Finish with three queues: Act after human verification, Investigate, and Monitor. For every finding, state what the evidence proves, what it does not prove, and the next human check.How HireOtto supports this audit
HireOtto’s GA4 server can list the accounts and properties visible to the connected Google login, then inspect six configuration sections in one read-only workflow: property details, data streams, key events, Google Ads links, custom dimensions, and custom metrics. It keeps the status of each section separate, which matters when one API read fails while the others succeed.
After the configuration pass, HireOtto can search property-specific reporting metadata, check whether a Core report’s dimensions and metrics are compatible, and run a small standard or realtime report. That makes it useful for moving from “this object exists” to “is there reportable evidence behind it?” without manually hopping through several Admin screens.
The limitations are important. HireOtto’s GA4 connection is read-only and currently in beta. It cannot install tags, send test events, mark key events, create or edit Google Ads links, change custom definitions, or modify attribution, retention, reporting identity, or other GA4 settings. Its configuration inventory cannot prove browser firing, parameter quality, consent behavior, or business validity. Those remain human review gates using Tag Assistant, DebugView, the implementation specification, and downstream business evidence.
Use the GA4 tools reference for the exact configuration and reporting workflow, the GA4 quickstart to connect and verify a property, and connect HireOtto to your AI tool to get started.
Frequently asked questions
Can a GA4 property audit prove that tracking works?
No. It can prove that configuration objects exist and expose how they are defined. Runtime validation still requires a real journey in Tag Assistant and GA4 DebugView, followed by checks in mature reports or downstream systems.
Should every important event be a key event?
Only events that represent outcomes important to the business should be marked as key events. Diagnostic interactions can remain regular events. The decision should follow the measurement plan, not a desire to inflate the key-event count.
Does a Google Ads link mean conversions are ready for bidding?
No. A link connects the property and Ads account, but you must separately confirm the intended conversion, its settings, goal use, and campaign bidding configuration.
Why does the AI show an empty section?
First check the section status. An empty successful list and a failed request are different findings. Resolve permission, quota, or API errors before concluding that an object does not exist.
How often should you repeat the audit?
Run it during onboarding, before major reporting or bidding decisions, after material website or app changes, and whenever a report stops matching operational reality. High-change programs may also include a lightweight monthly configuration diff.
About Me
I’m Suyash – badminton junkie, ex‑GroupM ad‑ops grunt, first marketer at a B2B SaaS startup, and creator of Hiretto: MCP servers for performance marketers.
My mission: less clicking, more thinking.
Let’s build leverage together.

