GA4 Auditor – Features & Test Catalog
Technicians usually want two things: first, to quickly identify whether a GA4 property is “healthy,” and second, to clearly isolate the causes. The GA4 Auditor is built precisely for this purpose.
The app combines three types of checks:
- Health Checks: quick GA4 setup and data quality checks based on the GA4 APIs
- Traffic Light Checks: compressed Pass, Warning, Fail assessment focusing on BigQuery raw data checks
- SST Analysis: technical assessment of whether server-side tracking makes sense and where it is measurably failing today
Data Sources and Limits
GA4 APIs
- GA4 Admin API: Configuration and setup such as Streams, Enhanced Measurement, Key Events, Google Ads Linking, BigQuery Linking, Custom Definitions, Annotations
- GA4 Data API: aggregated metrics and dimensions for plausibility checks such as channel shares, PageTitle patterns, e-commerce signals, site search
Important: The Data API is often delayed. Therefore, some checks are deliberately not based on the last few days to ensure the assessment remains stable.
BigQuery Export
If the BigQuery Export is active, the app uses raw data from the export. This enables deep checks such as PII hints, duplicates, query parameter patterns, payment referrals, or funnel consistency.
Status Logic in Practice
Most checks fall into one of three classes:
- Pass: No anomalies or sufficiently good data situation
- Warning: Recognizable risk or incomplete setup that often leads to incorrect reports
- Fail: High probability of a real tracking or data problem
Whether a check is count-based or share-based can be seen from the signal: either “Number of affected events” or “Percentage share.”
Complete Check Overview as a Table
The table is structured so that you can use it directly as a technical reference. It describes per check:
- Area: Health, Traffic Light, or SST
- Data Source: Admin API, Data API, or BigQuery Export
- Signal: what is specifically measured
- Typical Causes: common technical reasons
- Recommended Actions: next sensible steps
| Area | Check | Data Source | Signal | Typical Causes | Recommended Actions |
|---|---|---|---|---|---|
| Health | Streams Available | Admin API | At least one stream exists | Property incomplete, migration not yet finished | Create stream, check tagging, verify data flow in real-time |
| Health | Enhanced Measurement active | Admin API | Enhanced Measurement is active for web | deliberately deactivated, incorrect stream configured | Check stream settings, only activate required auto-events |
| Health | Key Events Available | Admin API | At least one key event is defined | Goals not maintained, historically only conversions used | Define core goals and mark as key events |
| Health | Google Ads Linking Available | Admin API | At least one Ads link | missing permissions, linking never set up | Establish linking, check product links and permissions |
| Health | BigQuery Export Linked and Reachable | Admin API | BigQuery Linking available and reachable | Dataset Location, IAM, Export not active | Set up linking, set IAM cleanly, check export status |
| Health | Annotations Available | Admin API | Data Annotations exist | Governance missing, no release notes in reporting | Annotate deployments, campaigns, and tracking changes |
| Health | Custom Definitions Available | Admin API | Custom Dimensions or Metrics exist | Parameter not registered, data unreadable in the UI | Register relevant parameters as custom definitions |
| Health | Basic Events Available | Data API | session_start and page_view are available | Tag not firing, consent blocked, incorrect stream | Check tagging and consent, use DebugView and Realtime |
| Health | Direct Share Plausible | Data API | Direct share is increased or stable | UTMs missing, redirects lose parameters, consent effects | Check UTM governance, redirect chain, referrer policy |
| Health | Unassigned Share Plausible | Data API | Share of Unassigned or Other is increased | Channel rules missing, source medium inconsistent | Check UTM standards, channel definitions, campaign links |
| Health | PageTitle not set Share | Data API | Share of PageTitle not set | SPA sets title too late, tracking timing, consent timing | Fix SPA title handling, virtual pageviews, debug timing |
| Health | PageTitle Contains 404 Share | Data API | Share of PageTitle with 404 patterns | broken links, missing redirects | Identify 404 URLs, set redirects, fix internal links |
| Health | Traffic Source not set Share | Data API | Share of sessionSource not set | UTMs missing, referrer lost, consent mode | Check UTM obligation, redirects, consent implementation |
| Health | E-Commerce Plausibility | Data API | Add to Cart and Purchase signals match | Checkout events missing, purchase duplicated, value missing | E-commerce event plan, purchase params, QA via debug and BQ |
| Health | Site Search Usage | Data API | Search terms appear | Enhanced Measurement off, view_search_results missing | Activate or correctly map site search tracking |
| Traffic Light | Demographics and Interests | Admin API | Google Signals are active or plausible | Signals deliberately off, consent setup | Make decision, activate signals if desired, check consent |
| Traffic Light | Not set Pages | BigQuery Export | Number of pages with not set indicator | SPA timing, title never set | Improve title handling, check pageview timing |
| Traffic Light | Broken Pages | BigQuery Export | Number of error page indicators | 404, campaign links, old URLs | Redirects, link hygiene, monitoring |
| Traffic Light | Enhanced Measurement | Admin API | Enhanced Measurement active | incorrectly configured | Check stream settings, consciously control auto events |
| Traffic Light | Query Parameters | BigQuery Export | Conspicuous parameter accumulation | PII in URL, IDs, redirects | Clean up parameters, remove PII, define URL strategy |
| Traffic Light | PII Hints | BigQuery Export | Hits for PII patterns | Email, phone, name in URL or referrer | Stop leaks, logging, redirects, check consent texts |
| Traffic Light | Engagement Rate Anomalies | BigQuery Export | Session consistency conspicuous | Bot traffic, duplicate pageviews, trigger loops | Check bot filter, trigger audit, consent and SPA setup |
| Traffic Light | Custom Events Quality | BigQuery Export | Conspicuous custom event patterns | Event naming chaotic, unexpected volumes | Define event plan, maintain expected events, versioning |
| Traffic Light | Custom Event Value Missing | BigQuery Export | Events without value | Value not set, incorrect param names | Param standardization, set value and currency |
| Traffic Light | Key Events | Admin API | Key events available or not | Governance missing | Define key events, determine naming and ownership |
| Traffic Light | Conversion Value Missing | BigQuery Export | Purchases without value | Value not mapped, backend not sending | Validate purchase value and currency server-side |
| Traffic Light | Content Grouping | BigQuery Export | Content groups are not cleanly populated | Taxonomy missing, parameter not set | Define content taxonomy, send parameters consistently |
| Traffic Light | Internal Site Search | BigQuery Export | Search events and terms available | Search not tracked | Implement view_search_results or own search event cleanly |
| Traffic Light | Custom Audience | Admin API | Audiences exist | no remarketing setup | Define basic audiences, plan segmentation |
| Traffic Light | User ID Coverage | BigQuery Export | Share of user_id events | Login missing, user_id not set | user_id strategy, set and clear on login logout |
| Traffic Light | Self Referrals | BigQuery Export | Own domain as referrer | Cross domain broken, checkout, payment flows | Check referral exclusions, cross domain setup, linker |
| Traffic Light | Unassigned or Other Traffic | BigQuery Export | Share unassigned or other | UTMs missing, channel rules | UTM governance, channel rules, campaign links |
| Traffic Light | Direct Channel Share | BigQuery Export | Direct share high | UTMs missing, redirects, consent | Link strategy, UTM obligation, fix redirects |
| Traffic Light | Custom Campaigns | BigQuery Export | Campaign inconsistencies | Source medium conflicts, gclid, auto tagging | Naming standard, check auto tagging, channel definitions |
| Traffic Light | Google Ads Linking | Admin API | Ads links available | missing linking, incorrect account | Establish linking, check rights, transfer key events to Ads |
| Traffic Light | Not set Campaigns | BigQuery Export | Share of campaigns missing | utm_campaign missing, redirects | UTM obligation, link builder, redirect chain |
| Traffic Light | Ecommerce Tracking | BigQuery Export | Purchase schema errors | transaction_id missing, items missing | Validate purchase payload, QA and unit tests in tagging |
| Traffic Light | Ecommerce Revenue | BigQuery Export | Revenue null or zero | value not set, currency missing | Set value and currency correctly, validate backend |
| Traffic Light | Duplicate Transactions | BigQuery Export | duplicate purchases | Reload Thank You, trigger duplicated, hybrid SST | Dedupe via transaction_id, trigger audit, event idempotency |
| Traffic Light | Payment Referrals | BigQuery Export | Payment domains as referrer | Checkout domain change, payment provider | Check referral exclusions, cross domain setup, return URL |
| Traffic Light | Enhanced Ecommerce Funnel | BigQuery Export | Funnel inconsistencies | Events missing or incorrect order | Funnel event plan, consolidate implementation |
| SST | Browser Impact | Data API | Differences Safari vs Chrome in conversion signals | ITP, cookie limits, consent mode | First party strategy, consent audit, SST evaluation |
| SST | Attribution Quality | Data API | unattributed share, browser gap | UTMs missing, referrer lost, domain change | UTMs, redirects, cross domain, consent setup |
| SST | Mobile Impact | Data API | iOS vs Android differences | ATT, SDK setup, consent | Check mobile tracking, consent, server-side supplementation |
| SST | New vs Returning | Data API | Returning rate gap browser | Cookie Lifetime | Improve identity, check login, user_id, SST |
| SST | Session Quality | Data API | Engagement differences browser | Tracking breaks in sessions | Trigger audit, SPA setup, consent handling |
| SST | Key Event Attribution | Data API | Key events without clean sources | Channel attribution problems | Check UTMs, cross domain, consent, Ads linking |
| SST | Cross Domain Tracking | Data API | multiple domains and hostname patterns | Linker missing, checkout domain change | Cross domain setup, referral exclusions, tagging on subdomains |
| SST | SST Detection | BigQuery Export | Patterns in client identifier indicate SST | Hybrid setup, only parts server-side | Check data flow, increase coverage or clearly delineate |
BigQuery Reports in the App
In addition to the checks, there are BigQuery reports that are intended for root cause analysis. Typical examples:
- Missing Events: checks expected events against the actual event landscape
- Duplicate Events: shows duplicates and exceptions for controlled deduping
- E-Commerce Reports: transactions, revenue, funnel, error categories
- Hourly Trends: hourly trends as a debugging aid after deployments
How to Use the Result Meaningfully
A good workflow for technicians:
- Start in the overview to quickly see if the setup and data basis are fundamentally correct
- Go deeper with warnings and fails in BigQuery because the raw data almost always makes the cause visible
- Use the SST area for attribution, browser gaps, and consent effects to assess impact and priority