mcpbeat Sign in

Utm Tracking Generator Agent Skill

Generate consistent UTM parameters, GA4 event naming, and conversion tracking specs following taxonomy best practices. Use when describing campaign structure, requesting UTM links, needing GA4 event names, or wanting to standardize tracking nomenclature across marketing channels. Platform: Google and Meta.

2k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
1221
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/irinabuht12-oss/marketing-skills --skill utm-tracking-generator

The instruction itself

16 sections, as written by the author

UTM & Tracking Generator

Create standardized tracking parameters for consistent marketing attribution.

Process

  • Understand campaign context - Channels, goals, audience, offers
  • Apply naming taxonomy - Consistent, lowercase, documented
  • Generate UTM strings - Complete parameter sets
  • Create GA4 event specs - Compliant naming
  • Provide implementation guidance - Platform-specific instructions

UTM Parameter Taxonomy

| Parameter | Purpose | Example Values |

|-----------|---------|----------------|

| utm_source | Traffic source platform | google, facebook, linkedin, newsletter |

| utm_medium | Marketing channel type | cpc, paid-social, email, display, organic |

| utm_campaign | Campaign identifier | spring_sale-us-2024-prospecting |

| utm_term | Paid keywords (optional) | running_shoes, [brand_name] |

| utm_content | Content variant (optional) | hero_cta, sidebar_banner, email_v2 |

Naming Convention Rules

  • Always lowercase - UTMs are case-sensitive (google ≠ Google)
  • No spaces - Use hyphens (-) or underscores (_)
  • Consistent separators - Pick one style for organization
  • Descriptive but concise - Balance clarity with length
  • Document everything - Maintain shared naming guide

Campaign Naming Structure

[product/goal]-[geography]-[date]-[audience]-[offer]

Examples:
- shoes-us-q1_2024-running_enthusiasts-20off
- saas-global-jan2024-smb_trial-free_demo
- ebook-uk-2024_q2-marketers-lead_magnet

Platform-Specific Templates

utm_source=google&utm_medium=cpc&utm_campaign={campaign_name}&utm_term={keyword}&utm_content={creative}

Meta Ads (Dynamic Parameters)

utm_source={{site_source_name}}&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{adset.name}}&utm_term={{ad.name}}

LinkedIn Ads

utm_source=linkedin&utm_medium=paid-social&utm_campaign=[campaign_name]&utm_content=[ad_name]

Email Marketing

utm_source=klaviyo&utm_medium=email&utm_campaign=[flow_name]-[email_position]&utm_content=[variant]

GA4 Event Naming Rules

| Rule | Requirement | Example |

|------|-------------|---------|

| Start with letter | No numbers or symbols first | ✅ page_view ❌ 1st_click |

| Allowed characters | Letters, numbers, underscores only | ✅ add_to_cart ❌ add-to-cart |

| Max length | 40 characters | Keep concise |

| No reserved prefixes | Avoid ga_, google_, firebase_ | Use custom prefix |

| Case | Use snake_case | form_submit, button_click |

Standard Event Names (Use These)

page_view
scroll_depth
form_submit
button_click
video_play
video_complete
file_download
outbound_click
add_to_cart
begin_checkout
purchase
sign_up
login
search

Output Format

## Tracking Specification

### Campaign Overview
- **Campaign Name**: [Name]
- **Channels**: [List]
- **Goal**: [Conversion objective]

### UTM Parameters

#### [Channel 1]
| Parameter | Value |
|-----------|-------|
| utm_source | |
| utm_medium | |
| utm_campaign | |
| utm_term | |
| utm_content | |

**Full URL**: `https://example.com?utm_source=...`

#### [Channel 2]
...

### GA4 Event Specifications

| Event | Trigger | Parameters |
|-------|---------|------------|
| [event_name] | [When fired] | [Key params] |

### Implementation Notes
- [Platform-specific guidance]
- [Testing recommendations]

### Naming Convention Reference
- Separator: [hyphen/underscore]
- Date format: [YYYY_QN or MMYYYY]
- Geography codes: [us, uk, global]

Example

Input: "I need UTM tracking for a spring sale campaign running on Google Ads, Facebook, and email for US customers, promoting 20% off shoes."

Output:

## Tracking Specification

### Campaign Overview
- **Campaign Name**: shoes-us-spring2024-allcust-20off
- **Channels**: Google Ads, Meta Ads, Email
- **Goal**: Purchase conversions

### UTM Parameters

#### Google Ads
| Parameter | Value |
|-----------|-------|
| utm_source | google |
| utm_medium | cpc |
| utm_campaign | shoes-us-spring2024-allcust-20off |
| utm_term | {keyword} |
| utm_content | {creative} |

**Full URL**: 
`https://yoursite.com/shoes?utm_source=google&utm_medium=cpc&utm_campaign=shoes-us-spring2024-allcust-20off&utm_term={keyword}&utm_content={creative}`

#### Meta Ads
| Parameter | Value |
|-----------|-------|
| utm_source | facebook |
| utm_medium | paid-social |
| utm_campaign | shoes-us-spring2024-allcust-20off |
| utm_content | {{adset.name}} |
| utm_term | {{ad.name}} |

**Full URL**:
`https://yoursite.com/shoes?utm_source=facebook&utm_medium=paid-social&utm_campaign=shoes-us-spring2024-allcust-20off&utm_content={{adset.name}}&utm_term={{ad.name}}`

#### Email (Klaviyo)
| Parameter | Value |
|-----------|-------|
| utm_source | klaviyo |
| utm_medium | email |
| utm_campaign | shoes-us-spring2024-allcust-20off |
| utm_content | promo_blast_1 |

**Full URL**:
`https://yoursite.com/shoes?utm_source=klaviyo&utm_medium=email&utm_campaign=shoes-us-spring2024-allcust-20off&utm_content=promo_blast_1`

### GA4 Events to Track
| Event | Trigger | Parameters |
|-------|---------|------------|
| view_promotion | Promo banner viewed | promotion_id, promotion_name |
| select_promotion | Promo clicked | promotion_id, promotion_name |
| add_to_cart | Shoe added | item_id, item_name, price, discount |
| purchase | Order completed | transaction_id, value, items[] |

### Implementation Notes
- Test all UTMs with Google's Campaign URL Builder before launch
- Verify events in GA4 DebugView
- Document naming convention in shared spreadsheet

Guidelines

  • Always use lowercase for all UTM values
  • Never include PII in tracking parameters
  • Test URLs before distributing
  • Provide platform-specific dynamic parameter syntax
  • Include testing/validation recommendations

Data access (Ryze MCP)

This skill works best with live account data. Connect the free Ryze MCP once and Claude reads your Google Ads, Meta Ads, GA4 and Search Console directly:

  • claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → https://connector.get-ryze.ai/mcp
  • Claude Code: claude mcp add ryze --transport http https://connector.get-ryze.ai/mcp
  • Cursor: Settings → MCP → add the same URL

Setup guide: https://www.get-ryze.ai/how-to-connect-claude-to-google-meta-ads-mcp

How to use it

Copy the folder

Take irinabuht12-oss/utm-tracking-generator from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.