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
| Parameter | Description | Example |
|---|
utm_source | Traffic source | google, newsletter, facebook |
utm_medium | Marketing medium | email, social, cpc |
utm_campaign | Campaign name | spring_sale, product_launch |
utm_term | Paid keywords | running+shoes |
utm_content | Ad variation | banner_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'
}
}
{
utm: {
source: 'facebook',
medium: 'social',
campaign: 'product_launch',
content: 'video_ad'
}
}
Paid Advertising
{
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
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 Type | Source | Medium |
|---|
| Email Newsletter | mailchimp | email |
| Facebook Ad | facebook | cpc |
| Instagram Post | instagram | social |
| Twitter Post | twitter | social |
| Google Ads | google | cpc |
| Blog Post | blog | referral |
| YouTube Video | youtube | video |
| Podcast | podcast | audio |
Snip automatically appends UTM parameters to your original URL, so you don’t need to include them in the originalUrl field.