The short answer
A pixel plus named invite links gives you two useful numbers for free: how many people tapped the Telegram button on your page, and how many joined through each campaign's link. It does not tell Meta which of the people who saw your ad joined, so campaigns cannot optimise for joins or deposits. Closing that gap means building a bot that issues a link per visitor, stores each click, receives join updates and sends Conversions API events. That is a real but bounded engineering project. Tellmetric is that project already built, with reporting and five more ad platforms on top.
Details about Telegram and Meta below come from the Telegram Bot API documentation and Meta's Conversions API documentation as checked in October 2026.
Level 1: pixel and named invite links
The pixel runs on your landing page while it is open. It can fire PageView and a custom event when someone taps the Telegram button. Once Telegram opens, the browser session that carried the pixel is gone, so the join itself never reaches it.
Telegram lets a group or channel admin create additional invite links, each with a name of up to 32 characters. Give each campaign or ad its own link and Telegram counts the joins per link. That answers "which campaign brought the most members", at no cost and with no code.
What it cannot do is report a join back to Meta as a conversion tied to the person who clicked. A link shared by thousands of people says which campaign a member came from, not which click. Without the click's identifiers, Meta has nothing reliable to match the event to, so you are left comparing join counts in Telegram with spend in Ads Manager by hand.
Level 2: a bot that reports conversions
To send joins to Meta as conversions, you need a link per visitor rather than per campaign, and something that remembers which click each link belongs to. A typical build has these parts:
- A redirect endpoint that receives the ad click, stores the fbclid, IP address, user agent and campaign parameters, and builds the fbc value. Meta documents the format as
fb.1.<time in milliseconds>.<fbclid> when no cookie exists, with the fbclid kept exactly as received.
- A bot that is an administrator of the group or channel, with the rights to create invite links. The Bot API's createChatInviteLink can set a member limit (1 to 99,999) and an expiry date, so each visitor can get a single-use link.
- Join updates. The Bot API delivers chat_member updates only when the bot is an administrator and lists chat_member explicitly in allowed_updates; the update includes the invite link used. If you use join requests, those arrive as separate chat_join_request updates.
- A Conversions API sender with a dataset id and access token. Meta accepts events up to 7 days old; if one event in a request is older, the whole request is rejected. An event_id on each event lets Meta deduplicate retries.
- A way to receive deposits from your payment platform with the click id, and to look up the Telegram member and original click for each one.
- The same again for each other ad platform you advertise on, each with its own API, identifiers and rules.
None of these parts is exotic. The ongoing work is in the details: handling bot permission changes, retrying when an API is unavailable, keeping one bad event from failing a batch, and noticing when delivery quietly stops.
Side by side
| Need | Pixel and named links | Your own bot and CAPI | Tellmetric |
| Joins per campaign | Yes, counted by Telegram per link | Yes | Yes, by campaign, ad and country on the dashboard |
| Join reported to Meta as a conversion | No | Yes, once built | Yes, as CompleteRegistration by default |
| Ads with no landing page | Join counts only | Yes, through your redirect | Yes, through a tracking link |
| Messages to a bot | No | If you build it | Yes, as Contact by default |
| Deposits tied to the original click | No | If you build it | Yes, via postback, event API or hosted form |
| TikTok, Snapchat, Reddit, Spotify, Google Ads | Each platform's own pixel, web steps only | One integration per platform | Included on Pro and Agency |
| Cost | Free | Development time, hosting and upkeep | Free up to 1,000 tracked users a month; Pro €49 a month |
Where building it yourself is the better choice
- You only need join counts per campaign. Named invite links do that well and cost nothing. If you are not yet optimising campaigns for joins, start there.
- You have unusual logic. A custom bot can do anything the Bot API allows: qualify members with questions, send different events depending on answers, or integrate deeply with your own backend.
- Everything must stay in your systems. If policy says click and member data may not pass through a third party, a self-built pipeline is the way to comply.
- You already have the team. If a developer maintains your bot anyway, adding Conversions API calls to it is a reasonable extension.
Where Tellmetric is the better choice
- No build. You add a bot token, a Meta dataset id and an access token, and create tracking links. Single-use invite links, join request approval and join matching are already in place.
- Match quality from the start. Each event carries fbc rebuilt from the click, the click's IP address and user agent, a hashed Telegram user id as external_id, and hashed first and last name from the Telegram profile when present. Later deposits inherit the same identity.
- Delivery that copes with bad data. Events are checked before sending; events older than seven days, unsupported currencies and non-browser user agents are set aside one by one so they do not fail a batch, and temporary errors are retried with backoff.
- Reporting. The dashboard shows clicks, joins, messages and deposits by campaign, ad and country, with Meta spend imported when you connect an ad account. Pro and Agency add match quality and cohort reports.
- More than Meta. On Pro and Agency, the same joins and deposits go to TikTok, Snapchat, Reddit, Spotify and Google Ads.
- Deposits from other systems. A standard postback (clickid, status, payout, currency, txid) works from payment platforms and trackers such as Keitaro, RedTrack and Voluum, and Telegram Stars payments are recorded automatically.
A sensible path
- Start with named invite links per campaign to see which campaigns bring members at all.
- Keep the pixel on your landing page if you have one; it covers the web step.
- When you want Meta to optimise for joins or deposits rather than button taps, decide between building the bot pipeline and using a tool. The Free plan needs no card, so you can compare it with your named-link counts for a few weeks.
- Whichever you choose, verify events with a test event code in Events Manager before switching the campaign's conversion goal.
Frequently asked
Can the pixel see a join if Telegram opens in a browser?
No. A join happens in the Telegram app or Telegram's own web client, not on your page, so your pixel is not loaded there.
Can I keep my named invite links and use Tellmetric?
Yes. Existing links keep working for organic traffic. A join through a link Tellmetric did not create is tied to an ad click only if the same person recently opened your bot from a Tellmetric link; otherwise it has no ad click to credit.
Is my own Telegram bot required?
Yes. Tellmetric uses a bot you create with BotFather and add as an administrator, so joins and messages arrive in your bot.
Track Telegram conversions from your Meta ads
The Free plan requires no card. Upgrade to Pro at any time.