UTM parameters are the tags that tell your analytics where a visitor came from: ?utm_source=newsletter&utm_campaign=spring-sale. The worry with shortening links is that the tags get stripped. They aren't — a link here forwards the full query string to the destination by default, so your tags arrive at the landing page exactly as you wrote them, and your analytics attributes the visit normally.
The three tags that matter
- utm_source — where the click came from: newsletter, instagram, podcast, menu-flyer.
- utm_medium — the kind of channel: email, social, print, referral.
- utm_campaign — the one campaign this link belongs to: spring-sale-2026.
Consistency is everything — newsletter and Newsletter are two different sources in your reports. Pick lowercase and stay there.
One link per placement, not per tag
The clean pattern: one short link per campaign, and the UTM string in the destination (or appended when you share it, since parameters ride through either way):
- The flyer link's destination: yoursite.com/sale?utm_source=flyer&utm_medium=print&utm_campaign=spring-sale
- The Instagram bio link: same target, utm_source=instagram&utm_medium=social
Your dashboard counts clicks per link, the destination analytics attribute sessions per source — and the two views reconcile because every placement has exactly one link.
Print gets attribution too
This is where the approach quietly outperforms naked URLs: a printed QR code pointing at a tagged link gives the print run the same first-class reporting as a banner ad. One link per physical placement (utm_content=poster-downtown) even tells you which wall is working.
Between the link's own click analytics and the destination's UTM-attributed sessions, you get both halves of the story: how many people clicked, and what they did once they landed.