utm-attribution-strategy
Tracks which ads and campaigns bring customers so you know where to spend money.
Installation
Paste this into Claude Code, Cursor, or any agent that can run commands.
SKILL.mdShow the author's original SKILL.md
--- name: utm-attribution-strategy description: UTM parameter strategy, campaign tracking, and marketing attribution modeling. Build consistent UTM taxonomies, configure attribution models, measure cross-channel performance, and connect marketing spend to revenue. Use when the user asks about UTM parameters, campaign tracking, attribution models, marketing measurement, or cross-channel analytics. license: MIT origin: custom author: Rebecca Rae Barton author_url: https://github.com/thatrebeccarae metadata: version: 1.0.0 category: analytics domain: attribution updated: 2026-03-18 tested: 2026-03-18 tested_with: "Claude Code v2.1" --- # UTM & Attribution Strategy Campaign tracking with UTM parameters and marketing attribution modeling. ## Install ```bash git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/utm-attribution-strategy ~/.claude/skills/ ``` ## UTM Parameter Reference ### The 5 Standard UTM Parameters | Parameter | Purpose | Required | Example | |-----------|---------|----------|---------| | `utm_source` | Where traffic comes from | Yes | google, linkedin, newsletter | | `utm_medium` | Marketing medium/channel | Yes | cpc, email, social, referral | | `utm_campaign` | Campaign name | Yes | spring-sale, product-launch-q1 | | `utm_term` | Paid keyword (search ads) | No | email+marketing+software | | `utm_content` | Differentiate ad variants | No | cta-button, sidebar-banner, video-ad | ### UTM Naming Convention **Rules:** - All lowercase (Google Analytics is case-sensitive) - Use hyphens (`-`) as word separators, never spaces or underscores - Be descriptive but concise - Use consistent vocabulary across all teams - Document your taxonomy and enforce it ### Recommended Taxonomy #### utm_source | Value | When to Use | |-------|------------| | `google` | Google Ads, Google organic | | `facebook` | Meta/Facebook ads and organic | | `instagram` | Instagram ads and organic | | `linkedin` | LinkedIn ads and organic | | `tiktok` | TikTok ads | | `twitter` | Twitter/X | | `youtube` | YouTube ads and organic | | `bing` | Microsoft/Bing ads | | `newsletter` | Your email newsletter | | `email` | Transactional or one-off emails | | `partner-[name]` | Partner/affiliate traffic | | `podcast-[name]` | Podcast mentions | #### utm_medium | Value | When to Use | |-------|------------| | `cpc` | Paid search (cost per click) | | `paid-social` | Paid social media | | `social` | Organic social media | | `email` | Email marketing | | `referral` | Partner/affiliate referrals | | `display` | Display/banner ads | | `video` | Video ads (pre-roll, in-stream) | | `retargeting` | Retargeting/remarketing | | `influencer` | Influencer partnerships | | `organic` | Organic search (usually auto-tagged) | | `direct` | Direct traffic (usually auto-tagged) | #### utm_campaign **Pattern:** `[initiative]-[audience]-[date]` Examples: - `spring-sale-2026` - `product-launch-enterprise-q1` - `webinar-seo-masterclass-mar2026` - `blog-weekly-digest-w12` - `retarget-cart-abandoners-mar` #### utm_content **Pattern:** `[format]-[variant]-[placement]` Examples: - `video-testimonial-feed` - `carousel-product-stories` - `cta-start-trial-hero` - `banner-logo-sidebar` - `text-ad-headline-v2` ## UTM Builder ### URL Structure ``` https://example.com/landing-page?utm_source=linkedin&utm_medium=paid-social&utm_campaign=product-launch-q1&utm_content=video-demo-feed ``` ### Common UTM Templates | Channel | Full UTM String | |---------|----------------| | Google Search Ad | `?utm_source=google&utm_medium=cpc&utm_campaign=[campaign]&utm_term=[keyword]&utm_content=[ad-group]` | | Facebook Ad | `?utm_source=facebook&utm_medium=paid-social&utm_campaign=[campaign]&utm_content=[ad-name]` | | LinkedIn Ad | `?utm_source=linkedin&utm_medium=paid-social&utm_campaign=[campaign]&utm_content=[creative-type]` | | Email Newsletter | `?utm_source=newsletter&utm_medium=email&utm_campaign=[newsletter-name]-[date]&utm_content=[link-position]` | | Organic LinkedIn Post | `?utm_source=linkedin&utm_medium=social&utm_campaign=[post-topic]` | | Partner Referral | `?utm_source=partner-[name]&utm_medium=referral&utm_campaign=[initiative]` | ## Attribution Models ### Model Comparison | Model | How It Works | Best For | Limitation | |-------|-------------|----------|-----------| | **Last Click** | 100% credit to last touchpoint | Short sales cycles, direct response | Ignores awareness/consideration | | **First Click** | 100% credit to first touchpoint | Brand awareness measurement | Ignores conversion-driving touches | | **Linear** | Equal credit to all touchpoints | Simple multi-touch view | Over-credits low-impact touches | | **Time Decay** | More credit to recent touches | Long sales cycles with clear momentum | Under-values early awareness | | **Position-Based** | 40% first, 40% last, 20% middle | Balanced view of full funnel | Arbitrary weight distribution | | **Data-Driven** | ML-based credit allocation | Large datasets (1000+ conversions) | Black box, requires volume | ### GA4 Attribution GA4 uses data-driven attribution by default. Key settings: - **Reporting attribution model**: Set in Admin > Attribution Settings - **Lookback window**: 30 days (click) / 7 days (view) default - **Conversion paths**: Analyze in Advertising > Attribution > Conversion Paths ### Choosing a Model ``` Sales cycle < 7 days → Last Click or Data-Driven Sales cycle 7-30 days → Position-Based or Data-Driven Sales cycle > 30 days → Time Decay or Data-Driven Brand awareness focus → First Click Performance marketing focus → Last Click Balanced view needed → Position-Based 1000+ monthly conversions → Data-Driven (always) ``` ## UTM Audit Checklist - [ ] All paid campaigns have UTM parameters - [ ] Naming convention documented and shared with team - [ ] No mixed case (utm_source=Google vs google) - [ ] No spaces in parameter values (use hyphens) - [ ] utm_medium values align with GA4 default channel groupings - [ ] Internal links do NOT have UTM parameters (breaks attribution) - [ ] UTM parameters are on the landing page URL, not post-redirect - [ ] No PII in UTM parameters (names, emails, account IDs) - [ ] Short URLs / link shorteners preserve UTM parameters - [ ] Redirects preserve UTM parameters (302s can strip them) ## Common Mistakes 1. **UTMs on internal links** — breaks session attribution, inflates source counts 2. **Inconsistent naming** — `Facebook` vs `facebook` vs `fb` creates 3 separate sources 3. **Missing utm_medium** — traffic falls into "(other)" channel grouping 4. **Non-standard utm_medium values** — use GA4 recognized values for proper channel grouping 5. **UTMs on organic search results** — Google auto-tags organic; adding UTMs creates duplicate sources 6. **PII in UTM parameters** — email addresses or user IDs in URLs violate privacy policies 7. **Forgetting post-click tracking** — UTMs track the click, not what happens after ## Integration with Other Skills - **google-analytics** — UTM data flows into GA4 for analysis - **google-ads** — Google auto-tags with gclid; UTMs are supplementary - **facebook-ads** — Meta auto-tags with fbclid; UTMs needed for GA4 attribution - **linkedin-ads** — LinkedIn requires manual UTM configuration - **tiktok-ads** — TikTok requires manual UTM configuration
Ships with 3 supporting files:
- EXAMPLES.md
- LICENSE
- REFERENCE.md
Mirrored from the author's public source. Install counts from the open skills registry.