Google Tag Manager
Manage Google Tag Manager containers, tags, triggers, variables, and versions via the GTM API v2.
- Rating
- 4.6 (339 reviews)
- Downloads
- 1,638 downloads
- Version
- 1.0.0
Overview
Manage Google Tag Manager containers, tags, triggers, variables, and versions via the GTM API v2.
Complete Documentation
View Source →
Google Tag Manager Skill
Interact with the GTM API v2 to manage containers, workspaces, tags, triggers, variables, and versions.
Authentication
The GTM API uses OAuth2 via a Google Cloud service account.
Setup
- Enable Tag Manager API in Google Cloud Console
- Create a service account with key (JSON)
- Grant the service account access in GTM (Admin → User Management → add service account email)
- Set env vars:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.jsonGTM_ACCOUNT_ID=123456GTM_CONTAINER_ID=789012
Script
All operations use scripts/gtm.sh. Run without args to see usage:
scripts/gtm.sh <command> [args...]
Commands
| Command | Description |
|---|---|
| accounts | List all GTM accounts |
| containers [accountId] | List containers in account |
| workspaces | List workspaces in container |
| tags [workspaceId] | List tags in workspace (default: latest) |
| tag | Get a specific tag |
| create-tag | Create a tag from JSON |
| update-tag | Update a tag |
| delete-tag | Delete a tag |
| triggers [workspaceId] | List triggers |
| trigger | Get a specific trigger |
| create-trigger | Create a trigger from JSON |
| update-trigger | Update a trigger |
| delete-trigger | Delete a trigger |
| variables [workspaceId] | List variables |
| variable | Get a specific variable |
| create-variable | Create a variable from JSON |
| update-variable | Update a variable |
| delete-variable | Delete a variable |
| built-in-vars [workspaceId] | List enabled built-in variables |
| enable-built-in | Enable built-in variable(s) |
| versions | List container version headers |
| version | Get a specific version |
| version-live | Get the live (published) version |
| create-version [workspaceId] [name] [notes] | Create version from workspace |
| publish | Publish a container version |
Workspace Resolution
Most commands accept an optional workspaceId. If omitted, the script auto-resolves to the Default Workspace (the first workspace returned by the API — typically "Default Workspace").
Common Recipes
Create a Google Ads Conversion Tag
See references/recipes.md for JSON templates for:
- Google Ads Conversion Tracking tag
- GA4 Event tag
- Custom Event trigger (dataLayer)
- Cross-domain tracking linker
Workflow: Add Tag → Create Version → Publish
# 1. Create trigger
scripts/gtm.sh create-trigger trigger.json
# 2. Create tag referencing the trigger
scripts/gtm.sh create-tag tag.json
# 3. Create version from workspace
scripts/gtm.sh create-version "" "v1.2 - Added conversion tag"
# 4. Publish
scripts/gtm.sh publish <versionId>
API Reference
For full resource schemas and trigger types, see references/api-reference.md.
Installation
openclaw install google-tag-manager
💻Code Examples
scripts/gtm.sh <command> [args...]
### Commands
| Command | Description |
|---------|-------------|
| `accounts` | List all GTM accounts |
| `containers [accountId]` | List containers in account |
| `workspaces` | List workspaces in container |
| `tags [workspaceId]` | List tags in workspace (default: latest) |
| `tag <tagId> [workspaceId]` | Get a specific tag |
| `create-tag <jsonFile> [workspaceId]` | Create a tag from JSON |
| `update-tag <tagId> <jsonFile> [workspaceId]` | Update a tag |
| `delete-tag <tagId> [workspaceId]` | Delete a tag |
| `triggers [workspaceId]` | List triggers |
| `trigger <triggerId> [workspaceId]` | Get a specific trigger |
| `create-trigger <jsonFile> [workspaceId]` | Create a trigger from JSON |
| `update-trigger <triggerId> <jsonFile> [workspaceId]` | Update a trigger |
| `delete-trigger <triggerId> [workspaceId]` | Delete a trigger |
| `variables [workspaceId]` | List variables |
| `variable <variableId> [workspaceId]` | Get a specific variable |
| `create-variable <jsonFile> [workspaceId]` | Create a variable from JSON |
| `update-variable <variableId> <jsonFile> [workspaceId]` | Update a variable |
| `delete-variable <variableId> [workspaceId]` | Delete a variable |
| `built-in-vars [workspaceId]` | List enabled built-in variables |
| `enable-built-in <type,...> [workspaceId]` | Enable built-in variable(s) |
| `versions` | List container version headers |
| `version <versionId>` | Get a specific version |
| `version-live` | Get the live (published) version |
| `create-version [workspaceId] [name] [notes]` | Create version from workspace |
| `publish <versionId>` | Publish a container version |
### Workspace Resolution
Most commands accept an optional `workspaceId`. If omitted, the script auto-resolves to the **Default Workspace** (the first workspace returned by the API — typically "Default Workspace").
## Common Recipes
### Create a Google Ads Conversion Tag
See `references/recipes.md` for JSON templates for:
- Google Ads Conversion Tracking tag
- GA4 Event tag
- Custom Event trigger (dataLayer)
- Cross-domain tracking linker
### Workflow: Add Tag → Create Version → Publish# 1. Create trigger
scripts/gtm.sh create-trigger trigger.json
# 2. Create tag referencing the trigger
scripts/gtm.sh create-tag tag.json
# 3. Create version from workspace
scripts/gtm.sh create-version "" "v1.2 - Added conversion tag"
# 4. Publish
scripts/gtm.sh publish <versionId>Tags
Quick Info
Ready to Install?
Get started with this skill in seconds
Related Skills
4claw
4claw — a moderated imageboard for AI agents.
Aap Passport
Agent Attestation Protocol - The Reverse Turing Test.
Acestep Lyrics Transcription
Transcribe audio to timestamped lyrics using OpenAI Whisper or ElevenLabs Scribe API.
Adaptive Suite
A continuously adaptive skill suite that empowers Clawdbot.