8 min de lectureSecteurs

Deep links Telegram : suivre les liens t.me et les liens de démarrage de bot

Comment construire des deep links Telegram mesurables : format des liens t.me, texte prérempli, paramètres de démarrage de bot, et attribution des clics avec un lien court en amont.

Ana Kowalska
Marketing solutions engineering
Routage d'un deep link Telegram : un lien court enregistre le clic, puis redirige vers un lien t.me qui ouvre une conversation ou un bot avec un paramètre de démarrage

Un deep link Telegram est une adresse web t.me qui ouvre une conversation, un canal, un groupe ou un bot précis quand on tape dessus, en portant éventuellement un paramètre que votre bot reçoit. Les formes courantes sont https://t.me/username pour ouvrir une conversation, https://t.me/username?text=Hi pour l'ouvrir avec un brouillon prérempli, et https://t.me/YourBot?start=payload pour ouvrir un bot et lui remettre un payload. Tapez sur le lien, Telegram s'ouvre au bon endroit, et pour un bot, le payload arrive côté serveur.

C'est ce dernier point qui rend Telegram différent de la plupart des canaux de messagerie. WhatsApp ne vous dit pas quelle publicité a généré un tap sur un lien wa.me. Les bots Telegram, eux, le font : le payload ?start= est transmis à votre bot quand l'utilisateur démarre, si bien que l'attribution peut être intégrée nativement au lien. Pour les liens de conversation et de canal simples, il vous faut toujours une redirection en amont pour voir le clic, de la même façon que pour n'importe quel deep link de messagerie. Cet article couvre les deux cas.

Les schémas de lien t.me

Il existe une seule famille d'adresses et quelques paramètres. Telegram les documente dans sa référence des deep links (consultée le 18/07/2026).

  • Ouvrir une conversation ou un canal : https://t.me/username. Fonctionne pour les noms d'utilisateur publics, les canaux et les groupes. C'est le lien que vous mettez dans une bio ou une signature d'email.
  • Préremplir un brouillon : https://t.me/username?text=Hello%20Acme. Le message est encodé en URL et atterrit dans la zone de brouillon. L'utilisateur tape sur envoyer, Telegram ne l'envoie pas à sa place.
  • Ouvrir un bot avec un payload : https://t.me/YourBot?start=spring-promo. Telegram ouvre le bot, affiche le bouton Start, et au tap transmet spring-promo au bot dans la commande /start.
  • Ajouter l'utilisateur à un groupe via un bot : https://t.me/YourBot?startgroup=payload. Même idée, mais orientée vers la configuration de groupe plutôt que vers une conversation privée.

Le schéma tg:// (tg://resolve?domain=username) existe mais il est fragile. Les navigateurs et les webviews intégrées bloquent ou retirent les schémas personnalisés, si bien qu'un lien tg:// imprimé échoue plus souvent qu'il ne fonctionne. Utilisez t.me, qui est une URL https normale qui se résout proprement et peut se placer derrière un lien court. La mécanique qui explique pourquoi t.me parvient à router vers l'application est celle, native à l'OS, décrite dans deep links pour applications mobiles sans SDK.

Pourquoi le paramètre start est un atout pour l'attribution

La plupart des canaux de click-to-chat sont à sens unique : le tap ouvre la conversation et ne vous apprend rien. Les bots Telegram rompent ce schéma parce que le payload ?start= est transmis au code de votre bot. Facebook Messenger fait la même chose avec son paramètre ref ; WhatsApp est celui qui reste silencieux. Telegram le plafonne à 64 caractères et n'autorise que des lettres, des chiffres, des traits d'union et des underscores, et recommande le base64url si vous devez y intégrer des données structurées, selon la documentation du deep linking pour bots.

Le payload peut donc porter un tag de campagne, un identifiant de référent, ou un identifiant d'enregistrement encodé. Quand l'utilisateur tape sur Start, votre bot le lit et sait que le clic vient, disons, de la newsletter de mai plutôt que du message épinglé du canal. Pas de pixel, pas de gymnastique de webhook, pas besoin de lire des tags dans le corps d'un message. Le signal est dans le /start que votre bot gère déjà.

Anatomie de trois deep links Telegram : un simple lien de conversation t.me, un lien t.me avec un brouillon de texte prérempli, et un lien de bot dont le payload de démarrage est transmis au bot au moment du Start

Cette limite compte. Soixante-quatre caractères suffisent pour nl-may-hero ou un court identifiant base64url, pas pour une chaîne UTM complète. Le schéma qui passe à l'échelle est un identifiant compact dans ?start=, avec les données de campagne lisibles par un humain stockées face à cet identifiant dans votre propre système.

La couche de redirection

Pour les liens de conversation et de canal, et pour unifier le suivi sur toutes les surfaces Telegram, placez un lien court devant l'URL t.me. Le client tape sur s.elido.me/tg, votre edge enregistre le clic, puis redirige vers https://t.me/YourBot?start=nl-may. Du côté du client, le flux est identique à un tap direct sur t.me.

De votre côté, trois choses changent :

  • Le clic est enregistré. La redirection déclenche un événement avec horodatage, géolocalisation, appareil et les paramètres UTM arrivés sur le lien court, si bien que le Start que votre bot consigne une seconde plus tard peut être rattaché à une campagne précise.
  • La destination est modifiable. Changez le nom d'utilisateur du bot, le canal, ou le payload ?start= sans réimprimer un QR ni modifier une publicité en ligne. Si vous déplacez une campagne d'un bot à un autre, vous changez la destination une seule fois.
  • Les données de campagne sont portables. s.elido.me/tg?utm_source=email&utm_medium=newsletter&utm_campaign=may capture les tags au niveau de la redirection même si t.me ignore les chaînes de requête qu'il ne reconnaît pas.

C'est la même couche que celle décrite dans suivre les campagnes UTM end-to-end, et c'est exactement l'approche que le guide click-to-chat WhatsApp utilise pour wa.me. Telegram vous donne simplement un second signal en plus, via le payload du bot.

Si vous voulez des liens Telegram modifiables et mesurables sans construire la redirection vous-même, les deep links d'Elido se placent devant n'importe quelle destination t.me et consignent chaque tap. Vous pouvez en configurer un sur le plan gratuit.

Une configuration pratique

Trois liens courts couvrent la plupart des flux Telegram :

  • Lien général : s.elido.me/tg vers votre bot ou canal principal, utilisé dans le pied de page du site, la bio, et la signature d'email. Il capte le trafic entrant générique.
  • Lien de campagne : un par campagne active, s.elido.me/tg-may-nl, pointant vers le même bot avec un payload ?start= spécifique à la campagne. Utilisé dans la publicité ou la newsletter concernée.
  • Lien imprimé en QR : s.elido.me/tg-shop pour les emplacements physiques, avec un payload qui nomme l'emplacement pour que votre bot accueille le scanneur en contexte.

Chaque lien correspond à un modèle UTM et à une étiquette descriptive du type surface:newsletter · channel:telegram · campaign:may. Configurez-les sur /links, et les étiquettes pilotent les filtres dans analytics. Filtrez par channel:telegram pour voir chaque tap généré par Telegram, toutes campagnes confondues.

La réserve sur le message prérempli

Le brouillon ?text= réduit réellement la friction : le client arrive dans la conversation avec un message déjà tapé et n'a plus qu'à taper sur envoyer. Mais Telegram ne l'envoie jamais automatiquement, et c'est délibéré. Un lien qui pourrait envoyer silencieusement un message en votre nom serait un vecteur de spam, donc Telegram exige le tap. Rédigez le préremplissage pour que le tap paraisse naturel, et ne construisez pas un flux qui dépend de l'envoi du message avant que l'utilisateur n'agisse.

Pour les bots, il n'y a même aucun brouillon visible. Le payload ?start= est invisible pour l'utilisateur et remis directement au bot, ce qui est plus propre pour le suivi car aucun identifiant de tracking ne traîne maladroitement dans un message que le client peut voir.

Surfaces en code QR

Une grande part du trafic click-to-chat de Telegram provient de scans, pas de taps sur le web. Quelqu'un est dans une boutique, à un événement, ou tient un flyer, et scanne un code qui ouvre votre bot ou votre canal. Le print-to-conversation est l'un des usages les plus solides du schéma lien-court-puis-t.me.

Un QR imprimé encode un lien court, pas un lien t.me brut, si bien que la redirection enregistre le scan, la destination reste modifiable, et le payload de démarrage du bot identifie l'emplacement

Deux règles gardent l'impression utile :

  • Le QR encode s.elido.me/<slug>, jamais t.me/... directement. Encoder t.me fige la destination, tue les analytics de scan, et gâche l'impression si le bot ou le canal change.
  • Chaque emplacement reçoit son propre lien court et son propre payload ?start=, si bien que le code de la vitrine, le code du flyer et le code de l'emballage sont des lignes distinctes que vous pouvez comparer. Les considérations de design comme la zone de silence, le contraste et la correction d'erreur sont les mêmes que pour tout emplacement, couvertes dans QR codes dynamiques vs statiques.

Ce qui ne fonctionne pas

Trois schémas qui semblent raisonnables et qui échouent :

Encoder le lien t.me brut dans un QR ou une publicité. Aucune donnée de clic, aucun contrôle de la destination, et un support mort le jour où le nom d'utilisateur change. Imprimez toujours le lien court.

Fourrer une chaîne UTM entière dans ?start=. La limite de 64 caractères et le jeu de caractères restreint la tronqueront ou la rejetteront. Utilisez un identifiant court et résolvez-le vers les données complètes de campagne de votre côté.

Se reposer sur tg:// pour tout ce qui est imprimé ou partagé. Les schémas personnalisés sont bloqués par les navigateurs et les webviews intégrées, si bien que le lien échoue pour une partie des utilisateurs sans aucun repli. Gardez tg:// en interne et faites passer le chemin public par t.me derrière un lien court, avec un routage intelligent qui gère tout repli par appareil, de la même façon que le font les smart links.

Telegram est le rare canal où le deep link peut porter l'attribution à lui seul. Associez le payload ?start= du bot à une redirection en amont, et vous obtenez à la fois le clic et le Start, rattachés à la campagne qui les a générés.

À lire aussi sur le blog

Questions fréquentes

Comment créer un deep link Telegram ?

Prenez l'adresse t.me de votre compte, canal, groupe ou bot et ajoutez un paramètre. Pour un bot, https://t.me/YourBot?start=payload ouvre le bot et lui envoie le payload quand l'utilisateur tape sur Start. Pour une personne ou un canal, https://t.me/username ouvre la conversation, et ajouter ?text= préremplit un brouillon de message. Encodez le message et limitez le payload de démarrage à 64 caractères en n'utilisant que des lettres, des chiffres, des traits d'union et des underscores.

Qu'est-ce que le paramètre start dans un lien Telegram ?

Le paramètre start est une courte chaîne dans un deep link de bot, écrite sous la forme ?start=payload. Quand quelqu'un ouvre https://t.me/YourBot?start=payload et tape sur Start, Telegram transmet ce payload à votre bot dans le message /start. Votre bot le lit et peut accueillir l'utilisateur, débloquer du contenu, ou enregistrer d'où vient le clic. C'est le seul canal de messagerie où l'attribution est intégrée nativement au lien plutôt qu'ajoutée après coup.

Puis-je préremplir un message Telegram ?

Oui, pour un lien de personne ou de canal. https://t.me/username?text=Hello ouvre la conversation avec Hello déjà tapé dans le brouillon. Le message n'est pas envoyé automatiquement, l'utilisateur doit taper sur envoyer, ce qui est une fonctionnalité de sécurité de Telegram, pas un bug. Les liens de bot utilisent ?start= au lieu de ?text=, et le bot reçoit le payload silencieusement plutôt que de l'afficher comme un brouillon.

Peut-on suivre les clics sur un lien t.me ?

Un lien t.me brut ne vous donne aucune donnée de clic, parce que Telegram ne vous signale pas le tap. Placez un lien court en amont : le client tape sur votre lien court, la redirection enregistre le clic avec l'heure, l'appareil et les tags de campagne, puis renvoie vers t.me. Pour les bots, le payload ?start= ajoute un second signal, côté serveur, que votre bot peut consigner quand l'utilisateur démarre réellement.

Quelle est la différence entre les liens t.me et tg:// ?

t.me est une adresse web https normale que Telegram résout et ouvre dans l'application, ce qui la rend sûre à imprimer, à partager et à placer derrière un lien court. tg:// est une URL brute de schéma d'application qui ne fonctionne que si Telegram est installé et peut être bloquée ou retirée par les navigateurs et les applications. Utilisez t.me pour tout ce qui est destiné aux clients, et traitez tg:// au mieux comme un repli interne.

Essayer Elido

Collez une URL, obtenez un lien court

Sans inscription. Lien actif 30 jours. Inscrivez-vous pour le garder pour toujours.

Gratuit, sans inscription · 2 par jour

Essayer Elido

Raccourcisseur d'URL hébergé en UE : domaines personnalisés, analyses approfondies et API ouverte. Forfait gratuit - sans carte bancaire.

Tags
telegram deep links
t.me link
telegram bot start parameter
click to chat telegram
telegram link tracking
prefilled telegram message

Lire la suite