Tellmetric
Comparison

Tellmetric vs doing it yourself: pixel and invite links

Before paying for a tool, most advertisers try the free route: a Meta pixel on the landing page and a separate invite link per campaign. This page explains how far that gets you, what a complete do-it-yourself setup involves, and when building it yourself is the right call.

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

NeedPixel and named linksYour own bot and CAPITellmetric
Joins per campaignYes, counted by Telegram per linkYesYes, by campaign, ad and country on the dashboard
Join reported to Meta as a conversionNoYes, once builtYes, as CompleteRegistration by default
Ads with no landing pageJoin counts onlyYes, through your redirectYes, through a tracking link
Messages to a botNoIf you build itYes, as Contact by default
Deposits tied to the original clickNoIf you build itYes, via postback, event API or hosted form
TikTok, Snapchat, Reddit, Spotify, Google AdsEach platform's own pixel, web steps onlyOne integration per platformIncluded on Pro and Agency
CostFreeDevelopment time, hosting and upkeepFree 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

  1. Start with named invite links per campaign to see which campaigns bring members at all.
  2. Keep the pixel on your landing page if you have one; it covers the web step.
  3. 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.
  4. 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.

Related guides

Track Telegram conversions from your Meta ads

The Free plan requires no card. Upgrade to Pro at any time.