Ads & Attribution

Snapchat ads to Telegram: what the ScCid and event_id have to do

Snap's pixel stops at the swipe. How the ScCid, a shared event_id and a 7 day event_time limit decide whether a Telegram join or broker deposit reaches Snapchat.

Snapchat ads Telegram tracking means telling Snapchat what happened after someone swiped up on your ad and landed in the Telegram app. Snap's pixel cannot see inside Telegram, so the join and the later deposit have to be sent back from a server through Snap's Conversions API, with the click id from the ad attached. Scalegram is the Telegram CRM for IBs and forex affiliates, and it carries the click id from the ad to the join and to the deposit checked against the broker's own records, then reports both server side to Snapchat.

This is the Snapchat half of a subject already covered for Meta and TikTok. If you are still choosing a tool, the Telegram tracker comparison comes first.

Where a Snapchat ad to Telegram goes quiet

A Snapchat campaign that sends people to a Telegram link stops reporting at the swipe. Snapchat sees the click. It does not see the join, because the join happens in another app. The deposit a few days later happens at the broker and never touches Snapchat at all.

A campaign that only hears about clicks keeps optimizing for clicks. To make it learn from the events that matter to an IB, you send those events yourself.

What Snap says the Conversions API does

Snap's Conversions API introduction says it "lets you pass web, app, and offline conversion events directly to Snap via a server-to-server integration for campaign optimization and measurement." It also says "server events behave similarly to events sent via other solutions, like Snap Pixel (SDK) or Mobile Measurement Partners (MMPs)."

A Telegram join is recorded by a bot, and a deposit is recorded in a broker's portal. Neither is a page view. A server-to-server call is the route Snap provides for events like that.

The ScCid is what ties the event to the ad

The introduction page explains the click id: "When a user clicks or swipes up on a Snapchat ad, the query parameter, &ScCid= is appended to the outgoing URL. This parameter's value is known as the Click ID." Snap says sending it improves measurement performance. In the parameters reference the field is sc_click_id, described as "the ID value stored in the landing page URL's &ScCid= query parameter."

The same reference lists the other identifiers. For an email, Snap says to "trim any additional characters (such as spaces) and convert to lowercase before hashing", and marks hashing as required. The external_id field, an identifier you choose yourself, is "hashing recommended". The hashing rule comes from Snap, not from Scalegram.

For a Telegram funnel the working rule is short: catch the ScCid at the click, keep it against that visitor, and send it back with the join or the deposit, whenever that turns out to be.

What each moment carries

MomentWhere it happensWhat can identify the ad
Ad swipeSnapchat, then a landing page or tracked linkScCid in the URL
Channel joinInside TelegramThe stored ScCid, matched to the joiner
Email or account number givenChat with the botThe same ScCid plus the address, which Snap wants hashed
DepositThe broker's own recordsThe same ScCid, sent only after the record confirms the deposit

How the join becomes a server event

1. The click

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

2. The join

Telegram's Bot API is how a bot sees joins. For chat_member updates, "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 make a bot an admin of the channel. Scalegram's dedicated bot watches who joins and matches each joiner to the click they came from.

3. The report

The stored click id goes to Snapchat from the server. No browser is involved, so an ad blocker or an iOS setting has nothing to block.

4. The deposit

The bot asks the lead for an email or account number, looks it up over a read-only API in the broker's own records, and reports the deposit to Snapchat only when the record shows it. The deposit verification article covers the lookup. Snapchat is told about a deposit the broker confirmed, not one claimed in the chat.

Timing and event names

Two details in the parameters reference matter for a slow funnel. First, event_time is "the Epoch timestamp for the conversion happening" and "cannot be more than 7 days in the past." A deposit has to be reported within a week of when it happened, so a tool that checks records once a month is too slow for this. Second, event_name takes a fixed list that includes PURCHASE, SIGN_UP, SUBSCRIBE and five custom events, CUSTOM_EVENT_1 to CUSTOM_EVENT_5. A broker deposit has no exact match in that list, so mapping it is your choice. Make it once and keep it the same across campaigns, or the numbers will not compare from one week to the next.

The action_source field is required and takes WEB, OFFLINE or MOBILE_APP. Which one fits a deposit recorded at a broker is a decision to take with Snap's docs open and your own setup in front of you.

Pixel and Conversions API together

Snap's introduction says "we recommend our web advertisers implement Conversions API alongside a Pixel integration." A Website on your own domain can carry a Snap pixel while the server reports the same conversion, which is where duplicates come from.

The deduplication page sets the rule: for Snap to recognize the same conversion arriving from more than one source, "each event needs to carry the same unique identifier." On the web that means the Pixel's client_dedup_id must match the API's event_id, and the window is 48 hours. Snap adds that the id must be unique to a single conversion event, or separate conversions collapse together in reporting. Its best practices page says to "send event_id on all events on all integrations", and that the values "must match exactly" across Snap Pixel, third-party connectors and direct API calls.

If you build the reporting yourself, pass one id from the browser to the server for each conversion. If you use a tool, ask how it handles the same conversion arriving twice.

Where Scalegram fits and where it does not

Scalegram fits when the sale happens in Telegram and the event you want Snapchat to see is a deposit: an IB, forex affiliate or prop firm affiliate running paid traffic. It links the click to the join, the join to the client card and the card to the broker's record, so the report is one chain and not three exports pasted together. It stores no messages, sends no signals and gives no trading advice.

It is the wrong tool if you want a plain join counter and have no broker to verify against. Prices are in the pricing section: Lite is $99 a month and the full plan is $999 a month. To see the chain from click to deposit, read how it works.

Sources

An ad platform only learns from what it is told. Tell it about the deposit the broker confirmed and it has something worth learning from.

— The Scalegram Team

Key takeaways

  • Snap's pixel cannot see a Telegram join, so joins and deposits go back through the Conversions API from a server.
  • The ScCid on the landing page URL has to be stored at the click and sent as sc_click_id with each later event.
  • Snap requires the same unique id on the pixel and the API for deduplication, inside a 48 hour window.
  • Snap says event_time cannot be more than 7 days in the past, so deposits need to be reported soon after they happen.

Frequently asked questions

How do I track Snapchat ads to a Telegram channel?

Send the ad to a tracked link or landing page that stores the ScCid, watch joins with a bot that is an admin of the channel, and report each join to Snap's Conversions API from a server with the stored click id. Scalegram does these steps for IBs and forex affiliates.

What is ScCid?

It is the Snap Click ID. Snap's documentation says the query parameter &ScCid= is appended to the outgoing URL when a user clicks or swipes up on a Snapchat ad, and sending its value improves measurement performance.

Can the Snap Pixel see a Telegram join?

No, because a join happens inside the Telegram app where the pixel does not run. Snap's Conversions API takes web, app and offline events from a server, which is the route for events that happen elsewhere.

Do I need both the Snap Pixel and the Conversions API?

Snap recommends web advertisers use the Conversions API alongside a pixel. If both report the same conversion, they must carry the same unique id so Snap can deduplicate them.

Can Scalegram report a broker deposit to Snapchat?

Yes. Scalegram checks the email or account number against the broker's own records over a read-only API and reports the verified deposit server side to Snapchat, Meta and TikTok.

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.