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.
npx skills add https://github.com/irinabuht12-oss/marketing-skills --skill utm-tracking-generator
Create standardized tracking parameters for consistent marketing attribution.
| 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 |
[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
utm_source=google&utm_medium=cpc&utm_campaign={campaign_name}&utm_term={keyword}&utm_content={creative}
utm_source={{site_source_name}}&utm_medium=paid-social&utm_campaign={{campaign.name}}&utm_content={{adset.name}}&utm_term={{ad.name}}
utm_source=linkedin&utm_medium=paid-social&utm_campaign=[campaign_name]&utm_content=[ad_name]
utm_source=klaviyo&utm_medium=email&utm_campaign=[flow_name]-[email_position]&utm_content=[variant]
| 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 |
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
## 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]
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
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:
https://connector.get-ryze.ai/mcpclaude mcp add ryze --transport http https://connector.get-ryze.ai/mcpSetup guide: https://www.get-ryze.ai/how-to-connect-claude-to-google-meta-ads-mcp
Take irinabuht12-oss/utm-tracking-generator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.