Tellmetric
How-to

Sending Telegram conversion events to Meta CAPI

A browser pixel cannot observe activity inside Telegram. The Conversions API can report the conversion to Meta, provided the event still references the click that produced it. This guide describes how to build that payload correctly.

A limitation the Pixel cannot address

The Meta Pixel is JavaScript that runs on a web page. Telegram is a native application with no page and no script context, so measurement stops as soon as a visitor moves from your landing page into a chat. Meta records the click and nothing further. In that situation the algorithm treats the click as the conversion and optimises for people likely to click, who are rarely the people likely to deposit.

Which events to send

  • Group or channel join, mapped to CompleteRegistration so Meta can optimise for it as a standard event.
  • Message to your bot or admin, mapped to Contact. A person who writes to you is a considerably stronger signal than one who only joins.
  • Tracked offer click inside Telegram, useful as a mid-funnel custom event for reporting.
  • Deposit or purchase, sent as Purchase with value and currency. This event allows Meta to optimise for revenue.

Start with join and purchase. Add the other events once both ends of the funnel are reporting correctly.

Required payload fields

  • event_name and event_time in UTC seconds, close to the time of the action.
  • event_id, a stable identifier reused on retries so Meta can deduplicate.
  • action_source, normally website for these server-reported events.
  • user_data.fbc, reconstructed as fb.1.<timestamp>.<fbclid> from the click, plus fbp if the browser id was captured.
  • Hashed identifiers where available: em, ph and external_id (the hashed Telegram user id is well suited to this).
  • client_ip_address and client_user_agent from the original click.

Setup in five steps

  • Capture the fbclid and timestamp on the landing page, or on the redirect if the ad points directly at a tracking link.
  • Give the visitor a Telegram link that carries a unique click id: a single-use invite or a bot deep link.
  • When your bot observes the join, message or payment, resolve that click id to the stored click.
  • Build the event with the fields above and post it to /{pixel_id}/events with your dataset access token.
  • Verify delivery in Events Manager with a test_event_code before switching to live delivery.

Illustrative example

The following sequence is illustrative. A visitor clicks a Reels ad at 14:02. The tracking link records the click id and forwards the visitor to your bot with that id in the start parameter. At 14:05 the visitor joins the group through the single-use invite the bot issued. Your server looks up the click, builds a CompleteRegistration event with the reconstructed fbc, the hashed Telegram user id and the click's IP address and user agent, and posts it. Events Manager shows the event within seconds, attributed to the Reels campaign. Three days later, a postback reports a €120 deposit for the same click id, and a Purchase event with value and currency follows.

Mistakes that reduce data quality

  • Posting events without a click identifier or any hashed user field. Meta accepts them but cannot match them, so they have no effect.
  • Reusing one invite link for every campaign, which makes it impossible to assign a join to a specific click.
  • Sending a purchase without value, which limits Meta to optimising for conversion count rather than revenue.
  • Including a single malformed event in a batch. Meta rejects the whole request, not only the invalid row.
  • Sending events older than seven days. Meta rejects them.
  • Omitting event_id, so a retried request is counted as a duplicate conversion.

How Tellmetric handles this

Tellmetric stores every click with its identifiers, issues per-visitor Telegram links, records joins, messages and Stars payments through your bot, and accepts deposits through the standard postback format or the event API. A delivery worker maps internal events to Meta's standard event names, validates each row before adding it to a batch, attaches hashed email and phone when a postback supplies them, and retries transient failures with backoff. If you connect TikTok, Snapchat, Reddit, Spotify or Google Ads, the same event is delivered there as well. Delivery status and match quality are shown in the dashboard, so there is no need to read API logs.

Frequently asked questions

Do I need a Meta Pixel?

You need a dataset (formerly pixel) ID and a Conversions API token from Events Manager. The browser script is not required on any page.

Can I keep my own event names?

You can, but Meta optimises campaigns only for standard events. Tellmetric sends the standard name and keeps your internal name in custom_data.

What happens if the same person joins twice?

The join event id is derived from the link and the Telegram user, so the second join is deduplicated against the first.

How quickly do events appear?

The Tellmetric delivery worker runs every 30 seconds. Events Manager usually shows an event within a minute of the action.

Related guides

Track Telegram conversions from your Meta ads

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