Skip to main content

What are UTM Parameters?

UTM (Urchin Tracking Module) parameters help you track the effectiveness of your marketing campaigns in Google Analytics and other analytics tools.

UTM Parameters

ParameterDescriptionExample
utm_sourceTraffic sourcegoogle, newsletter, facebook
utm_mediumMarketing mediumemail, social, cpc
utm_campaignCampaign namespring_sale, product_launch
utm_termPaid keywordsrunning+shoes
utm_contentAd variationbanner_a, text_link

Creating URLs with UTM Parameters

Basic Example

const response = await axios.post('https://snip.sa/api/urls', {
  originalUrl: 'https://example.com/product',
  customCode: 'spring-sale',
  utm: {
    source: 'newsletter',
    medium: 'email',
    campaign: 'spring_sale_2024'
  }
}, {
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'your_api_key_here'
  }
});

// Result: https://laghhu.link/spring-sale
// Redirects to: https://example.com/product?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale_2024

Advanced Example with All Parameters

const response = await axios.post('https://snip.sa/api/urls', {
  originalUrl: 'https://example.com/product',
  title: 'Spring Sale - Email Campaign',
  utm: {
    source: 'mailchimp',
    medium: 'email',
    campaign: 'spring_sale_2024',
    term: 'discount_shoes',
    content: 'header_banner'
  },
  tags: ['email', 'spring-2024']
}, {
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'your_api_key_here'
  }
});

Campaign Tracking Examples

Email Marketing

{
  utm: {
    source: 'mailchimp',
    medium: 'email',
    campaign: 'weekly_newsletter_jan_2024',
    content: 'cta_button'
  }
}

Social Media

{
  utm: {
    source: 'facebook',
    medium: 'social',
    campaign: 'product_launch',
    content: 'video_ad'
  }
}
{
  utm: {
    source: 'google',
    medium: 'cpc',
    campaign: 'brand_keywords',
    term: 'url+shortener',
    content: 'ad_variant_a'
  }
}

Influencer Marketing

{
  utm: {
    source: 'instagram',
    medium: 'influencer',
    campaign: 'summer_collab',
    content: 'influencer_name'
  }
}

Best Practices

  • Use lowercase for all parameters
  • Use underscores instead of spaces
  • Be consistent across campaigns
✅ Good: spring_sale_2024 ❌ Bad: Spring Sale 2024
Add tags to group related campaigns:
{
  utm: { ... },
  tags: ['email', 'q1-2024', 'product-launch']
}
Monitor campaign performance in Google Analytics:
  • Acquisition → Campaigns → All Campaigns
  • Check conversion rates by source/medium
  • Compare campaign effectiveness
Keep a spreadsheet of your UTM conventions:
  • Campaign names and dates
  • Source/medium combinations
  • Content variations

UTM Builder Helper

Create a reusable UTM builder function:
class SnipUTMBuilder {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://snip.sa/api';
  }

  async createCampaignUrl(originalUrl, campaign) {
    const response = await axios.post(`${this.baseUrl}/urls`, {
      originalUrl,
      title: campaign.title,
      customCode: campaign.code,
      utm: {
        source: campaign.source,
        medium: campaign.medium,
        campaign: campaign.name,
        term: campaign.term,
        content: campaign.content
      },
      tags: campaign.tags || []
    }, {
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': this.apiKey
      }
    });

    return response.data;
  }
}

// Usage
const builder = new SnipUTMBuilder('your_api_key');

const campaign = await builder.createCampaignUrl(
  'https://example.com/product',
  {
    title: 'Spring Sale Email',
    code: 'spring-email',
    source: 'mailchimp',
    medium: 'email',
    name: 'spring_sale_2024',
    content: 'header_cta',
    tags: ['email', 'spring']
  }
);

Analyzing UTM Data

Track your campaign performance:
// Get analytics for a campaign URL
const analytics = await axios.get(
  `https://snip.sa/api/analytics/${urlId}`,
  {
    headers: { 'X-API-Key': 'your_api_key_here' }
  }
);

console.log('Campaign Performance:');
console.log('Total Clicks:', analytics.data.data.totalClicks);
console.log('Top Countries:', analytics.data.data.topCountries);
console.log('Top Devices:', analytics.data.data.topDevices);

Common UTM Combinations

Campaign TypeSourceMedium
Email Newslettermailchimpemail
Facebook Adfacebookcpc
Instagram Postinstagramsocial
Twitter Posttwittersocial
Google Adsgooglecpc
Blog Postblogreferral
YouTube Videoyoutubevideo
Podcastpodcastaudio
Snip automatically appends UTM parameters to your original URL, so you don’t need to include them in the originalUrl field.