by jtrackingai
AI-powered GA4 + GTM event tracking — automates site analysis, event schema, GTM sync, preview verification, and publishing. Works with Cursor, Codex, and any AI agent.
# Add to your Claude Code skills
git clone https://github.com/jtrackingai/analytics-tracking-automationUse this skill as the end-to-end coordinator for GA4 + GTM tracking delivery.
Use it when:
Do not assume the user wants the full workflow.
This installed root skill can self-check for newer GitHub versions before you continue.
Before doing any task in this bundle:
SKILL.md. Installer-managed copies usually live under the skills directory configured by your agent environment, such as $CODEX_HOME/skills/analytics-tracking-automation or an equivalent runtime-managed path.node "<bundle-dir>/runtime/skill-runtime/update-check.mjs" --json.update_available, immediately run node "<bundle-dir>/runtime/skill-runtime/self-update.mjs" --apply.<bundle-dir>/SKILL.md again before continuing so you are using the refreshed instructions.disabled, treat this bundle as a local development link or repo checkout and continue without updating.The skill family is split into one umbrella skill plus seven phase skills:
tracking-discover for crawl coverage, platform detection, and fresh artifact bootstrapanalytics-tracking-automation is a local-first AI skill for planning, reviewing, and delivering GA4 + GTM tracking.
Use it when you want an agent to help with:
This README is intentionally user-facing and conversation-first. If you need the CLI surface or maintainer workflow, use DEVELOPING.md.
For a given website, this skill can help produce:
Most users only need the umbrella skill.
Clone the repository locally, then install the skill into your agent skills directory:
git clone https://github.com/jtrackingai/analytics-tracking-automation.git
cd analytics-tracking-automation
npm run install:skills
If you do not want to clone the repository, install the root skill directly:
npx skills add jtrackingai/analytics-tracking-automation
For advanced install options and exported skill bundles:
No comments yet. Be the first to share your thoughts!
Based on votes and bookmarks from developers who liked this skill
tracking-group for page-group authoring and approvaltracking-live-gtm for auditing the real live GTM runtime before schema generationtracking-schema for schema preparation, review, validation, and approvaltracking-sync for GTM config generation and synctracking-verify for preview QA and optional publish handofftracking-shopify for Shopify-specific schema, sync, install, and verification rulesIf the request is already bounded to one phase and that phase skill is available, route there instead of inlining the full runbook here.
Once site-analysis.json indicates Shopify, keep discovery and grouping shared, then let tracking-shopify own the Shopify-specific branch.
./event-tracking in this repository. If dist/cli.js is missing, run npm run build first.event-tracking command: npx skills add jtrackingai/analytics-tracking-automation.<output-root>/<url-slug>.analyze../event-tracking status <artifact-dir-or-file> whenever the current checkpoint or next step is unclear../event-tracking runs <output-root> when the artifact directory is unknown but the output root is known.run-new-setup, run-tracking-update, run-upkeep, run-health-audit.yes stores local consent and enables high-level anonymous usage diagnostics for future runs, while no stores local decline and continues the workflow without sending diagnostics.yes does, what no does, and the remaining privacy tradeoff before asking the user to reply yes or no. Do not ask a bare yes/no question with no context, do not answer the prompt for them, and do not continue to the next workflow command until the user makes that choice.analyze, validate-schema --check-selectors, preview, and sync.--account-id, --container-id, and --workspace-id values are already confirmed.When the user enters through chat and has not yet provided a bounded phase, artifact directory, or exact command, start with an intent-first intake.
Classify the request into one of these entry intents:
resume_existing_run: the user already has an artifact directory or one of its files; inspect the artifacts and use statusnew_setup: net-new tracking implementation from scratch; prefer run-new-setup, then follow its recommended next steptracking_update: revise or extend an existing implementation; prefer run-tracking-updateupkeep: routine maintenance, review, or incremental QA on an existing setup; prefer run-upkeeptracking_health_audit: audit-only assessment of current live tracking; prefer run-health-auditanalysis_only: crawl/bootstrap/discovery only without committing to the full workflow yet; route to tracking-discover and stop after analyzeRules:
analyze.new_setup.analysis_only.resume_existing_run instead of restarting from analyze.Route by user intent and current artifacts:
tracking-discoversite-analysis.json with missing or unconfirmed pageGroups: route to tracking-groupsite-analysis.json with detected live GTM container IDs but no live baseline review yet: route to tracking-live-gtmsite-analysis.json or an in-progress event-schema.json: route to tracking-schemagtm-config.json: route to tracking-syncgtm-context.json: route to tracking-verify, with publish treated as a separate explicit actiontracking-shopifyIf only the root skill is available, follow the same routing logic directly and stop at the matching phase boundary.
prepare-schema.pageGroups (before confirm-page-groups and before prepare-schema)event-schema.json (before confirm-schema and before generate-gtm)sync)publish)yes or no, stop and ask instead of making the decision for them.confirm-page-groups --yes or confirm-schema --yes unless the user explicitly confirms that checkpoint in the current turn.generate-gtm unless the user explicitly wants --force.tracking-health.json as the publish gate; do not jump to publish when health is missing, manual-only, or blocked unless the user explicitly wants --force.tracking_health_audit as an audit-only workflow mode. Do not run GTM deployment actions (generate-gtm, sync, publish) unless the user explicitly asks to override.When resuming:
workflow-state.json when presentstatus when the next step is unclearWhen a phase or the full workflow ends, keep the closeout answer-first:
If you are publishing this skill to ClawHub, publish the exported public bundle instead of the full repository:
npm run export:skills:clawhub
Then upload dist/clawhub-skill-bundles/analytics-tracking-automation.
That public bundle is a publish-safe skill bundle. It keeps the agent-facing skill docs and references while stripping bundled executable runtime files (CLI bootstrap, packaged node modules, telemetry transport, and updater runtime) that tend to trigger stricter marketplace security scans.
When users install/use this public ClawHub bundle, they must run this prerequisite first (before any event-tracking command):
npx skills add jtrackingai/analytics-tracking-automation
The intended experience is simple: tell your agent what you want in plain language.
Good requests usually include one or more of:
./output or /tmp/output./output/example_comFor a new setup, the output root is not the artifact directory itself. The agent/CLI creates one artifact directory per site under that root, for example ./output/example_com.
New setup from scratch:
Use analytics-tracking-automation to plan GA4 + GTM tracking for https://www.example.com.
Use ./output as the output root; create the site artifact directory under it.
Start from a fresh run and stop after the event schema is ready for review.
New setup with implementation context:
Use analytics-tracking-automation to set up tracking for https://www.example.com.
Use /tmp/output as the output root, so this site's artifacts go under /tmp/output/www_example_com.
GA4 Measurement ID is G-XXXXXXXXXX.
We care most about signup, pricing, contact, and demo intent.
Audit only:
Use analytics-tracking-automation to run a tracking health audit for https://www.example.com.
I only want to understand the current live GTM setup and whether we should repair or rebuild.
Do not continue into deployment work.
Routine upkeep:
Use analytics-tracking-automation to do an upkeep review for this existing run:
./output/example_com
Tell me what is still healthy, what drifted, and what needs repair.
Update an existing artifact:
Use analytics-tracking-automation to resume this artifact directory:
./output/example_com
Tell me the current checkpoint and continue only through schema review.
Page-group review only:
Use analytics-tracking-automation to review and refine the page groups in:
./output/example_com/site-analysis.json
Focus on business intent, not just URL shape.
Shopify branch:
Use analytics-tracking-automation for this Shopify storefront:
https://store.example.com
I want the Shopify-specific tracking path, not the generic website flow.
This skill is best when you want the agent to act like a tracking lead, not just a command runner.
A typical conversation flow is:
If preview troubleshooting points to selector mismatch or page-load/navigation issues, these Playwright CLI helpers are faster than repeatedly re-running the full flow:
npm run debug:open -- https://www.example.com
npm run debug:codegen -- https://www.example.com
debug:open: headed browser for quick visual checks (redirect loops, WAF pages, blocked content).debug:codegen: interactive selector capture for fixing event-schema.json selectors.npm install triggers the package postinstall step that installs the browser binaryyes or no instead of answering on the user's behalfThis skill reflects the implementation workflow behind JTracking.
If you need a more advanced setup, JTracking also supports:
This project is licensed under the Apache License, Version 2.0. See LICENSE for the full text.
Use of the JTracking name, logo, and other brand assets is not granted under this license.