GA4 audit
A free Claude skill. Checks a GA4 property's key events, unassigned traffic, self-referrals, payment referrers, Ads links and AI-assistant traffic - good, bad and fix.
Needs: the Caybl.ai connector with Google Analytics connected. Try: “Audit my GA4 property - can I trust its conversion numbers?”
What you get
- Good / bad / fix lists with evidence
- GA4 Admin click-paths for each fix
- A yes/no on trusting conversion numbers
Install
claude.ai and Claude Desktop
- Download the .zip.
- In Claude, go to Settings, Capabilities, Skills, and upload it.
- Connect Caybl.ai from the connector directory if you haven’t already.
Claude Code
mkdir -p ~/.claude/skills/ga4-audit && curl -fsSL https://caybl.ai/skills/ga4-audit/SKILL.md -o ~/.claude/skills/ga4-audit/SKILL.mdclaude mcp add --transport http caybl https://api.caybl.ai/mcpThe skill
This is the full SKILL.md - the same file you download. View raw.
---
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.
Connect your data, then run the skill
Sign in with Google, connect your accounts and add Caybl.ai to Claude. Google Analytics is free.
Get started free →