link

code Python verified Free Download devices Cross-platform

code Code Preview

Python
#!/usr/bin/env python3
"""
UTM Builder
Build UTM tracking parameters for campaign URLs
"""
from urllib.parse import urlencode, urlparse, parse_qs

def build_utm_url(base_url, source, medium, campaign,
                  term=None, content=None):
    """Build URL with UTM parameters"""
    params = {
        'utm_source': source,
        'utm_medium': medium,
        'utm_campaign': campaign
    }

    if term:
        params['utm_term'] = term
    if content:
        params['utm_content'] = content

    # Handle existing query params
    parsed = urlparse(base_url)
    existing_params = parse_qs(parsed.query)

    # Merge params
    for key, value in existing_params.items():
        if key not in params:
            params[key] = value[0]

    # Build final URL
    query = urlencode(params)
    return f"{parsed.scheme}://{parsed.netloc}{parsed.path}?{query}"

def build_batch(urls, source, medium, campaign):
    """Build UTM URLs for multiple links"""
    return [build_utm_url(url, source, medium, campaign) for url in urls]

# Presets for common sources
PRESETS = {
    'newsletter': {'source': 'newsletter', 'medium': 'email'},
    'cold_email': {'source': 'outreach', 'medium': 'email'},
    'drip': {'source': 'drip', 'medium': 'email'},
    'transactional': {'source': 'transactional', 'medium': 'email'}
}

if __name__ == '__main__':
    url = build_utm_url(
        'https://example.com/landing',
        source='newsletter',
        medium='email',
        campaign='jan2024_promo'
    )
    print(url)

info About This Tool

The UTM Builder creates properly formatted UTM tracking parameters for your email campaign links. Track email performance in Google Analytics with consistent naming.

UTM Parameters

  • utm_source - Traffic source (newsletter, outreach)
  • utm_medium - Marketing medium (email)
  • utm_campaign - Campaign name (promo_jan2024)
  • utm_term - Paid keywords (optional)
  • utm_content - A/B test variant (optional)

Key Features

  • Presets - Quick templates for common email types
  • Batch Processing - Add UTMs to multiple URLs at once
  • URL Validation - Ensures valid URL structure
  • Existing Params - Preserves existing query parameters

Requirements

  • Python 3.7+
  • No external dependencies

Best Practice: Use consistent naming conventions. lowercase_with_underscores works best for campaign names.

download Download Script

Need Full Automation?

Try Postigo for automated email campaigns with AI personalization

rocket_launch Start Free Trial