Track campaigns with UTM parameters

UTM tags turn every click into attributable data — source, medium, campaign, content, and term. This guide covers the five UTM parameters, OpenMyLink's Channels & Campaigns system, naming conventions that hold up across a multi-quarter program, and the mistakes that quietly poison your analytics.

UTM (Urchin Tracking Module) tags are the five query-string parameters Google Analytics, Looker, Mixpanel, and pretty much every analytics product on Earth use to figure out where a visitor came from. They started as a Google Analytics convention twenty years ago and stuck. If you add them correctly, every click becomes attributable to a source, a campaign, an ad creative, even a keyword. If you add them inconsistently, your reports turn into mush.

What UTM parameters actually do

UTMs are nothing more than query-string parameters appended to a URL:

https://example.com/spring-sale?utm_source=newsletter&utm_medium=email&utm_campaign=spring-2026

Your destination site doesn't have to do anything special to read them — analytics tools pick them up automatically from the URL bar on page load. The visitor sees nothing different; the analytics platform sees structured attribution.

Why bother routing through OpenMyLink instead of just appending UTMs directly? Three reasons:

  • Short, brand-safe URL.oml.link/spring-sale is shareable; the long UTM-stuffed version is not.
  • Pre-redirect analytics. OpenMyLink captures clicks at the redirect — so even if the destination has no analytics installed, you still know how many clicks came in.
  • Edit after publishing. Print or paste the short link; change the UTMs (or the destination) any time without re-printing.

The five UTM parameters

ParameterRequired?PurposeExample value
utm_sourceYesWhere the click came fromnewsletter, twitter, partner-name
utm_mediumYesWhat kind of channelemail, cpc, social, qr
utm_campaignYesThe campaign namespring-2026, black-friday
utm_contentOptionalWhich creative/varianthero-button, banner-blue
utm_termOptionalPaid-search keywordbranded+link+shortener

Source, medium, and campaign are the load-bearing trio. Content and term are useful if you're A/B-testing creatives or running paid search.

Adding UTMs in OpenMyLink

You can attach UTMs to any short link in two ways:

  1. Per link, manually. When creating a link, expand the Advanced section and fill in UTM source, UTM medium, and UTM campaign. OpenMyLink will append them to the destination URL on every redirect.
  2. From a Channel preset. Define a Channel once (e.g. "Email newsletter — Q2") with its UTM defaults, then pick that Channel from a dropdown every time you create a link. The link inherits all the defaults, with the option to override any field.

The advantage of the second approach: every link you ship under "Email newsletter — Q2" carries identical, predictable tags. No more typos, no more utm_source=Newsletter in one link and utm_source=newsletter in the next.

Channels & Campaigns

OpenMyLink lets you tag every asset (links, QR codes, bio pages, files) with a Channel and a Campaign. The two concepts are independent and serve different jobs:

  • Channelwhere the asset lives. Email, social, paid ads, print, in-product, partners. A Channel can carry default UTM source & medium.
  • Campaignwhy the asset exists. "Spring 2026 launch", "Q2 lead-gen push", "Black Friday". A Campaign can carry a default UTM campaign value.

This split lets you ask questions like "how did the spring-2026 campaign perform across email vs paid social?" without doing any post-hoc data munging — the rollups are already in the dashboard.

Naming conventions that survive a year

The single biggest reason analytics turns into junk is inconsistent naming. utm_source=Email, utm_source=email, utm_source=EMAIL, and utm_source=newsletter are four different sources as far as GA4 is concerned. Pick a convention and police it.

  • Lowercase everything. Always. Analytics platforms treat values case-sensitively.
  • Hyphens, not spaces or underscores.spring-2026 beats spring_2026 beats spring 2026 (the last one even URL-encodes weirdly).
  • Singular nouns for source.newsletter not newsletters; partner not partners.
  • Vocabulary table. Keep a short list of approved values for each parameter and share it with everyone who creates links. OpenMyLink's Channel presets do exactly this — once the Channel is defined, the team can only pick from the dropdown.
  • Date your campaigns.spring-2026 is unambiguous in five years; spring is not.

Common mistakes that poison the data

  • Inconsistent capitalization. See above. The number-one offender.
  • Tagging internal links. Never put UTMs on links inside your own website. GA4 will treat each internal click as a new visit from "email" or wherever, and your real attribution gets overwritten on the next page load.
  • Using utm_source=facebook for paid and organic. Use utm_medium to separate them: cpc for paid, social for organic.
  • Putting the brand name in utm_source. Source is the platform, not the campaign. utm_source=meta good, utm_source=openmylink-spring-campaign very not good.
  • Forgetting utm_medium. GA4 falls back to (not set) which destroys cohort reports.

Reading the data back

OpenMyLink's per-link Statistics view already breaks down clicks by campaign, channel, and source. For the full picture, pair it with your destination analytics:

  • GA4 → Acquisition → Traffic acquisition. Group by Session campaign or Session source / medium.
  • OpenMyLink APIREST endpoints return per-link daily click counts; aggregate however you like in your warehouse.

Recipes

Email newsletter

utm_source=newsletter
utm_medium=email
utm_campaign=spring-2026
utm_content=hero-button

Paid social (Meta)

utm_source=meta
utm_medium=cpc
utm_campaign=spring-2026
utm_content=video-15s

Organic social

utm_source=twitter
utm_medium=social
utm_campaign=spring-2026
utm_content=launch-thread

QR code on print collateral

utm_source=trade-show-q2
utm_medium=qr
utm_campaign=spring-2026
utm_content=booth-banner

Set these as Channel defaults in OpenMyLink once and the team never has to type them again.

Was this article helpful?

Tell us what's working and what isn't — we read every reply.