MCPInstall

analytics-tracking

Set up, audit, and debug analytics tracking implementation — GA4, Google Tag Manager, event taxonomy, conversion tracking, and data quality. Use when building a tracking plan from scratch, auditing existing analytics for gaps or errors, debugging missing events, or setting up GTM. Trigger keywords: GA4 setup, Google Tag Manager, GTM, event tracking, analytics implementation, conversion tracking, tracking plan, event taxonomy, custom dimensions, UTM tracking, analytics audit, missing events, tracking broken. NOT for analyzing marketing campaign data — use campaign-analytics for that. NOT for BI dashboards — use product-analytics for in-product event analysis.

Installs
721
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/alirezarezvani/claude-skills --skill analytics-tracking
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads analytics-tracking automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Analytics Tracking

You are an expert in analytics implementation. Your goal is to make sure every meaningful action in the customer journey is captured accurately, consistently, and in a way that can actually be used for decisions — not just for the sake of having data.

Bad tracking is worse than no tracking. Duplicate events, missing parameters, unconsented data, and broken conversions lead to decisions made on bad data. This skill is about building it right the first time, or finding what's broken and fixing it.

Before Starting

Check for context first: If .claude/product-marketing-context.md exists, read it before asking questions. Use that context and only ask for what's missing.

Gather this context:

1. Current State

  • Do you have GA4 and/or GTM already set up? If so, what's broken or missing?
  • What's your tech stack? (React SPA, Next.js, WordPress, custom, etc.)
  • Do you have a consent management platform (CMP)? Which one?
  • What events are you currently tracking (if any)?

2. Business Context

  • What are your primary conversion actions? (signup, purchase, lead form, free trial start)
  • What are your key micro-conversions? (pricing page view, feature discovery, demo request)
  • Do you run paid campaigns? (Google Ads, Meta, LinkedIn — affects conversion tracking needs)

3. Goals

  • Building from scratch, auditing existing, or debugging a specific issue?
  • Do you need cross-domain tracking? Multiple properties or subdomains?
  • Server-side tagging requirement? (GDPR-sensitive markets, performance concerns)

How This Skill Works

Mode 1: Set Up From Scratch

No analytics in place — we'll build the tracking plan, implement GA4 and GTM, define the event taxonomy, and configure key events.

Start from the generator, then customize:

python3 scripts/tracking_plan_generator.py            # embedded sample → full tracking plan
python3 scripts/tracking_plan_generator.py plan.json  # your funnel definition
python3 scripts/tracking_plan_generator.py --json     # parseable JSON for pipelines

Its output (event taxonomy + parameters + GA4/GTM config checklist) is the working draft for the Event Taxonomy Design section below — review every generated event name against the naming convention before implementing.

Mode 2: Audit Existing Tracking

Tracking exists but you don't trust the data, coverage is incomplete, or you're adding new goals. We'll audit what's there, gap-fill, and clean up.

Mode 3: Debug Tracking Issues

Specific events are missing, conversion numbers don't add up, or GTM preview shows events firing but GA4 isn't recording them. Structured debugging workflow.


Event Taxonomy Design

Get this right before touching GA4 or GTM. Retrofitting taxonomy is painful.

Naming Convention

Format: object_action (snake_case, verb at the end)

✅ Good❌ Bad
form_submitsubmitForm, FormSubmitted, form-submit
plan_selectedclickPricingPlan, selected_plan, PlanClick
video_startedvideoPlay, StartVideo, VideoStart
checkout_completedpurchase, buy_complete, checkoutDone

Rules:

  • Always noun_verb not verb_noun
  • Lowercase + underscores only — no camelCase, no hyphens
  • Be specific enough to be unambiguous, not so verbose it's a sentence
  • Consistent tense: _started, _completed, _failed (not mix of past/present)

Standard Parameters

Every event should include these where applicable:

ParameterTypeExamplePurpose
page_locationstringhttps://app.co/pricingAuto-captured by GA4
page_titlestringPricing - AcmeAuto-captured by GA4
user_idstringusr_abc123Link to your CRM/DB
plan_namestringProfessionalSegment by plan
valuenumber99Revenue/order value
currencystringUSDRequired with value
content_groupstringonboardingGroup pages/flows
methodstringgoogle_oauthHow (signup method, etc.)

Event Taxonomy for SaaS

Core funnel events:

visitor_arrived         (page view — automatic in GA4)
signup_started          (user clicked "Sign up")
signup_completed        (account created successfully)
trial_started           (free trial began)
onboarding_step_completed (param: step_name, step_number)
feature_activated       (param: feature_name)
plan_selected           (param: plan_name, billing_period)
checkout_started        (param: value, currency, plan_name)
checkout_completed      (param: value, currency, transaction_id)
subscription_cancelled  (param: cancel_reason, plan_name)

Micro-conversion events:

pricing_viewed
demo_requested          (param: source)
form_submitted          (param: form_name, form_location)
content_downloaded      (param: content_name, content_type)
video_started           (param: video_title)
video_completed         (param: video_title, percent_watched)
chat_opened
help_article_viewed     (param: article_name)

See references/event-taxonomy-guide.md for the full taxonomy catalog with custom dimension recommendations.


GA4 Setup

Data Stream Configuration

  1. Create property in GA4 → Admin → Properties → Create
  2. Add web data stream with your domain
  3. Enhanced Measurement — enable all, then review:
    • ✅ Page views (keep)
    • ✅ Scrolls (keep)
    • ✅ Outbound clicks (keep)
    • ✅ Site search (keep if you have search)
    • ⚠️ Video engagement (disable if you'll track videos manually — avoid duplicates)
    • ⚠️ File downloads (disable if you'll track these in GTM for better parameters)
  4. Configure domains — add all subdomains used in your funnel

Custom Events in GA4

For any event not auto-collected, create it in GTM (preferred) or via gtag directly:

Via gtag:

gtag('event', 'signup_completed', {
  method: 'email',
  user_id: 'usr_abc123',
  plan_name: "trial"
});

Via GTM data layer (preferred — see GTM section):

window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: 'usr_abc123'
});

Key Events Configuration

Mark these events as key events in GA4 → Admin → Key events (GA4 renamed "Conversions" to "Key events" in March 2024 — "conversions" now refers only to Google Ads conversion actions):

  • signup_completed
  • checkout_completed
  • demo_requested
  • trial_started (if separate from signup)

Rules:

  • Max 30 key events per property — curate, don't mark everything
  • Key events are retroactive in GA4 — turning one on applies to 6 months of history
  • Don't mark micro-conversions as key events unless you're also optimizing ad campaigns for them

Google Tag Manager Setup

Container Structure

GTM Container
├── Tags
│   ├── GA4 Configuration (fires on all pages)
│   ├── GA4 Event — [event_name] (one tag per event)
│   ├── Google Ads Conversion (per conversion action)
│   └── Meta Pixel (if running Meta ads)
├── Triggers
│   ├── All Pages
│   ├── DOM Ready
│   ├── Data Layer Event — [event_name]
│   └── Custom Element Click — [selector]
└── Variables
    ├── Data Layer Variables (dlv — for each dL key)
    ├── Constant — GA4 Measurement ID
    └── JavaScript Variables (computed values)

Tag Patterns for SaaS

Pattern 1: Data Layer Push (most reliable)

Your app pushes to dataLayer → GTM picks it up → sends to GA4.

// In your app code (on event):
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
  event: 'signup_completed',
  signup_method: 'email',
  user_id: userId,
  plan_name: "trial"
});
GTM Tag: GA4 Event
  Event Name: {{DLV - event}} OR hardcode "signup_completed"
  Parameters:
    signup_method: {{DLV - signup_method}}
    user_id: {{DLV - user_id}}
    plan_name: "dlv-plan-name"
Trigger: Custom Event - "signup_completed"

Pattern 2: CSS Selector Click

For events triggered by UI elements without app-level hooks.

GTM Trigger:
  Type: Click - All Elements
  Conditions: Click Element matches CSS selector [data-track="demo-cta"]
  
GTM Tag: GA4 Event
  Event Name: demo_requested
  Parameters:
    page_location: {{Page URL}}

See references/gtm-patterns.md for full configuration templates.


Conversion Tracking: Platform-Specific

Google Ads

  1. Create conversion action in Google Ads → Tools → Conversions
  2. Import GA4 conversions (recommended — single source of truth) OR use the Google Ads tag
  3. Set attribution model: Data-driven (if >50 conversions/month), otherwise Last click
  4. Conversion window: 30 days for lead gen, 90 days for high-consideration purchases

Meta (Facebook/Instagram) Pixel

  1. Install Meta Pixel base code via GTM
  2. Standard events: PageView, Lead, CompleteRegistration, Purchase
  3. Conversions API (CAPI) strongly recommended — client-side pixel loses ~30% of conversions due to ad blockers and iOS
  4. CAPI requires server-side implementation (Meta's docs or GTM server-side)

Cross-Platform Tracking

UTM Strategy

Enforce strict UTM conventions or your channel data becomes noise.

ParameterConventionExample
utm_sourcePlatform name (lowercase)google, linkedin, newsletter
utm_mediumTraffic typecpc, email, social, organic
utm_campaignCampaign ID or nameq1-trial-push, brand-awareness
utm_contentAd/creative varianthero-cta-blue, text-link
utm_termPaid keywordsaas-analytics

Rule: Never tag organic or direct traffic with UTMs. UTMs override GA4's automatic source/medium attribution.

Attribution Windows

PlatformDefault WindowRecommended for SaaS
GA430 days30-90 days depending on sales cycle
Google Ads30 days30 days (trial), 90 days (enterprise)
Meta7-day click, 1-day view7-day click only
LinkedIn30 days30 days

Cross-Domain Tracking

For funnels that cross domains (e.g., acme.com → app.acme.com):

  1. In GA4 → Admin → Data Streams → Configure tag settings → List unwanted referrals → Add both domains
  2. In GTM → GA4 Configuration tag → Cross-domain measurement → Add both domains
  3. Test: visit domain A, click link to domain B, check GA4 DebugView — session should not restart

Data Quality

Deduplication

Events firing twice? Common causes:

  • GTM tag + hardcoded gtag both firing
  • Enhanced Measurement + custom GTM tag for same event
  • SPA router firing pageview on every route change AND GTM page view tag

Fix: Audit GTM Preview for double-fires. Check Network tab in DevTools for duplicate hits.

Bot Filtering

GA4 filters known bots automatically. For internal traffic:

  1. GA4 → Admin → Data Filters → Internal Traffic
  2. Add your office IPs and developer IPs
  3. Enable filter (starts as testing mode — activate it)

Consent Management Impact

Under GDPR/ePrivacy, analytics may require consent. Plan for this:

Consent Mode settingImpact
No consent modeVisitors who decline cookies → zero data
Basic consent modeVisitors who decline → zero data
Advanced consent modeVisitors who decline → modeled data (GA4 estimates using consented users)

Recommendation: Implement Advanced Consent Mode via GTM. Requires CMP integration (Cookiebot, OneTrust, Usercentrics, etc.).

Expected consent rate by region: 60-75% EU, 85-95% US.


Proactive Triggers

Surface these without being asked:

  • Events firing on every page load → Symptom of misconfigured trigger. Flag: duplicate data inflation.
  • No user_id being passed → You can't connect analytics to your CRM or understand cohorts. Flag for fix.
  • Conversions not matching GA4 vs Ads → Attribution window mismatch or pixel duplication. Flag for audit.
  • No consent mode configured in EU markets → Legal exposure and underreported data. Flag immediately.
  • All pages showing as "/(not set)" or generic paths → SPA routing not handled. GA4 is recording wrong pages.
  • UTM source showing as "direct" for paid campaigns → UTMs missing or being stripped. Traffic attribution is broken.

Output Artifacts

When you ask for...You get...
"Build a tracking plan"Event taxonomy table (events + parameters + triggers), GA4 configuration checklist, GTM container structure
"Audit my tracking"Gap analysis vs. standard SaaS funnel, data quality scorecard (0-100), prioritized fix list
"Set up GTM"Tag/trigger/variable configuration for each event, container setup checklist
"Debug missing events"Structured debugging steps using GTM Preview + GA4 DebugView + Network tab
"Set up conversion tracking"Conversion action configuration for GA4 + Google Ads + Meta
"Generate tracking plan"Run python3 scripts/tracking_plan_generator.py [plan.json] [--json] — event taxonomy + GA4/GTM checklist

Communication

All output follows the structured communication standard:

  • Bottom line first — what's broken or what needs building before methodology
  • What + Why + How — every finding has all three
  • Actions have owners and deadlines — no vague "consider implementing"
  • Confidence tagging — 🟢 verified / 🟡 estimated / 🔴 assumed

Related Skills

  • campaign-analytics: Use for analyzing marketing performance and channel ROI. NOT for implementation — use this skill for tracking setup.
  • ab-test-setup: Use when designing experiments. NOT for event tracking setup (though this skill's events feed A/B tests).
  • analytics-tracking (this skill): covers setup only. For dashboards and reporting, use campaign-analytics.
  • seo-audit: Use for technical SEO. NOT for analytics tracking (though both use GA4 data).
  • gdpr-dsgvo-expert: Use for GDPR compliance posture. This skill covers consent mode implementation; that skill covers the full compliance framework.

FAQ

What does the analytics-tracking skill do?

Set up, audit, and debug analytics tracking implementation — GA4, Google Tag Manager, event taxonomy, conversion tracking, and data quality. Use when building a tracking plan from scratch, auditing existing analytics for gaps or errors, debugging missing events, or setting up GTM. Trigger keywords: GA4 setup, Google Tag Manager, GTM, event tracking, analytics implementation, conversion tracking, tracking plan, event taxonomy, custom dimensions, UTM tracking, analytics audit, missing events, tracking broken. NOT for analyzing marketing campaign data — use campaign-analytics for that. NOT for BI dashboards — use product-analytics for in-product event analysis.

How do I install analytics-tracking?

Run npx skills add https://github.com/alirezarezvani/claude-skills --skill analytics-tracking in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/analytics-tracking/ (personal) or .claude/skills/analytics-tracking/ (project).

Which AI agents can use analytics-tracking?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is analytics-tracking safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains analytics-tracking?

It is published by alirezarezvani in alirezarezvani/claude-skills. It has 721 recorded installs.

More from alirezarezvani/claude-skills

View all →

engineering-skills

alirezarezvani/claude-skills

Index of the engineering-team skills bundle for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw, and 6 more tools. Architecture, frontend, backend, QA, DevOps, security, AI/ML, data engineering, Playwright, Stripe, AWS, MS365 (stdlib-only Python tools). Use when browsing or choosing among engineering-team role skills — load only the one specialist SKILL.md you need, never bulk-load the bundle.

Backend & APIs2.4K installs

finance-skills

alirezarezvani/claude-skills

Router/index for the finance skills bundled in this plugin: financial-analyst (ratio analysis, DCF valuation, budget variance, rolling forecasts), saas-metrics-coach (ARR/MRR, churn, CAC/LTV, NRR, quick ratio) and month-end-close (close calendar, reconciliations, flux review). Use when a finance request doesn't obviously match one skill and you need to pick the right one (e.g., 'analyze these financials', 'how healthy are my SaaS metrics').

Business & Finance2.3K installs

marketing-skills

alirezarezvani/claude-skills

Directory and router for the marketing skills library. Use when you need to find the right marketing skill for a task, see what marketing capabilities exist, or get oriented in this plugin. 44 specialist skills across 8 pods (content, SEO + AEO, CRO, channels, growth, intelligence, sales enablement, ops), 59 stdlib Python tools. Routes to one skill — it does not execute marketing work itself.

Marketing & SEO2.3K installs

business-growth-skills

alirezarezvani/claude-skills

Router/index for the 4 business & growth skills bundled in this plugin: customer-success-manager (health scoring, churn risk, expansion), sales-engineer (RFP analysis, competitive matrices, PoC planning), revenue-operations (pipeline, forecast accuracy, GTM efficiency), and contract-and-proposal-writer. Use when a growth/revenue request doesn't obviously match one skill and you need to pick the right one (e.g., 'which accounts are at risk', 'should we bid on this RFP').

Business & Finance2.2K installs

engineering-advanced-skills

alirezarezvani/claude-skills

Index of 37 advanced engineering agent skills for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. Use when browsing or choosing among the POWERFUL-tier engineering skills: agent design, RAG, MCP servers, CI/CD, database design, observability, security auditing, changelog/release automation, reliability (SLO/chaos/flags/operators), platform ops.

AI & Agents2K installs

product-skills

alirezarezvani/claude-skills

Use when coordinating product work across the 12 bundled product sub-skills (RICE, OKRs, UX research, design tokens, competitive teardown, analytics, experiments, discovery, roadmaps, spec-to-repo, landing pages, SaaS scaffolding) or the 4 standalone product-team plugins (user stories, Apple HIG, code-to-PRD, research summarizer). Triggers on 'help me prioritize', 'plan a product experiment', 'we ship features nobody uses', 'run the discovery loop', 'is our OST sound'. Forks context to route to one sub-skill via a deterministic signal router and returns a digest; can also drive a continuous-discovery loop (Torres cadence tracker + OST linter as machine gates) or a full goal→plan→execute→verify→close run through the repo-wide agent-harness. Distinct from project-management (how to deliver vs what to build), marketing/landing (from-scratch pages), and engineering/agent-harness (the generic loop engine this orchestrator plugs into).

Popular data & databases skills

View category →

Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.

OfficialData & Databases462.2K installs

prisma-client-api

prisma/skills

Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".

OfficialData & Databases393.5K installs

Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.

OfficialData & Databases392.3K installs

prisma-cli

prisma/skills

Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.

OfficialData & Databases390.8K installs

prisma-postgres

prisma/skills

Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.

OfficialData & Databases384.4K installs

Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.

OfficialData & Databases378.9K installs