---
name: ga4-audit
description: Audits a Google Analytics 4 property from its live configuration and data via the Caybl.ai connector - key events, (not set) and unassigned traffic, self-referrals, payment and login referrers, missing UTMs, Google Ads links, custom definitions and AI-assistant traffic - and returns a good / bad / fix list. Use for "audit my GA4", "is my GA4 set up right", "why is my traffic unassigned", "GA4 health check", or before trusting GA4 numbers for a decision.
license: MIT
compatibility: Requires the Caybl.ai MCP connector (https://api.caybl.ai/mcp) with Google Analytics connected (free).
metadata:
  author: Caybl.ai
  version: "1.0"
---

# GA4 audit

## Requires

The Caybl.ai MCP connector with Google Analytics connected - free, no card (https://caybl.ai/google-analytics-mcp).

## Workflow

1. **Property.** `get_account_summaries`; pick the property the user means (ask only if ambiguous). `get_property_details` - time zone, currency, industry, data retention context.
2. **Definitions.** `get_custom_dimensions_and_metrics` - list custom dimensions and metrics; flag duplicates, unused-looking names, and user-scoped dimensions holding event-level data.
3. **Key events.** `run_report` with `eventName` and `keyEvents` and `eventCount` for the last 28 days. Check:
   - at least one key event that represents real business value (purchase, sign-up, lead) - not just `page_view` or `scroll`,
   - key events that fire implausibly often (more than once per session on average) - double counting,
   - two key events that are steps of the same journey both counted (inflates conversions),
   - events that look like typos or near-duplicates (`sign_up` vs `signup`).
4. **Traffic quality.** `run_report` with `sessionDefaultChannelGroup`, `sessionSource`, `sessionMedium`, sessions and engaged sessions:
   - **Unassigned / (not set)** share above ~5% -> UTM or tagging problems,
   - **Self-referrals** (your own domain as a source) -> cross-domain or redirect issue,
   - **Payment and login referrers** (stripe.com, paypal.com, checkout.*, accounts.google.com, login.* ) stealing credit from the real source -> add them to the unwanted-referrals list (Admin -> Data streams -> Configure tag settings -> List unwanted referrals),
   - **Paid traffic landing as Organic or Referral** -> missing auto-tagging or UTMs,
   - **AI assistants** (chatgpt.com, claude.ai, perplexity.ai, gemini.google.com, copilot.microsoft.com) - report sessions and engagement; they're often the best-converting new channel.
5. **Landing pages.** `run_report` with `landingPage`: `(not set)` landing pages above ~2% of sessions point to sessions starting without a page_view (consent mode or tag order).
6. **Google Ads.** `list_google_ads_links` - is the Ads account linked? If Ads spend exists but there's no link, conversions can't be imported or compared.
7. **Realtime sanity check.** `run_realtime_report` - is the tag firing right now?

## Output

Three lists, each item with the evidence (numbers) and the exact fix:

- **Good** - what's set up correctly.
- **Bad** - problems, ranked by how much they distort decisions.
- **Fix** - step-by-step, with where to click in GA4 Admin. Offer the fixes Caybl can make itself, only with an explicit yes: `mark_key_event` to promote an event to a key event, `create_google_ads_link` to link Ads.

End with one sentence: can the user trust this property's conversion numbers today, yes or no, and why.

## Guardrails
- Thresholds above are starting points; small sites have noisy shares - say when volume is too low to judge.
- Don't recommend deleting events or definitions; recommend archiving or ignoring.
