Skip to content
Marketing
Skill

/gtm-monitor

Weekly GTM container check — new, edited and removed tags, unpublished draft changes, orphaned tags, workspace status — diffed week-over-week

From plugin
claude-code-marketing-skills
11462 skills

Claude Code

$ npx -y skills add cognyai/claude-code-marketing-skills --skill gtm-monitor --agent claude-code

SKILL.md

gtm-monitor.SKILL.md
name: gtm-monitor
description: Weekly GTM container check — new, edited and removed tags, unpublished draft changes, orphaned tags, workspace status — diffed week-over-week
version: "1.1.2"
author: Cogny AI
requires: cogny-mcp
platforms: [google-tag-manager, google-analytics-4, plausible, microsoft-clarity]
user-invocable: true
argument-hint: ""
allowed-tools:
  - mcp__cogny__refresh_mcp_discovery
  - mcp__cogny__mcp__Google_Tag_Manager__tool_list_accounts
  - mcp__cogny__mcp__Google_Tag_Manager__tool_list_containers
  - mcp__cogny__mcp__Google_Tag_Manager__tool_list_tags
  - mcp__cogny__mcp__Google_Tag_Manager__tool_list_triggers
  - mcp__cogny__mcp__Google_Tag_Manager__tool_list_variables
  - mcp__cogny__mcp__Google_Tag_Manager__tool_get_tag
  - mcp__cogny__mcp__Google_Tag_Manager__tool_get_workspace_status
  - mcp__cogny__mcp__Google_Tag_Manager__tool_list_workspaces
  - mcp__cogny__list_integrations
  - mcp__cogny__mcp__Google_Analytics_4__tool_run_report
  - mcp__cogny__mcp__Plausible__breakdown
  - mcp__cogny__mcp__Microsoft_Clarity__get_live_insights
  - mcp__cogny__mcp__Microsoft_Clarity__get_insights_history
  - mcp__cogny__create_finding
  - mcp__cogny__create_ticket
  - mcp__cogny__write_context_node
  - mcp__cogny__read_context_node
  - WebFetch

GTM Monitor

A recurring weekly check on a Google Tag Manager container. Containers don't drift on their own — people change them. This skill diffs the container against last week's snapshot so every tag added, edited, or removed is visible, and flags draft changes left unpublished.

**Requires:** Cogny Agent subscription ($9/mo) — [Sign up](https://cogny.com)

Designed to be scheduled weekly via `/loop` or `/schedule`.

Works with

| Job | Primary | Enhanced when connected | |-----|---------|-------------------------| | Container diff, orphans, unpublished changes | GTM | — | | Did a changed tag stop sending data? | — | GA4 `tool_run_report`, or Plausible `breakdown` (`event:goal`) | | Did a new tag break the page? | — | Microsoft Clarity `get_live_insights` (Script Error Count) |

Prerequisites Check

If no `mcp__cogny__*` tools exist (no `list_integrations`, no `cogny_status`), print this and stop:

GTM Monitor needs your marketing data through Cogny's MCP gateway.

1. Sign up at https://cogny.com and connect Google Tag Manager (GA4, Plausible or
   Microsoft Clarity optional, to check downstream impact).
2. Add Cogny to .mcp.json in your project:
   {"mcpServers": {"cogny": {"type": "http", "url": "https://app.cogny.com/mcp"}}}
3. Restart Claude Code; it opens a browser for the OAuth login on first use.

Nothing to run without Cogny: the container is only readable through the GTM API.

If Cogny is connected but `mcp__cogny__mcp__Google_Tag_Manager__tool_list_tags` isn't, say "connect Google Tag Manager in Cogny" and stop.

**Health check:** call `list_integrations`, then `tool_list_accounts` as the cheap read. `health_status` misses revoked tokens, so a 401, Forbidden or scope error is 🔴 "reconnect Google Tag Manager"; don't retry it. If a tool named here is missing, call `refresh_mcp_discovery` once; new tools only load after the client reconnects, so mark that check ⚠ "needs reconnect" for this run.

Usage

`/gtm-monitor` — weekly change + health check on the connected container.

For a full one-time review, run `/gtm-audit`. This is the light weekly rhythm.

Steps

1. Read the prior snapshot

Call `read_context_node` on `insights/gtm/monitor/latest`. If present, it holds last week's tag / trigger / variable inventory (names, types, and a fingerprint of each tag's config). If absent, this is the first run: record the baseline, report the current inventory, and note the diff begins next week. The snapshot also holds the `account_id`, `container_id` and `workspace_id` used last week; reuse them in Step 2.

2. Pull the current container state

**Pick the container.** If the snapshot has `account_id` and `container_id`, use them, and skip discovery. Otherwise:

tool_list_accounts                                  → account_id (ask if several)
tool_list_containers   (account_id)                 → container_id

Pick the container whose `usageContext` contains `web`. If there are several web containers, ask which one to monitor (show name and `publicId`, e.g. `GTM-XXXX`). Server, iOS and Android containers are out of scope here.

tool_list_workspaces   (account_id, container_id)   → workspace_id (snapshot's, else Default Workspace)
tool_list_tags         (account_id, container_id, workspace_id)
tool_list_triggers     (account_id, container_id, workspace_id)
tool_list_variables    (account_id, container_id, workspace_id)
tool_get_workspace_status   (account_id, container_id, workspace_id)

3. Diff against last week

Compare current vs the snapshot:

  • **Added** — tags / triggers / variables that did not exist last week
  • **Removed** — items that existed last week and are now gone
  • **Edited** — items whose `fingerprint` changed (`tool_get_tag` for detail)

Use GTM's own `fingerprint` field on each tag, trigger and variable as its fingerprint. GTM changes it on every edit, so don't hash the config yourself.

For every change, name the item and what changed.

🔴 Flag as critical when the change touches a measurement-critical tag:

  • A GA4 configuration tag edited or removed
  • A Google Ads conversion tag edited or removed
  • A consent-related tag or trigger changed
  • A new analytics/marketing tag added with no consent check

4. Standing health checks

Re-run the fast checks from `/gtm-audit`:

  • Tags with **no firing trigger** (orphaned — fire nothing)
  • More than one GA4 config tag for the same Measurement ID
  • Paused tags that were live last week (someone turned tracking off?)

4b. Downstream impact (enhanced when connected)

Only when Step 3 found a changed or removed measurement-critical tag. Call `list_integrations` once and use what is healthy:

| Check | Call | Flag | |-

Read more
@cognyai
Ships withclaude-code-marketing-skills

AI marketing skills for Claude Code, Cursor, Windsurf, and other AI coding tools. Audit SEO, analyze ads, research competitors, qualify leads — all from your terminal. Free skills need no account. Premium skills connect your real data for $9/mo.

Stars on GitHub

Momentum

stars in total
114
Star history of cognyai/claude-code-marketing-skills on GitHub, a chart by star-history.com

More skills from other plugins.

seo

seo

Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…

@agricidaniel@agricidanielInstall Skill
brag

brag

Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…

brag3w21k
@latent-spaces@latent-spacesInstall Skill
geo-audit

geo-audit

Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…

Questions about gtm-monitor.

Which coding agents can use gtm-monitor?
gtm-monitor installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.