best-practicesUpdated 2025

UTM Length Best Practices: Character Limits & Naming Guidelines

Complete guide to UTM parameter character limits, optimal lengths, and naming conventions that prevent truncation while maintaining tracking clarity.

7 min readbest-practices

GA4 truncates UTM parameters at 100 characters. No warning. No error. Just silent data loss.

The solution isn't memorizing the limit—it's building naming systems that never come close.

Here's the complete guide to UTM parameter lengths: hard limits, safe targets, and naming conventions that prevent truncation forever.

🚨 Not sure what's breaking your tracking?

Run a free 60-second audit to check all 40+ ways UTM tracking can fail.

Scan Your Campaigns Free

✓ No credit card ✓ See results instantly

GA4 Character Limits (Hard Rules)

Maximum length per parameter: 100 characters

ParameterLimitWhat Happens at 101+
utm_source100 charsTruncated
utm_medium100 charsTruncated
utm_campaign100 charsTruncated
utm_content100 charsTruncated
utm_term100 charsTruncated

Total URL length: No GA4-specific limit, but browsers limit URLs to ~2,000 characters

Don't aim for 100. Aim for 85.

ParameterHard LimitSafe TargetBuffer
utm_source1008515 chars
utm_medium1008515 chars
utm_campaign1008515 chars
utm_content1008515 chars
utm_term1008515 chars

Why 85 chars?

  • URL encoding buffer: Spaces become %20 (expands by 3x)
  • Platform additions: Some tools add prefixes/suffixes
  • Safety margin: Prevents accidental truncation

😰 Is this your only tracking issue?

This is just 1 of 40+ ways UTM tracking breaks. Most marketing teams have 8-12 critical issues they don't know about.

• 94% of sites have UTM errors

• Average: $8,400/month in wasted ad spend

• Fix time: 15 minutes with our report

✓ Connects directly to GA4 (read-only, secure)

✓ Scans 90 days of data in 2 minutes

✓ Prioritizes issues by revenue impact

✓ Shows exact sessions affected

Get Your Free Audit Report

Optimal Length Ranges by Parameter

utm_source: 5-25 characters

Too short:

Code
utm_source=fb  (cryptic, needs documentation)

Optimal:

Code
utm_source=facebook (9 chars)
utm_source=linkedin (8 chars)
utm_source=newsletter (10 chars)
utm_source=partner_techcrunch (18 chars)

Too long:

Code
utm_source=facebook_business_page_company_account (40 chars - unnecessary detail)

Guideline: Platform or publication name only. No campaign details.

utm_medium: 3-15 characters

Optimal:

Code
utm_medium=cpc (3 chars)
utm_medium=email (5 chars)
utm_medium=social (6 chars)
utm_medium=display (7 chars)
utm_medium=affiliate (9 chars)
utm_medium=paidsocial (10 chars)

Avoid:

Code
utm_medium=cost_per_click_advertising (28 chars - unnecessarily long)

Guideline: Use GA4-standard values. Already optimized for length.

utm_campaign: 20-70 characters

Too short:

Code
utm_campaign=jan (lacks context)

Optimal:

Code
utm_campaign=winter_sale_2024_jan (20 chars)
utm_campaign=product_launch_beta_signup (26 chars)
utm_campaign=webinar_pm_best_practices_2024_03 (37 chars)
utm_campaign=newsletter_weekly_digest_2024_jan_15 (40 chars)

Too long:

Code
utm_campaign=promotional_email_campaign_newsletter_winter_clearance_sale_january_2024_segment_existing_customers (104 chars - TRUNCATED!)

Guideline:

  • Include: channel type, campaign name, date
  • Exclude: redundant details, full sentences

utm_content: 10-50 characters

Used for: Creative variations, ad placements, A/B tests

Optimal:

Code
utm_content=header_cta (10 chars)
utm_content=video_30sec (11 chars)
utm_content=carousel_ad_5_products (22 chars)
utm_content=headline_variant_a (18 chars)
utm_content=audience_segment_enterprise (27 chars)

Avoid:

Code
utm_content=creative_variation_test_number_one_featuring_product_image_and_cta_button (76 chars)

utm_term: 10-40 characters

Used for: Paid search keywords, audience targeting

Optimal:

Code
utm_term=project_management_software (27 chars)
utm_term=best_crm_tools (14 chars)
utm_term=email_marketing_platform (24 chars)

Avoid:

Code
utm_term=best_project_management_software_for_remote_teams_with_collaboration_features (79 chars)

Naming Convention Templates

Template 1: Email Campaigns

Format:

Code
utm_source=newsletter
utm_medium=email
utm_campaign=`{"{"}{"{"}type{"}"}{"}"}}`_{"{"}{"{"}YYYY_MM{"}"}{"}"}}_`{"{"}{"{"}descriptor{"}"}{"}"}}`
utm_content=`{"{"}{"{"}section{"}"}{"}"}}`_`{"{"}{"{"}variant{"}"}{"}"}}`

Example:

Code
utm_campaign=promo_2024_01_winter_sale (29 chars ✅)
utm_content=header_cta_blue (16 chars ✅)

Template 2: Paid Social

Format:

Code
utm_source=`{"{"}{"{"}platform{"}"}{"}"}}`
utm_medium=cpc
utm_campaign=`{"{"}{"{"}prod{"}"}{"}"}}`_{"{"}{"{"}YYYY_MM{"}"}{"}"}}_`{"{"}{"{"}offer{"}"}{"}"}}`
utm_content=`{"{"}{"{"}creative{"}"}{"}"}}`_`{"{"}{"{"}audience{"}"}{"}"}}`

Example:

Code
utm_source=facebook (8 chars ✅)
utm_campaign=prod_launch_2024_01_early_access (36 chars ✅)
utm_content=video_carousel_lookalike (24 chars ✅)

Template 3: Content Partnerships

Format:

Code
utm_source=partner_`{"{"}{"{"}name{"}"}{"}"}}`
utm_medium=referral
utm_campaign=`{"{"}{"{"}content_type{"}"}{"}"}}`_`{"{"}{"{"}topic{"}"}{"}"}}`_{"{"}{"{"}YYYY_MM{"}"}{"}"}}

Example:

Code
utm_source=partner_techcrunch (18 chars ✅)
utm_campaign=sponsored_article_pm_2024_01 (32 chars ✅)

Template 4: Webinars

Format:

Code
utm_source=`{"{"}{"{"}platform{"}"}{"}"}}`
utm_medium=email or social or cpc
utm_campaign=webinar_`{"{"}{"{"}topic{"}"}{"}"}}`_{"{"}{"{"}YYYY_MM_DD{"}"}{"}"}}
utm_content=`{"{"}{"{"}registration_source{"}"}{"}"}}`

Example:

Code
utm_campaign=webinar_pm_best_practices_2024_03_15 (40 chars ✅)
utm_content=linkedin_organic_post (21 chars ✅)

Character Budget Allocation

For utm_campaign (total: 85 chars):

Code
Component          | Chars | Example
-------------------|-------|------------------
Channel type       | 8     | email_
Campaign type      | 6     | promo_
Year-month         | 8     | 2024_01_
Core descriptor    | 40    | winter_clearance_segment_vip_70pct
Separators (_)     | 6     | (included above)
-------------------|-------|------------------
Total              | 68    | Well under 85 ✅

URL Encoding Considerations

Characters that expand when URL-encoded:

CharacterEncodedExpansion
Space%203x
!%213x
#%233x
$%243x
%%253x
&%263x

Example of encoding expansion:

Code
Before encoding: winter sale 2024! (18 chars)
After encoding:  winter%20sale%202024%21 (27 chars)
Expansion:       +9 characters

Best practice: Avoid spaces and special characters

Code
✅ winter_sale_2024  (17 chars encoded)
❌ winter sale 2024! (27 chars encoded)

Validation Checklist

Before launching any campaign:

  • utm_source < 85 characters
  • utm_medium < 85 characters (and matches GA4 standards)
  • utm_campaign < 85 characters
  • utm_content < 85 characters (if used)
  • utm_term < 85 characters (if used)
  • No spaces (use underscores)
  • All lowercase
  • Tested in GA4 Realtime (full value appears)

Enforcement Methods

Method 1: Google Sheets Character Counter

Add indicator column:

Code
=IF(LEN(C2)>85, 
   "⚠️ TOO LONG: "&LEN(C2)&" chars", 
   "✅ OK: "&LEN(C2)&" chars"
)

Method 2: Conditional Formatting

Highlight cells over 85 characters:

Code
Format → Conditional formatting
Format cells if: Custom formula is
Formula: =LEN(C2)>85
Formatting: Red background

Method 3: Data Validation

Prevent submission if too long:

Code
Data → Data validation
Criteria: Custom formula
Formula: =AND(LEN(C2)>0, LEN(C2)<=85)
Reject input: TRUE

Method 4: JavaScript Validation

Javascript
function validateUTMLength(params) {
  const MAX_LENGTH = 85;
  const errors = [];
  
  Object.keys(params).forEach(key => {
    if (params[key].length > MAX_LENGTH) {
      errors.push(
        `${"{"}{"{"}key{"}"}{"}"}} too long: ${params[key].length} chars (max: ${"{"}{"{"}MAX_LENGTH{"}"}{"}"}})`
      );
    }
  });
  
  return errors.length === 0;
}

Migration from Long to Short Names

If you currently use long campaign names:

Phase 1: New Campaigns (Immediate)

Start using shortened format:

Code
Old format (100+ chars): 
promotional_email_newsletter_campaign_winter_clearance_sale_january_2024_segment_existing_high_value_customers

New format (68 chars): 
nl_promo_2024_01_winter_clear_seg_hv_cust

Phase 2: Document Mapping (Week 1)

Create lookup table:

Code
Short Name                          | Full Description
------------------------------------|------------------------------------------
nl_promo_2024_01_winter_clear_hv    | Newsletter Promotional, Jan 2024, Winter Clearance, High Value Customers

Phase 3: Accept Historical Data (Ongoing)

Old campaigns: Keep long names in historical data New campaigns: Use shortened format Reports: Filter by date to separate old vs new naming

✅ Fixed this issue? Great! Now check the other 39...

You just fixed one tracking issue. But are your Google Ads doubling sessions? Is Facebook attribution broken? Are internal links overwriting campaigns?

Connects to GA4 (read-only, OAuth secured)

Scans 90 days of traffic in 2 minutes

Prioritizes by revenue impact

Free forever for monthly audits

Run Complete UTM Audit (Free Forever)

Join 2,847 marketers fixing their tracking daily

FAQ

What if I absolutely need more than 100 characters?

Use utm_content for overflow:

Code
utm_campaign=product_launch_2024_q1  (27 chars)
utm_content=segment_enterprise_offer_extended_trial_90_days  (51 chars)

Total detail: 78 characters across 2 parameters

Both parameters have 100-char limits, giving you 200 total characters.

Does the limit apply to the entire URL or just each parameter?

Each parameter individually. The overall URL can be much longer (browsers support ~2,000 chars), but each UTM parameter maxes out at 100 characters.

What about Universal Analytics—did it have the same limit?

No. Universal Analytics allowed 500 characters per campaign parameter. GA4's 100-character limit is much stricter, which surprises teams migrating from UA.

Can I request Google increase the limit?

No. The 100-character limit is hard-coded in GA4's data collection. It cannot be increased via settings or support requests.

How do I handle multi-language campaigns with long names?

Use language codes:

Code
utm_campaign=winter_sale_2024_en  (24 chars)
utm_campaign=winter_sale_2024_es  (24 chars)
utm_campaign=winter_sale_2024_fr  (24 chars)

Or utm_content:

Code
utm_campaign=winter_sale_2024  (20 chars)
utm_content=lang_es  (7 chars)

What if my platform auto-generates long campaign names?

Override auto-generation:

  1. Use custom campaign name field (if available)
  2. Build URLs externally, paste complete URLs
  3. Contact platform support requesting character limit enforcement
  4. Use tracking templates instead of platform's default UTM builder
UTM

Get Your Free Audit in 60 Seconds

Connect GA4, run the scan, and see exactly where tracking is leaking budget. No credit card required.

Trusted by growth teams and agencies to keep attribution clean.