Ads & Attribution

Meta ads Telegram conversion tracking: past the click to the deposit

The Meta pixel stops at the click. Here is how a Telegram join or a broker deposit is sent back through the Conversions API with the click id attached, so the campaign optimizes on the people who converted.

Meta ads Telegram conversion tracking is the work of telling Meta what happened after someone tapped your ad and disappeared into the Telegram app. The pixel stops at the click, because nothing inside Telegram is a web page it can read. The join, the bot start and the deposit are reported back from a server through Meta's Conversions API, with the click id attached, so the campaign can optimize on the people who actually converted. Scalegram is the Telegram CRM for IBs and forex affiliates, and it does this for joins and for deposits checked against the broker's own records.

This article covers the Meta side only. TikTok and Snapchat work the same way under different names, and the Telegram tracker comparison covers the tools that do it.

Where a Meta ad to Telegram goes dark

Run a Meta campaign with a Telegram link as the destination and the reporting ends at "link clicks". Ads Manager can count the tap. It cannot count the join, because the join happens in an app Meta has no code in. Optimize for link clicks and Meta finds people who tap links. Some join. Fewer ever open a broker account. The campaign cannot tell the difference, so it keeps buying tappers.

Put a landing page between the ad and Telegram and the pixel gets one more page view, then loses the person again at the "Open in Telegram" button.

What Meta's Conversions API is for

Meta describes the Conversions API as "designed to create a connection between an advertiser's marketing data" from "an advertiser's server, website platform, mobile app, or CRM to Meta systems that optimize ad targeting, decrease cost per result and measure outcomes". The same page says a direct integration "entails establishing a connection between an advertiser's server and Meta's Conversions API endpoint", and that "server events are linked to a dataset ID and are processed like events sent using the Meta Pixel".

A Telegram join lives on your side, in a bot's memory or a CRM. A deposit lives in a broker's portal. Neither is on a page the pixel can see, and Meta's answer for data like that is to post it from a server. Once it arrives it is treated like a pixel event, so a campaign can optimize for it.

What the event has to carry

Posting "someone joined" is worthless on its own. Meta has to match the event to an ad click, and it does that through the fields on its customer information parameters page: hashed email and phone, name, external id, client IP address and user agent, and the two browser values fbc and fbp. Contact information is used "for matching purposes only", and fbc, fbp, client IP and user agent are marked "Do not hash".

The field that matters most for a Telegram funnel is fbc, because it is built from the click. Meta's ClickID and the fbp and fbc parameters page explains that "ClickID is a Meta-generated parameter that is passed with the URL of an advertiser's website when a user clicks an ad on Facebook and/or Instagram", as the fbclid query string, and that fbc is formatted as version, subdomain index, creation time and then the fbclid. Meta writes: "Sharing ClickID can help you attribute more conversions and reach more people, which may drive better ad performance".

So the design problem is one sentence. Catch the fbclid at the click, keep it, and send it back with the join or the deposit hours or days later.

How a join becomes a server event

1. The click

The ad points at a landing page or at a tracked link. On a page, one line of code reads the fbclid off the URL, keeps it against that visitor and rewrites the Telegram links so the same visitor id travels into the invite. Without a page, the tracked link itself reads fbclid, gclid, ttclid and sccid and stores them with the UTM tags on the link. In Scalegram this is the Links section.

2. The join

Telegram's Bot API documents two updates for this. For chat_member, "The bot must be an administrator in the chat and must explicitly specify chat_member in the list of allowed_updates to receive these updates." For chat_join_request, "The bot must have the can_invite_users administrator right in the chat to receive these updates." That is why every tracker asks you to add a bot as an admin of the channel. Scalegram's dedicated bot sits there with those rights and matches the join to the click it came from.

3. The post to Meta

The join and the fbc built from the stored fbclid are posted to the Conversions API endpoint against your dataset. Because it goes from a server, no browser needs to be open. The person can be in the Telegram app on an iPhone with every tracker blocked and the event still arrives. Scalegram reports every subscriber this way to Meta, and to TikTok and Snapchat in the same step.

Deduplication if you also run the pixel

If a landing page fires a Lead event in the browser and your server posts the same Lead event, Meta counts two unless you tell it they are one. Its page on handling duplicate pixel and Conversions API events says "a Meta Pixel's eventID must match the Conversion API's event_id", the pixel's event must match the server's event_name, and "Events are only deduplicated if they are received within 48 hours of when we receive the first event with a given event_id."

The join never fires in a browser, so it has no pixel twin to collide with. Keep the two apart: browser events for the page, server events for Telegram and the broker.

Why the join is the wrong event for an IB

Every tool that tracks Meta ads to Telegram can send a join. For someone selling a channel, that is the sale. For an IB or a prop firm affiliate, it is the top of the funnel. The event that pays is the deposit, and the deposit is not in Telegram either. It is in the broker's IB portal or the prop firm's CRM.

This is the gap Scalegram is built around. The AI bot on your own Telegram answers the lead in the language the message arrived in, sends your broker link, and asks for the email or account number when it needs one. It then looks that email up in the broker's own records over a read-only API: whether the account exists, whether a payment completed, how much, and whether KYC passed. Every call is a GET; nothing is written into the broker's system. Because one product holds the click, the join and the verified deposit, the deposit is reported to Meta against the ad that bought the click, and the campaign can optimize on depositors instead of subscribers. Forex affiliate CRM walks the funnel from ad to deposit; how it works shows the flow blocks.

Meta pixel versus Conversions API for a Telegram funnel

EventWhere it happensPixel can see itSent howMatch key
Ad clickFacebook or InstagramYes, on landingPixel PageViewfbclid in the URL, fbp cookie
Channel join or join requestTelegram appNoConversions API from a serverfbc built from the stored fbclid
Bot start, conversationTelegram appNoConversions API from a serverfbc, hashed email once given
DepositBroker portal or prop firm CRMNoConversions API from a server, after a read-only checkfbc, hashed email

Three of the four events happen where the pixel does not run. The one it can see is the one you least want to optimize on.

Setting it up in Scalegram

In Links, create a tracked link for the campaign and tag it with utm_source, utm_medium, utm_campaign and utm_content, or drop the one line of code on your landing page. Connect the dedicated bot to the channel once. Every subscriber the link brings is then reported to Meta server side and shown in the panel by source, medium, campaign and creative. For deposits, add your broker's IB portal or prop firm CRM under Integrations with an API key, stored encrypted and never shown again. When the bot confirms a deposit against those records, the client card moves to Deposited and the event is reported against the original click.

Lite is $99 a month with one tracked link, one page and one pixel group. The full plan is $999 a month with unlimited links, pages and bots. Every feature is on both plans; only the counts change, as the pricing section lists.

One warning. A lead saying "I deposited" in the chat is a claim. Report it to Meta as a purchase and the campaign learns to find people who say they deposited. Read the broker's records and report what the records say. That is the difference between a Telegram tracker and a Telegram CRM for IBs.

Sources

Meta will optimize on whatever you send it. Send clicks and it buys clicks. Send verified deposits and it goes looking for depositors.

— The Scalegram Team

Key takeaways

  • The Meta pixel ends at the click. Joins, bot starts and deposits happen in Telegram or at the broker, and reach Meta only through the Conversions API from a server.
  • The match depends on the fbclid caught at the click and sent back as fbc with the later event, which is what a tracked link or one line of page code stores.
  • A bot must be an admin of the channel to be told about joins and join requests, per Telegram's Bot API.
  • Scalegram reports joins server side to Meta, TikTok and Snapchat, and reports deposits after checking them in the broker's own records over a read-only API.

Frequently asked questions

How do I track Meta ads conversions in Telegram?

Catch the fbclid at the click with a tracked link or a line of code on the landing page, put a bot with admin rights in the channel so it is told about joins, and post each join to Meta's Conversions API from a server with the fbc built from that fbclid. Scalegram does all of it as one product.

Can the Meta pixel track a Telegram channel join?

No. The pixel runs in a browser and the join happens inside the Telegram app. Meta's own documentation routes data from "an advertiser's server, website platform, mobile app, or CRM" through the Conversions API, and a Telegram join is that kind of data.

Which Meta event should an IB optimize a Telegram campaign on?

The deposit, verified at the broker, not the join. Scalegram checks the lead's email against the broker's IB portal or prop firm CRM over a read-only API and reports the confirmed deposit to Meta against the ad that brought the click.

Put one bot on your own Telegram

Scalegram answers every lead in the language it arrived in, checks the deposit against the broker's own records, opens the paid group and files the client. Lite starts at $99 a month.