From ccc-skills
Guides through GA4 setup from account creation to verified conversion events, including tag installation, Key Event marking, and DebugView verification.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ccc-skills:google-analytics-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Get GA4 tracking a real conversion, verified end to end, so ad spend is measured against something trustworthy. GA4's model is different from old Universal Analytics, and the single most common failure is spending money before confirming the conversion event actually fires. This skill front-loads that.
Get GA4 tracking a real conversion, verified end to end, so ad spend is measured against something trustworthy. GA4's model is different from old Universal Analytics, and the single most common failure is spending money before confirming the conversion event actually fires. This skill front-loads that.
GA4 setup is a chain: account → property → data stream → tag on site → conversion event → mark as Key Event → verify. People arrive at different points in that chain. Guessing wastes their time and risks duplicate properties (which cannot be merged later). So always ask first what already exists, then jump in at the right link:
Ask (adapt to what they've said):
G-XXXXXXXXXX)? If yes, paste it.Then go straight to the relevant section below. Skip what they've already done. Do NOT re-create anything that exists.
Getting the hierarchy wrong fragments data permanently, so settle it before creating anything.
/pricing or /waitlist does NOT get its own stream — it shares the site's stream, and you tell pages apart by page_path.page_path (automatic) or a custom dimension (e.g. plan_tier, product_area) on events — never with separate properties.The reason this matters: the whole point of GA4 is following a user's journey (ad → landing → signup → activation). Splitting that journey across properties severs it, and you can't un-split it.
In analytics.google.com → Admin (gear):
G-XXXXXXXXXX. This is the one value the site's tag needs. Find it again anytime under Admin → Data streams → [your stream].Paste this immediately after the opening <head> on every page, replacing G-XXXXXXXXXX with the real ID. A page_view fires automatically on load — you don't code that.
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
Framework-specific install (Next.js App Router, WordPress, Shopify, plain HTML, Google Tag Manager) is in references/install-by-platform.md — read it for the user's stack rather than guessing, because a mis-scoped tag (e.g. loaded on the wrong Next.js boundary) is a common silent failure.
Use GA4's recommended event name for the action so it maps to built-in reports (e.g. generate_lead for a lead/waitlist, sign_up for account creation, purchase for a sale — full list in references/recommended-events.md). Fire it only after the action truly succeeded — after a durable write / a 2xx response — never on a caught error, or you will count failures as conversions and make the whole test lie.
<script>
document.getElementById('myForm').addEventListener('submit', async function (e) {
e.preventDefault();
try {
await saveTheLead(/* ... */); // 1. persist FIRST — the real success
gtag('event', 'generate_lead', { // 2. only then, count it
// segmentable, NON-PII params only (see PII rule):
persona: 'driver',
value_bucket: 'high',
currency: 'USD'
});
window.location.href = '/thank-you';
} catch (err) {
// show a friendly error — do NOT fire the event, do NOT fake success
showError('Something went wrong, please try again.');
}
});
</script>
Never put email, phone, name, or full address into event parameters. GA4's terms prohibit PII, and Enhanced measurement's own warning says the same. Send categories and buckets (persona, plan, a price band) that let you segment, not the person's identity. This keeps you compliant (GDPR/PDPA/CCPA) and is genuinely all you need for analysis.
An event you fire is just an event until you promote it. Fire a test submit first, then in Admin → Events, toggle Mark as key event on your event row. Since 2024 GA4 calls conversions "key events" — same idea.
This is the step people skip and regret. Do a real submit on the live (or preview) site, then confirm the event actually landed:
?debug_mode=1 to the URL, or install the GA Debugger Chrome extension). You should see your event appear in real time, with the right parameter values.Only once you can see the conversion fire with correct data should any ad budget go live. A conversion tracked wrong (fired on failure, missing its params, or never firing) silently invalidates every downstream number — you'd optimize against noise. The full checklist is in references/verify-checklist.md.
A simple site collecting a form needs: a one-page privacy policy linked near the form, a consent note, and honoring opt-out. For heavier compliance (EU traffic, sensitive categories) wire Consent Mode v2 — details in references/consent-and-privacy.md. Don't over-build this before you have traffic, but don't skip the basics.
Honestly, no — and it isn't worth it. GA4 has an Admin API, but it needs the user's own Google OAuth + a Google Cloud project + service account, which is more work than the ~5-minute UI click-through and can't be done on their behalf without their credentials. Do the account/property/stream creation in the UI. What you (the assistant) can do is write the tag + event code into their site. Split it that way.
references/install-by-platform.md — exact tag install for Next.js, plain HTML, WordPress, Shopify, and Google Tag Manager.references/recommended-events.md — GA4 recommended event names + params for common conversions (lead, signup, purchase, add-to-cart).references/verify-checklist.md — the pre-spend verification checklist (DebugView, Realtime, common "no data" causes).references/consent-and-privacy.md — PII rules, Consent Mode v2, regional basics.npx claudepluginhub ooiyeefei/ccc --plugin rethink-surveysAdds or repairs Google Analytics 4 on websites with privacy-compliant gtag/GTM setup, GA4 event taxonomy, and exact UI steps for tracking goals and AdSense revenue.
Guides GA4 property setup, event tracking (automatic, recommended, custom), custom dimensions, BigQuery integration, gtag.js/GTM implementation, reporting, and privacy compliance for web/app analytics.
Helps set up, audit, and improve analytics tracking (GA4, Mixpanel, Segment, GTM) with tracking plans, event naming conventions, and data quality checks.