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

  1. Download the .zip.
  2. In Claude, go to Settings, Capabilities, Skills, and upload it.
  3. 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.md
claude mcp add --transport http caybl https://api.caybl.ai/mcp

The 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 →