The five fields
What goes where.
| Field | Required | What it means | Example value |
|---|---|---|---|
| utm_source | Required | Where the click came from. | tiktok |
| utm_medium | Required | How they got there (paid, organic, email, qr). | paid-social |
| utm_campaign | Required | Name of the push or initiative. | summer-launch-2026 |
| utm_content | Optional | Which ad / creative / button. Differentiates A/B. | video-15s-v2 |
| utm_term | Optional | Paid-search keyword. Rare outside SEM. | ringtone+maker |
Yes
- lowercase only
- hyphens for spaces · summer-launch-2026
- stable values across channels · paid-social not Paid Social
- campaign = the push, not the date
- test in incognito, look at the raw URL
No
- MixedCase · SummerLaunch
- spaces — they become %20 in logs
- emoji or punctuation in values
- per-day campaigns — use utm_content for the date
- tracking the same thing in two fields
Anatomy of a tagged URL
One link, five queryable fields.
Copy the template, swap the values for your push, keep the convention identical across channels.
urlcopy
https://oneli.nk/spfy?utm_source=tiktok&utm_medium=paid-social&utm_campaign=summer-launch-2026&utm_content=video-15s-v2
Worked examples
Five real campaigns, tagged consistently.
- TikTok ad
oneli.nk/spfy?utm_source=tiktok&utm_medium=paid-social&utm_campaign=summer-launch&utm_content=v15s-cut-a - IG story
oneli.nk/spfy?utm_source=instagram&utm_medium=organic-social&utm_campaign=summer-launch&utm_content=story-day-2 - Email blast
oneli.nk/spfy?utm_source=mailchimp&utm_medium=email&utm_campaign=summer-launch&utm_content=hero-cta - Print QR
oneli.nk/spfy?utm_source=poster&utm_medium=qr&utm_campaign=summer-launch&utm_content=tube-station - Influencer
oneli.nk/spfy?utm_source=creator&utm_medium=referral&utm_campaign=summer-launch&utm_content=mia.h