Telegram Ads · Case study
How to promote a Telegram Mini App with Telegram Ads: data from 2,029 campaigns
One mini app flight: $9,587, 49,491 launches, $0.19 per launch. Which targeting, banners and texts worked, and what we would not repeat.
Contents · 8 sections
In short
Telegram Mini Apps have one big advantage for advertising: the whole path happens inside Telegram. The user sees an ad, taps it and is already in your app, with no store page, download or sign-up form in between.
This is a breakdown of one real flight for a gift and prize mini app, with the client’s name removed. In three weeks we ran 2,029 campaigns. Here is what the numbers showed.
The flight in numbers
The average cost per launch was $0.19. We counted a launch when the app opened with the campaign’s own startapp parameter, so every launch is tied to one campaign.
Targeting: specific places beat broad audiences
The biggest difference came from where the ad was shown.
| Targeting | Cost per launch |
|---|---|
| Specific channels | $0.175 |
| Specific bots | $0.186 |
| Audience segments (topics, interests) | $0.636 |
Cost per launch by target type
Dollars per mini app launch
The largest single source was bot catalogues: bots that list other bots and apps. They brought 20,856 launches, and 66.6% of clicks there turned into a launch. People who browse a bot catalogue are already looking for something to open.
Creatives: the banner matters more than the text
We tested texts and banner formats in every GEO.
- Within one GEO, the banner format changed the cost per launch by up to 3.3 times. The text changed it by 1.7 times.
- User-generated style banners won in the English-speaking GEOs but lost in Russia, where lifestyle photos with models did better. A format that works in one GEO does not carry over to another.
- “Jackpot” messages, a big prize amount, were the weakest in every GEO.
- Urgency, such as “last items” or “ends today”, was in the top three everywhere.
So spend most of your testing effort on banners, and test them per GEO.
Moderation: expect declines after launch
73% of the campaigns were declined at some point, often after they had already started spending. Telegram can review a running ad again.
Tracking: one campaign, one parameter
Mini apps get a start parameter from the link: t.me/yourbot/app?startapp=value. Use it.
- Give every campaign a unique startapp value. We used the campaign title, which encodes date, source, GEO and language.
- Log the value on the first open. Store it with the user, so later actions such as deposits or purchases can be traced back to the campaign.
- Never reuse a value across campaigns. If two campaigns share one, their users and revenue cannot be split, and totals get counted twice.
- Judge campaigns by what users do after the launch. On cheap user targeting a launch can come from a bot. Count engaged users, not opens.
What we would do the same way again
- Start with specific channels, bots and bot catalogues in your topic. Leave broad audience segments for later, if at all.
- Prepare several banner formats per GEO before launch. Banners decide more than texts.
- Keep a pool of texts that already passed moderation, and replace declined ads with new ones instead of editing them.
- Track every campaign separately from the first day.
Questions and answers
How much does a Telegram Mini App user cost with Telegram Ads?
In this flight a mini app launch cost $0.19 on average: $0.175 from specific channels and $0.186 from bots. Launches from audience segments cost $0.64. Your price depends on GEO, niche and how well the first screen converts.
Which targeting works best for a mini app?
Specific channels and bots close to your topic. Bot catalogues were the largest source: 20,856 launches with 66.6% of clicks turning into a launch. Broad audience segments cost three to four times more per launch.
How do I track which campaign brought a mini app user?
Give every campaign its own startapp parameter in the link, for example t.me/yourbot/app?startapp=campaign_name, and log it when the app opens. Keep parameters unique; if two campaigns share one, you cannot split the users between them.
Why are mini app ads declined after they start?
Telegram can review an ad again after it starts running. In this flight 73% of campaigns were declined at some point. A new ad with different text passes a fresh review; editing the old one usually does not.
Methodology and sources
One client flight, 26 March – 13 April 2026: a gift and prize mini app, 2,029 campaigns in one TON account (English, Turkish and Brazilian Portuguese) and five EUR accounts (Russia, Belarus, Kazakhstan, Kyrgyzstan, Armenia). Spend $9,587, 5.41 million impressions, 49,491 mini app launches counted by the app from the startapp parameter of each campaign. The client is not named.
Banners were matched to campaigns through our launch logs. “Cost per launch” is campaign spend divided by launches attributed to that campaign.


