Skip to content
Tolinku
Tolinku
Sign In Start Free
Marketing · · 6 min read

UTM Parameters with Short Links: Campaign Tracking Guide

By Tolinku Staff
|
Tolinku seo app indexing dashboard screenshot for marketing blog posts

You're running campaigns across email, social media, paid ads, QR codes, and partner websites. Traffic is flowing to your site and app. But without UTM parameters, all that traffic looks the same in Google Analytics: a bunch of "direct" or "(not set)" entries with no indication of which campaign or channel drove each visit.

UTM parameters solve this by tagging your URLs with metadata that analytics tools can read. Short links make the tagged URLs usable by hiding the long query strings behind clean, shareable URLs.

Tolinku dashboard showing route configuration for deep links Tolinku route configuration with QR code generation for each deep link.

What Are UTM Parameters?

UTM (Urchin Tracking Module) parameters are query string tags appended to URLs. They were originally created by Urchin, the web analytics tool Google acquired and turned into Google Analytics. Five standard UTM parameters exist:

Parameter Purpose Required? Example
utm_source Which site/platform sent the traffic Yes newsletter, twitter, google
utm_medium The marketing medium Yes email, cpc, social, qr
utm_campaign The specific campaign name Yes summer_sale_2026
utm_term Paid search keywords No running+shoes
utm_content Differentiates similar content No hero_banner, sidebar_cta

A fully tagged URL looks like this:

https://yourstore.com/summer?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale_2026&utm_content=hero_image

That's a long, ugly URL. Nobody wants to paste that into a tweet, print it on a flyer, or dictate it over the phone. This is where short links come in.

The workflow is straightforward:

  1. Build your destination URL with UTM parameters
  2. Create a short link that redirects to the tagged URL
  3. Share the short link everywhere
  4. Analytics tools see the UTM parameters when users arrive at the destination
Short link:   go.yourapp.com/summer-email
Redirects to: https://yourstore.com/summer?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale_2026

The user sees go.yourapp.com/summer-email. Google Analytics sees utm_source=newsletter, utm_medium=email, utm_campaign=summer_sale_2026. Both parties get what they need.

An important detail: UTM parameters go on the destination URL, not on the short link itself. When you create a route in Tolinku, the destination URLs (for iOS, Android, and web fallback) should include the UTM tags:

  • Web fallback: https://yourstore.com/summer?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale_2026
  • iOS app: The UTM parameters are passed through as deep link data
  • Android app: Same, the parameters are available to your app

This way, the short link stays clean (go.yourapp.com/summer-email) while the UTM data flows through to your analytics.

Building a UTM Naming Convention

The biggest problem with UTM parameters isn't the technology. It's consistency. When five people on your marketing team each use different naming conventions, your analytics become a mess:

utm_source=Newsletter      (capitalized)
utm_source=newsletter      (lowercase)
utm_source=email_newsletter (different name entirely)
utm_source=mailchimp       (platform name instead of channel)

Google Analytics treats each of these as a separate source. Your data fragments.

Rules for Consistent UTMs

Use lowercase only: newsletter not Newsletter. Google Analytics is case-sensitive.

Use hyphens or underscores, not spaces: summer-sale or summer_sale, not summer sale (which becomes summer%20sale in URLs).

Be specific but not too granular: email is too broad. mailchimp-weekly-digest-march-5-2026 is too specific. Aim for newsletter or weekly-digest.

Document your conventions: Create a shared reference document with approved values for each parameter.

utm_source (where the traffic comes from):

  • newsletter – your email list
  • twitter – organic Twitter posts
  • facebook – organic Facebook posts
  • instagram – organic Instagram
  • google – paid Google ads
  • partner-name – specific partner or affiliate
  • qr – QR code scans
  • sms – text message campaigns

utm_medium (how the traffic arrives):

  • email – email campaigns
  • social – organic social media
  • cpc – paid clicks (cost per click)
  • display – display ads
  • print – printed materials (via QR code)
  • referral – referral program links
  • push – push notifications
  • in-app – in-app messaging

utm_campaign (which campaign):

  • Use a consistent format: {year}-{season/month}-{name} or {quarter}-{name}
  • Examples: 2026-summer-sale, q2-product-launch, 2026-03-newsletter

Email Campaigns

Create one short link per email campaign with UTMs baked into the destination:

go.yourapp.com/summer-email → yourstore.com/summer?utm_source=newsletter&utm_medium=email&utm_campaign=2026-summer-sale

For emails with multiple links (hero image, CTA button, text link), use utm_content to differentiate:

go.yourapp.com/summer-email-hero    → ...&utm_content=hero_image
go.yourapp.com/summer-email-cta     → ...&utm_content=cta_button
go.yourapp.com/summer-email-footer  → ...&utm_content=footer_link

Social Media

Different platforms, different links:

go.yourapp.com/summer-twitter   → ...&utm_source=twitter&utm_medium=social
go.yourapp.com/summer-instagram → ...&utm_source=instagram&utm_medium=social
go.yourapp.com/summer-linkedin  → ...&utm_source=linkedin&utm_medium=social

QR Codes on Print

QR codes bridge offline to digital. Tag them distinctly:

go.yourapp.com/summer-poster   → ...&utm_source=qr&utm_medium=print&utm_content=store_poster
go.yourapp.com/summer-flyer    → ...&utm_source=qr&utm_medium=print&utm_content=flyer
go.yourapp.com/summer-receipt  → ...&utm_source=qr&utm_medium=print&utm_content=receipt

This lets you compare the performance of different print placements in Google Analytics.

For paid campaigns, utm_medium=cpc (cost per click) is the standard:

go.yourapp.com/summer-google → ...&utm_source=google&utm_medium=cpc&utm_campaign=2026-summer-sale&utm_term=summer+shoes

Most ad platforms (Google Ads, Meta Ads) can auto-tag links, but using manual UTMs alongside auto-tagging gives you a consistent dataset across all channels.

Analyzing UTM Data

In Google Analytics

Navigate to Acquisition > Traffic acquisition and use the secondary dimension to break down by:

  • Source/Medium (combines utm_source and utm_medium)
  • Campaign (shows utm_campaign)
  • Content (shows utm_content)

This view tells you which channels drive the most traffic, which campaigns convert best, and which creative variations perform strongest.

In Your Deep Linking Platform

Tolinku's analytics dashboard tracks clicks per route independently. Since each short link is a separate route, you get per-link click data, geographic breakdown, and device information.

Combine Tolinku analytics (pre-click: who clicked, from where, on what device) with Google Analytics (post-click: what they did on your site) for a complete picture.

Cross-Channel Comparison

The real value of UTM tracking is comparing channels side by side:

Channel Clicks Sessions Conversions Conv. Rate CPA
Email newsletter 2,340 2,100 189 9.0% $0.53
Instagram organic 1,870 1,450 58 4.0% $0
Google CPC 5,200 4,800 384 8.0% $3.12
QR code (poster) 342 290 26 9.0% $3.85

This data drives budget allocation. In the example above, email has the best combination of conversion rate and cost per acquisition.

Common Mistakes

Putting UTMs on internal links: UTM parameters should only be used on links from external sources. Adding UTMs to links within your own site (navigation, footer links) overwrites the original traffic source and ruins your attribution data.

Inconsistent casing: Email and email are different sources in Google Analytics. Pick lowercase and stick with it.

Using UTMs on links where auto-tagging exists: Google Ads has built-in gclid auto-tagging. Don't add conflicting UTM parameters unless you've configured Google Analytics to prefer manual UTMs.

Forgetting utm_content for A/B tests: If you're testing two different email designs or ad creatives, utm_content is the only way to distinguish them in analytics. Without it, both variants look identical in your reports.

Not testing the destination URL: A URL with malformed UTM parameters (missing &, extra ?) can break the page or lose the tracking data. Always click your tagged URLs before launching a campaign.

Getting Started

  1. Document your UTM naming conventions (source, medium, and campaign format)
  2. Create a shared spreadsheet or tool where team members look up approved values
  3. Build destination URLs with UTM parameters
  4. Create branded short links that redirect to the tagged destinations
  5. Use separate short links per channel and content variant
  6. Review UTM data in Google Analytics weekly to optimize spend

For more on tracking and analytics, see QR Code Analytics: Tracking Scans and Conversions and Deep Link Analytics: Measuring What Matters.

Get deep linking tips in your inbox

One email per week. No spam.

Ready to add deep linking to your app?

Set up Universal Links, App Links, deferred deep linking, and analytics in minutes. Free to start.