You publish a video, drop the link in the description, the pinned comment, your newsletter, and a Reddit thread. A week later your site analytics show a traffic spike labeled direct / (none) — and you have no idea which of the four placements did the work.
That label is where attribution goes to die, and for video creators it’s the default outcome: most of the places you share links don’t pass a referrer. UTM parameters fix it in about 30 extra seconds per link. Here’s the whole system in creator terms.
The “Direct / (none)” Black Hole
Analytics tools identify traffic sources from the referrer — the page the visitor came from. The problem: huge swaths of creator traffic have no referrer to pass.
- Clicks from mail apps (your newsletter) — no referrer.
- Links opened from podcast show notes in a podcast app — no referrer.
- Discord, Slack, WhatsApp, iMessage — no referrer.
- Link-in-bio taps and many in-app browsers — mangled or missing.
- QR code scans from an end card or a booth screen — by definition, no referrer.
All of it lands in your reports as “direct,” mixed in with people who typed your URL. For an active creator, 40–60% of site traffic showing as direct is normal — which means the majority of your promotion is unmeasured. UTM parameters solve this by writing the source into the link itself, so no referrer is needed.
UTM Anatomy, in Creator Terms
A UTM link is your normal URL plus tags after a ?:
https://yoursite.com/preset-pack?utm_source=youtube&utm_medium=description&utm_campaign=color-grading-tutorial
Five parameters exist; you need three:
- utm_source — where the link lives:
youtube,newsletter,reddit,instagram,podcast. - utm_medium — what kind of placement:
description,pinned-comment,end-card,bio,shownotes. - utm_campaign — which video or push: use the video’s slug, like
color-grading-tutorialorjuly-preset-launch.
The optional two: utm_content to tell apart two links in the same placement (top of description vs. bottom), and utm_term, a paid-search leftover you can ignore.
The mental model: source answers “which platform,” medium answers “which slot on that platform,” campaign answers “which video.” If a report row can’t answer all three, your naming needs work.
Recipes: Where to Tag What
The placements that matter for a video creator, with the tags that make each one readable later:
Video descriptions. Every external link gets utm_source=youtube&utm_medium=description&utm_campaign=<video-slug>. YouTube routes external clicks through its redirect page, but the URL and its parameters arrive intact.
Pinned comments. Same source, utm_medium=pinned-comment. Now you can finally answer whether the pinned link outperforms the description link — the answer varies by channel, and you’ll only know yours by measuring.
Channel About page. utm_source=youtube&utm_medium=channel-about. Slow, steady traffic that’s otherwise invisible.
Newsletter. utm_source=newsletter&utm_medium=email&utm_campaign=<issue-or-video-slug>. If you drop an animated preview of the video into the email — a short GIF converts far better than a static thumbnail, and making a GIF from a video takes two minutes — the link under that GIF gets its own utm_content=gif-preview so you can compare it against the text link.
Podcast show notes. utm_source=podcast&utm_medium=shownotes. This traffic is always direct otherwise.
Cross-platform cutdowns. When you slice a video into Shorts, TikToks, and Reels, each platform’s bio link gets its own source: utm_source=tiktok, utm_source=instagram. A month later you’ll know which vertical platform actually sends humans to your site, not just views to your counter.
QR codes on end cards and event screens. A scanned code is the purest referrer-free traffic there is — the phone opens the URL cold. Tag the destination before generating the code: utm_source=qr&utm_medium=end-card&utm_campaign=<video-slug>, or utm_medium=event-screen for a conference loop. Bake the tagged URL into the code and every scan arrives labeled instead of vanishing into direct.
Hand-typing these invites typos, and one typo splits your data into two rows forever. Use a free UTM link builder that previews the assembled URL live — you fill the three fields, sanity-check the result, and copy. Keep a spreadsheet of the exact values you’ve used per platform, because consistency is the entire game.
Reading the Results in GA4
Where the payoff shows up:
- Open GA4 → Reports → Acquisition → Traffic acquisition.
- Switch the primary dimension to Session source / medium. Your tagged rows appear as
youtube / description,newsletter / email,podcast / shownotes. - Add Session campaign as a secondary dimension to split by video.
Give new tags 24–48 hours to accumulate before judging. For an instant sanity check, click your own tagged link and watch it register in Reports → Realtime — if the source shows up there, the plumbing works.
Sessions are only half the story. Pull the engaged sessions and conversion columns into the same view and the ranking sometimes flips: a newsletter that sends a third of the traffic but twice the buyers, a Reddit spike that bounces in eight seconds. Traffic volume tells you which placement is loud; engagement tells you which one is worth repeating next upload.
The reframe this enables: instead of “the video did well,” you get “the video sent 900 sessions — 610 from the description, 240 from the newsletter, and the pinned comment did almost nothing.” That’s a finding you can act on next upload.
Pitfalls That Ruin the Data
- Never tag internal links. A UTM on a link from your own homepage to your own shop page overwrites the visitor’s real source mid-session. Tags belong only on links that live off your site.
- Lowercase everything, forever. GA4 treats
YouTube,youtube, andYoutubeas three different sources, and your report becomes three thin rows instead of one useful one. Pick lowercase-with-hyphens and never deviate. - Consistent vocabulary beats clever vocabulary.
utm_medium=descriptionthis week andutm_medium=descnext week splits your history. The spreadsheet from earlier is the fix. - Shorten ugly links where people see them. A 120-character tagged URL is fine in a description box, hostile in a pinned comment, and impossible read aloud on a podcast. Put the tagged link behind a short link for anything human-facing; the parameters survive the redirect.
- Expect some tag pollution. When a tagged link gets copied and re-shared, the new clicks inherit the old label — a
newsletter / emailrow that was really a group chat. It’s unavoidable noise. Read your rows as strong signals, not court evidence, and the data still earns its keep. - Don’t over-engineer. Three parameters, named consistently, tell you almost everything. If you want the full parameter-by-parameter treatment, including
utm_contentstrategies and edge cases, this UTM parameters guide goes considerably deeper than a creator workflow needs on day one.
FAQ
Do UTM parameters hurt SEO?
No. Google treats them as tracking parameters, and they’re only on links pointing to your site from elsewhere — your site’s own internal linking stays untagged and canonical. The one hygiene rule: make sure your pages declare a canonical URL, so a tagged URL that gets shared around doesn’t get indexed as a duplicate.
Do UTM links survive YouTube descriptions?
Yes. YouTube passes external clicks through a redirect notice, but the destination URL keeps its query string, so your parameters arrive at your site intact. The same holds for most short-link services — the redirect preserves the tagged destination.
Why does some traffic still show as direct after I tagged everything?
Because you can only tag links you control. Someone copying your URL into a group chat, a browser autocomplete visit, or an untagged old link in a years-old description all still land as direct. The goal isn’t zero direct traffic — it’s moving your deliberate promotion out of the black hole so the remaining direct number means something.
Should I bother with utm_content?
Only when two links share the same source, medium, and campaign — two links in one description, a GIF versus a text link in one newsletter. That’s exactly what it’s for. If you’re not comparing placements within a single container, three parameters are enough, and simpler naming survives longer.


