You pay for the click.
You earn on the lead. Between them, your blind spot.
An ad click → they hit /start on your bot → they join the channel. It fires server-side to Meta and Google: Lead on the start, Subscribe on the join — the pixel learns on the lead, not the click. For media buyers: pay per lead, not per seat.
One link. Different landings.
Tier-1 on iPhone and Android out of a cheap geo shouldn't hit the same offer. The click goes where it pays off, and that call is made on the redirect itself.
Tracking doesn't end in a dashboard. It ends in your ad account.
Click tagged → bot and channel → click routed → conversion in Meta and Google → delivery verified. Five links in one chain, not five tabs.
Every click. Tagged.
The channel join is tied to the click.
One link. Different landings.
Server-side to Meta and Google. No iOS gaps.
Postback to your CPA. One person — one conversion.
event_type=channel_join
sub1=us_ios
From bot token to your first attributed subscriber.
Connect the bot and the channel, draw the click's route, hand out the link. Three steps that actually happen.
Connect the bot and activate the channel
Open @BotFather, type /newbot, paste the token into your workspace. Then add your channel and activate it with that bot — from that moment joins are written as events.
Draw the click's route
Click Flow canvas: Traffic Source → Condition → Redirect. Publish — and live traffic already runs the graph. Deactivate puts the campaign back on its old redirect instantly.
Hand out the link and watch who arrives
Someone joins the channel — the join is tied to their click (campaign, geo, sub1-9) and fires server-side to Meta as Subscribe and to Google. You see it in the live feed, flagged as sent to CAPI.
One token from @BotFather is the whole setup.
All three steps happen inside your own workspace: connect the bot, draw the route, drop the link into a campaign. The bonus balance pays for your first subscribers, and there's nowhere to enter a card.
Sign-up is an email and a password. One click puts the campaign back on its old redirect.Built for buyers: your first launch is walked through.
A checklist on the dashboard, 16 guides and hints on the form fields. Not “read the 60-page README”.
{click_id}, {event_type}, {sub1}.- bot
- campaign
- pixel
- first click
- test conversion
One person = one charge. Forever.
$50 on your balance at signup is ≈700 leads in T1: your first campaign is on us. No card, no lock-up periods, no minimum commits.
- Charged once per unique lead - not per click
- Bonus and referral spend before your own money
- Support on Telegram and by email
- Clicks, landings, join requests and cancels — free
- Came back from retargeting — no second charge
- Top up with crypto: no cards, no KYC
Pushing volume — write to us, we'll work it out. Message the team →
Your stack counts clicks. Telegram starts after that.
Keitaro honestly covers clicks and postbacks, and we mark it so. But the path click → bot → channel → pixel it covers with nothing — you wire that by hand and it's the first thing to break.
| What you need | leadgram | Keitaro + bot-framework | CPA + hand-coding |
|---|---|---|---|
| Click tracking and tagging | ✓ | ✓ | ✓ |
| Telegram bot wired into tracking | ✓ | ✗ | ✓ your code, your server |
| Click routed by geo, device, sub1-9 | ✓ | ✓ | ✗ |
| S2S postbacks | ✓ | ✓ | ✓ |
| $50 to start and referral payouts for buyers you bring | ✓ | ✗ | ✗ |
| $0.07 / $0.04 / $0.02 per unique lead | ✓ | ✗ | ✗ |
| The channel join reached the pixel | ✓ Meta Subscribe + Google | ✗ can't see Telegram | ✗ you write it |
| The join counts only for the ones who stayed | ✓ Smart Delay | ✗ nothing to check with | ✗ nothing to check with |
| You can see whether the conversion landed | ✓ Delivery Health · reason and refire | ◐ integration-level status, then a checklist | ✗ you find out from CPA |
Keep Keitaro. We cover the stretch after the click.
Postbacks keep landing in your tracker, while the channel join reaches Meta and Google. One campaign is enough to check it: connect a bot, put the link into a single split, compare it with what your pixel reports today.
No migration needed - the bot and your tracker run side by side.Integration doesn't end at “key pasted”.
Meta and Google get conversions from our server — and you see whether each one landed. Below is an example of a wired-in setup.
Sent / Failed / Suppressed per platform, plus the skip reason: no gclid, click older than the window, held by dedupe. A failed conversion refires with a button.
The test-conversion button in Meta checks your pixel and token before you spend — a typo turns up right away, not after $500 is gone.
Got doubts — ask.
{click_id}, {event_type}, {sub1}-{sub5}, {platform}, {fbclid}, {gclid}, {gbraid}, {wbraid}. Dedupe per user is a toggle right in the table — your CPA gets the conversion once./start on the bot and joins the channel — the join is tied to that click inside a 7-day window. A click that goes from the ad straight into the channel, past the bot, isn't attributed at all: no /start, no click to tie it to. That's the limit of the mechanic, not a setting.gclid, gbraid and wbraid are picked automatically, iOS traffic lands.Connect the bot and see your first /start in the live feed this session.
After that it's $0.07 / $0.04 / $0.02 per unique lead by geo tier. Clicks and landing views aren't billed. There's nowhere to enter a card.