Skip to main content

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 - Instagram
  • google - Google Search/Ads
  • newsletter - Email newsletter
  • facebook - Facebook

Usage:

{
"utmParameters": {
"utm_source": "instagram"
}
}

2. utm_medium (Required)

What: Identifies the marketing medium (type of traffic).

Common Values:

  • social - Social media
  • email - Email marketing
  • cpc - Cost-per-click (paid ads)
  • organic - Organic search
  • referral - Referral traffic
  • display - Display advertising
  • affiliate - 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 campaign
  • product-launch - Product launch
  • black-friday - Black Friday promotion
  • back-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 bid
  • running+shoes - Product keyword
  • best+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-ad vs text-ad
  • header-link vs footer-link
  • red-button vs blue-button
  • video-1 vs video-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

Platformutm_sourceutm_medium
Instagraminstagramsocial
Facebookfacebooksocial or cpc
Twittertwittersocial
TikToktiktoksocial
LinkedInlinkedinsocial or cpc
YouTubeyoutubevideo or cpc
Google Adsgooglecpc
Google Organicgoogleorganic
Email Newsletternewsletteremail
Mailchimpmailchimpemail
SMS Campaignsmssms
QR Codeqr-codeoffline
Referralreferralreferral

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"
}

Via Dashboard

When creating a link:

  1. Fill in basic link details
  2. Scroll to "UTM Parameters" section
  3. Fill in fields:
    • Source: instagram
    • Medium: social
    • Campaign: spring-sale-2024
    • Content: story-1
  4. 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

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

View UTM parameter performance:

  1. Go to AnalyticsLinks
  2. Select your link
  3. View "Campaign Performance" section
  4. 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)

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:

CampaignSourceMediumContentLink
spring-2024instagramsocialstory-1lnk.forty.com/abc123
spring-2024facebooksocialfeed-1lnk.forty.com/def456
spring-2024newsletteremailheaderlnk.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

Further Reading