UTM Parameters
UTM parameters allow you to track the effectiveness of your marketing campaigns by tagging links with campaign information.
What are UTM Parameters?
UTM (Urchin Tracking Module) parameters are query string parameters added to URLs to track traffic sources in analytics tools.
Example:
https://example.com/product?utm_source=instagram&utm_medium=social&utm_campaign=spring-sale
When a user clicks this link, your analytics know:
- Traffic came from Instagram
- It was a social media campaign
- Part of the "spring-sale" campaign
The 5 UTM Parameters
1. utm_source (Required)
What: Identifies the traffic source (where the traffic comes from).
Examples:
instagram- Instagramgoogle- Google Search/Adsnewsletter- Email newsletterfacebook- Facebook
Usage:
{
"utmParameters": {
"utm_source": "instagram"
}
}
2. utm_medium (Required)
What: Identifies the marketing medium (type of traffic).
Common Values:
social- Social mediaemail- Email marketingcpc- Cost-per-click (paid ads)organic- Organic searchreferral- Referral trafficdisplay- Display advertisingaffiliate- Affiliate marketing
Usage:
{
"utmParameters": {
"utm_source": "instagram",
"utm_medium": "social"
}
}
3. utm_campaign (Required)
What: Identifies the specific campaign.
Examples:
spring-sale-2024- Spring sale campaignproduct-launch- Product launchblack-friday- Black Friday promotionback-to-school- Back to school campaign
Usage:
{
"utmParameters": {
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "spring-sale-2024"
}
}
4. utm_term (Optional)
What: Identifies paid search keywords.
Use For:
- Google Ads keywords
- Bing Ads keywords
- Paid search terms
Examples:
wireless+headphones- Keyword bidrunning+shoes- Product keywordbest+phone- Search term
Usage:
{
"utmParameters": {
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "product-ads",
"utm_term": "wireless+headphones"
}
}
Note: Not useful for social media or email campaigns.
5. utm_content (Optional)
What: Differentiates similar content or links within the same campaign.
Use For:
- A/B testing ad variants
- Multiple links in same email
- Different creatives
Examples:
banner-advstext-adheader-linkvsfooter-linkred-buttonvsblue-buttonvideo-1vsvideo-2
Usage:
{
"utmParameters": {
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "summer-2024",
"utm_content": "carousel-ad-1"
}
}
UTM Best Practices
1. Use Consistent Naming
✅ Good - Consistent:
utm_source=instagram
utm_source=facebook
utm_source=twitter
❌ Bad - Inconsistent:
utm_source=Instagram
utm_source=FB
utm_source=twitter.com
Rules:
- Always lowercase
- Use hyphens instead of spaces
- Be specific but concise
- Don't use special characters
2. Create a Naming Convention
Document your UTM structure:
// UTM Naming Convention
const UTM_CONVENTION = {
source: {
format: 'platform-name',
examples: ['instagram', 'facebook', 'google', 'newsletter']
},
medium: {
format: 'channel-type',
examples: ['social', 'email', 'cpc', 'organic', 'referral']
},
campaign: {
format: 'campaign-name-year',
examples: ['spring-sale-2024', 'product-launch-q1', 'black-friday-2024']
},
term: {
format: 'keyword-phrase',
examples: ['wireless+headphones', 'running+shoes']
},
content: {
format: 'variant-identifier',
examples: ['carousel-ad-1', 'video-ad-2', 'banner-top']
}
};
3. Source Examples by Platform
| Platform | utm_source | utm_medium |
|---|---|---|
| social | ||
| social or cpc | ||
| social | ||
| TikTok | tiktok | social |
| social or cpc | ||
| YouTube | youtube | video or cpc |
| Google Ads | cpc | |
| Google Organic | organic | |
| Email Newsletter | newsletter | |
| Mailchimp | mailchimp | |
| SMS Campaign | sms | sms |
| QR Code | qr-code | offline |
| Referral | referral | referral |
4. Campaign Examples
E-commerce:
{
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "spring-sale-2024",
"utm_content": "story-swipe-up"
}
SaaS Product Launch:
{
"utm_source": "producthunt",
"utm_medium": "referral",
"utm_campaign": "product-launch-v2",
"utm_content": "launch-day"
}
Content Marketing:
{
"utm_source": "blog",
"utm_medium": "content",
"utm_campaign": "seo-growth-2024",
"utm_content": "ultimate-guide-cta"
}
Paid Search:
{
"utm_source": "google",
"utm_medium": "cpc",
"utm_campaign": "brand-keywords",
"utm_term": "linkforty+alternative",
"utm_content": "text-ad-1"
}
Email Campaign:
{
"utm_source": "newsletter",
"utm_medium": "email",
"utm_campaign": "weekly-digest-23",
"utm_content": "hero-cta"
}
Adding UTM Parameters to Links
Via Dashboard
When creating a link:
- Fill in basic link details
- Scroll to "UTM Parameters" section
- Fill in fields:
- Source:
instagram - Medium:
social - Campaign:
spring-sale-2024 - Content:
story-1
- Source:
- Click "Create Link"
Result: Parameters automatically appended to all URLs (original, iOS, Android, web).
Via API
curl -X POST https://api.linkforty.com/api/links \
-H "Authorization: Bearer $LINKFORTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "template_123",
"originalUrl": "https://example.com/product/123",
"utmParameters": {
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "spring-sale-2024",
"utm_content": "carousel-ad-1"
}
}'
How It Works:
LinkForty appends UTM parameters to your destination URLs:
Original URL:
https://example.com/product/123
With UTM Parameters:
https://example.com/product/123?utm_source=instagram&utm_medium=social&utm_campaign=spring-sale-2024&utm_content=carousel-ad-1
Via Link Templates
Set default UTM parameters in templates:
curl -X POST https://api.linkforty.com/api/templates \
-H "Authorization: Bearer $LINKFORTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Instagram Campaign",
"iosUrl": "https://apps.apple.com/app/id123",
"androidUrl": "https://play.google.com/store/apps/details?id=com.app",
"utmParameters": {
"utm_medium": "social",
"utm_source": "instagram"
}
}'
Then create links from template:
curl -X POST https://api.linkforty.com/api/links \
-H "Authorization: Bearer $LINKFORTY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": "template_instagram",
"originalUrl": "https://example.com/product/123",
"utmParameters": {
"utm_campaign": "spring-sale-2024",
"utm_content": "story-1"
}
}'
Result: Inherits utm_medium=social and utm_source=instagram from template, adds campaign and content.
Tracking UTM Parameters
In Link Analytics
View UTM parameter performance:
- Go to Analytics → Links
- Select your link
- View "Campaign Performance" section
- See breakdown by:
- Source
- Medium
- Campaign
- Content
Example:
Campaign: spring-sale-2024
├─ Source: instagram (450 clicks, 78 installs)
├─ Source: facebook (320 clicks, 52 installs)
└─ Source: twitter (180 clicks, 24 installs)
In Deep Link Data
UTM parameters are available in mobile SDK:
const deepLinkData = await LinkFortySDK.getDeepLinkData();
console.log(deepLinkData);
// {
// productId: "123",
// utm_source: "instagram",
// utm_medium: "social",
// utm_campaign: "spring-sale-2024",
// utm_content: "story-1"
// }
// Track where user came from
if (deepLinkData.utm_source === 'instagram') {
showInstagramSpecialOffer();
}
Via API
curl https://api.linkforty.com/api/analytics/links/abc123 \
-H "Authorization: Bearer $LINKFORTY_API_KEY"
Response:
{
"linkId": "abc123",
"totalClicks": 950,
"utmBreakdown": {
"source": {
"instagram": 450,
"facebook": 320,
"twitter": 180
},
"medium": {
"social": 950
},
"campaign": {
"spring-sale-2024": 950
},
"content": {
"story-1": 450,
"post-1": 320,
"tweet-1": 180
}
}
}
Advanced UTM Strategies
1. Multi-Channel Campaigns
Track same campaign across multiple channels:
Instagram:
{
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "product-launch-2024",
"utm_content": "story-1"
}
Facebook:
{
"utm_source": "facebook",
"utm_medium": "social",
"utm_campaign": "product-launch-2024",
"utm_content": "feed-ad-1"
}
Email:
{
"utm_source": "newsletter",
"utm_medium": "email",
"utm_campaign": "product-launch-2024",
"utm_content": "header-cta"
}
Result: See which channel drives most conversions for same campaign.
2. A/B Testing with utm_content
Test different creatives:
Variant A:
{
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "summer-2024",
"utm_content": "video-ad-a"
}
Variant B:
{
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "summer-2024",
"utm_content": "carousel-ad-b"
}
Analysis:
Video Ad A: 500 clicks, 85 installs (17% CVR)
Carousel Ad B: 500 clicks, 120 installs (24% CVR)
→ Winner: Carousel Ad B
3. Funnel Tracking
Track user journey with different utm_content:
Top of Funnel (Awareness):
{
"utm_campaign": "brand-awareness-2024",
"utm_content": "blog-post-cta"
}
Middle of Funnel (Consideration):
{
"utm_campaign": "brand-awareness-2024",
"utm_content": "case-study-download"
}
Bottom of Funnel (Conversion):
{
"utm_campaign": "brand-awareness-2024",
"utm_content": "free-trial-cta"
}
4. Influencer Tracking
Track individual influencers:
{
"utm_source": "instagram",
"utm_medium": "influencer",
"utm_campaign": "influencer-q1-2024",
"utm_content": "influencer-johndoe"
}
Analytics:
johndoe: 1,200 clicks, 180 installs (15% conversion)
janedoe: 800 clicks, 160 installs (20% conversion)
→ janedoe has better conversion rate
5. Geographic Campaigns
Track by region:
{
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "us-launch-2024",
"utm_content": "us-west-coast"
}
{
"utm_source": "facebook",
"utm_medium": "cpc",
"utm_campaign": "us-launch-2024",
"utm_content": "us-east-coast"
}
Common Mistakes to Avoid
1. Inconsistent Capitalization
❌ Bad:
utm_source=Instagram
utm_source=instagram
utm_source=INSTAGRAM
✅ Good:
utm_source=instagram (always)
2. Using Spaces
❌ Bad:
utm_campaign=spring sale 2024
✅ Good:
utm_campaign=spring-sale-2024
3. Too Many Variations
❌ Bad:
utm_source=ig
utm_source=insta
utm_source=instagram
utm_source=instagram-stories
✅ Good:
utm_source=instagram (always)
utm_content=story (to differentiate)
4. Missing Required Parameters
❌ Bad:
{
"utm_campaign": "spring-2024"
}
✅ Good:
{
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "spring-2024"
}
5. Using Personal Information
❌ Bad:
utm_content=email-john.doe@example.com
✅ Good:
utm_content=email-variant-a
Why: UTM parameters appear in URLs (visible to users) and analytics (possibly shared).
UTM Parameter Tools
URL Builder
Use LinkForty's built-in URL builder:
function buildUTMUrl(baseUrl, utmParams) {
const url = new URL(baseUrl);
Object.entries(utmParams).forEach(([key, value]) => {
if (value) {
url.searchParams.set(key, value);
}
});
return url.toString();
}
const url = buildUTMUrl('https://example.com/product', {
utm_source: 'instagram',
utm_medium: 'social',
utm_campaign: 'spring-2024'
});
// https://example.com/product?utm_source=instagram&utm_medium=social&utm_campaign=spring-2024
Campaign URL Spreadsheet
Create a spreadsheet to track all campaigns:
| Campaign | Source | Medium | Content | Link |
|---|---|---|---|---|
| spring-2024 | social | story-1 | lnk.forty.com/abc123 | |
| spring-2024 | social | feed-1 | lnk.forty.com/def456 | |
| spring-2024 | newsletter | header | lnk.forty.com/ghi789 |
Integration with Analytics Tools
Google Analytics
UTM parameters appear automatically in:
- Acquisition → All Traffic → Source/Medium
- Acquisition → Campaigns → All Campaigns
Custom Analytics
Parse UTM parameters in your app:
const url = new URL(window.location.href);
const utmParams = {
source: url.searchParams.get('utm_source'),
medium: url.searchParams.get('utm_medium'),
campaign: url.searchParams.get('utm_campaign'),
term: url.searchParams.get('utm_term'),
content: url.searchParams.get('utm_content')
};
// Send to your analytics
analytics.track('Page View', utmParams);
Next Steps
- 📋 Creating Links - Add UTM parameters to links
- 📊 Analytics - View UTM performance
- 📝 Link Templates - Set default UTM parameters
- 🔧 API Reference - UTM parameter API