UTM tags for Telegram: the preset is already picked — paste the address, name the campaign and the post, check and copy the link. Below is how to tag a post in your own channel, paid placements with bloggers and ads.
The link is built in your browser and sent nowhere
Telegram has no dynamic parameters — you label every value yourself, which is why agreeing on a scheme in advance matters.
Where the link isutm_sourceutm_mediumutm_content
A post in your channeltelegramsocialpost number or date: post_1123
A blogger placementtelegramsocialone per channel: blogger_smith
Telegram Adstelegramcpcthe ad: ad_a
The channel description linktelegramsocialbio
A bot buttontelegrambotthe button: btn_order
03
Frequently asked questions
Telegram apps often don't pass the referring address to the site, so the counter sees a visit without a source, as if the address was typed. Tags fix that: utm_source=telegram sits in the link itself, so analytics knows the source even with an empty referrer. That's why every Telegram link gets tagged, not just the paid ones.
One campaign for the whole placement and a separate utm_content per channel, such as blogger_smith. The report then shows which blogger brought visitors and orders, and you can compare cost per visit across channels. Batch mode builds these fastest: a row per channel, a shared address and campaign, and a CSV for your price table.
utm_source=telegram and utm_medium=cpc, like any paid ads, so they don't mix with posts tagged social. Put the campaign name in utm_campaign and the ad variant in utm_content. Telegram Ads cannot insert ad IDs for you, so variants are labelled by hand: ad_a, ad_b.
Yes: the description link works for months, and without a tag its visits disappear into direct traffic. Use utm_content=bio to tell it apart from links in posts. Non-subscribers see the description too, so the tag also shows how many people go to the site straight from the channel page.
The bot button takes an ordinary tagged link and passes it on as is. A handy scheme is utm_source=telegram, utm_medium=bot and the button name in utm_content, such as btn_order. Bot visits then stay separate from post visits, and you see which buttons people press.
The tag stays: forwarding copies the whole link, so clicks from a forwarded post are recorded with the same values. You can't tell them apart from clicks in the original channel by tags alone. If you want to see virality separately, give a post meant for sharing its own utm_content.