How to write a Telegram ad: a four-step formula
An ad in a bot is a standalone message in a private chat. No neighbouring posts, no channel header: the first line and the button do all the work.
- Address the person by name. The
$nameplaceholder inserts the viewer’s name, so the message reads as meant for them. - One benefit in the first line. What the person gets, not who you are: “Voice messages to text in ten seconds”, not “We are a modern service”.
- One proof or detail. A number, a deadline or a condition: “12 lessons”, “same-day delivery”, “no sign-up”.
- One button with a verb. It names the action: “Open the channel”, “Get the lesson”.
Call to action examples for the button
Weak labels promise nothing: “Learn more”, “Go”, “Click here”. Strong ones say what happens after the tap: “Watch the first lesson”, “Claim the promo code”, “Open the app”.
The limits that shape your ad copy
HiViews has two placements: a welcome impression arrives right after /start, a regular one after the bot has delivered its result. The first is covered in Welcome ads in Telegram bots. The post rules are the same for both:
| Element | Limit | What it means for the copy |
|---|---|---|
| Text | Up to 6 visible lines | One idea; details go behind the button |
| Buttons | Up to 2 in a welcome post, colored if you like | One main button with a verb |
| Media | Optional photo, video or GIF | Shows the product; the text doesn’t repeat it |
| Personalization | $name and $username | Name at the start of the first line |
| Links in pay-per-click posts | A button or a hyperlinked word only | No bare URLs, no @mentions |
The billing model changes the job of the text. Per impression you pay $6 per 1,000 welcome and $3 per 1,000 regular impressions, so the post has to work even when nobody taps. Per click you pay $0.05 with free impressions, in either placement — and only strong posts are accepted. More in Pay-per-click ads in Telegram bots and the pricing breakdown.
Telegram ad post examples: 12 posts in six niches
The Telegram ad copy in each pair does a different job: the per-impression version makes the product and its benefit memorable, the per-click version gives one reason to tap now. Swap “Name” for your product.
-
Channel — pay per impression
Text: “$name, the “Name” channel posts one tech news breakdown a day, with no rewritten press releases. A two-minute read.”
Button: “Open the channel”
Why it works: name and benefit are readable in full, so the post works even without a tap.
-
Channel — pay per click
Text: “$name, three Telegram settings few people know about. All explained in the pinned post of “Name”.”
Button: “Read the walkthrough”
Why it works: the first line promises exactly what the link delivers, and the link is a button, not @your_channel.
-
Utility bot — pay per impression
Text: “$name, the “Name” bot turns voice messages into text. Forward a message and the transcript arrives in the same chat.”
Button: “Start the bot”
Why it works: two lines say what the bot does and how to use it.
-
Utility bot — pay per click
Text: “$name, tired of five-minute voice messages? Forward them to the bot and read them in ten seconds.”
Button: “Transcribe a voice message”
Why it works: a familiar situation in the question, and the button names the next action.
-
Mobile game — pay per impression
Text: “$name, “Name” is a farm game with no wait timers: plant, harvest, build. Works offline. A short gameplay video is attached.”
Button: “Download the game”
Why it works: the video shows the game; the text adds two things it can’t show.
-
Mobile game — pay per click
Text: “$name, three moves per level and no spare attempts. The first level of “Name” takes under a minute.”
Button: “Play the first level”
Why it works: a challenge up front, and trying costs only a minute.
-
Online course — pay per impression
Text: “$name, the “Name” course: spreadsheets from scratch in 12 short lessons. The first lesson is open without signing up.”
Button: “Watch the first lesson”
Why it works: the lesson count and “without signing up” are concrete details, not adjectives.
-
Online course — pay per click
Text: “$name, a pivot table in seven minutes — a free lesson with a practice file.”
Button: “Get the lesson”
Why it works: one narrow benefit instead of the whole syllabus, repeated by the button.
-
Delivery — pay per impression
Text: “$name, “Name” delivers groceries on the day you order. Delivery on your first order is free.”
Button: “Browse the catalog”
Why it works: it answers the two main delivery questions: when and how much.
-
Delivery — pay per click
Text: “$name, your first-order promo code at “Name” is valid until Sunday: 20% off the whole catalog.”
Button: “Claim the promo code”
Why it works: deadline and discount are stated outright, and the landing page shows the same code.
-
Mini app — pay per impression
Text: “$name, the “Name” mini app tracks your spending right inside Telegram — nothing to install, no separate account.”
Button: “Open the app”
Why it works: it removes the main objection — one more thing to install.
-
Mini app — pay per click
Text: “$name, where did the money go this week? Log three expenses and “Name” will draw the chart.”
Button: “Log your first expense”
Why it works: a question people want answered, and a first step small enough to take now.
The first two are a ready Telegram channel promotion post; campaign setup is covered in How to promote a Telegram channel with ads in bots.
7 common mistakes in ad copy
- Too long. Six lines is a ceiling, not a target.
- Several competing buttons. “Website”, “Channel” and “Support” are three decisions instead of one.
- No benefit in the first line. “We are happy to introduce…” wastes the most visible spot.
- Bare links. example.com or @your_channel in the text looks careless, and pay-per-click won’t accept it.
- Clickbait the landing page doesn’t deliver. If the promised lesson isn’t there, you pay for clicks from people who leave at once.
- Emoji overload. When every line has an icon, none stands out.
- No audience fit. An accounting ad in gaming bots fails whatever the copy: pick bot topics that match the product.
How to test two variants honestly
Change one thing at a time — the first line or the button — and run both variants under equal conditions.
- Same targeting. Same topics, languages, schedule and frequency — otherwise you compare audiences, not copy.
- Same budget. Example: $10 per variant on regular impressions is $10 ÷ $3 × 1,000 ≈ 3,333 impressions each.
- CTR per bot. Turn on click tracking and compare the variants inside the same bots.
- Enough data. A couple of hundred impressions prove nothing — a gap of a few clicks is noise. Wait for several thousand per variant.
Which settings help the text
- HiViews Verified. Only people with a real-looking profile see the ad. Free, but delivery is slower.
- Boost ×1.25–×2. The campaign is picked proportionally more often, at a price multiplied by the same factor. Useful when the copy has a deadline.
- Frequency. The default is unique: once per person for the whole campaign. “Once a week” and “once a day” suit reminders.
- Topics, languages and schedule. 16 bot topics, languages and hours in Moscow time.
Every setting is explained in the advertiser guide.
What moderation rejects
Every campaign is moderated, usually within a day. Posts are turned down over content or format.
- Content. No illegal casinos, scams, pornography, illegal shops or anything that breaks Telegram’s rules or the law. The full list is in the rules.
- Format. Text longer than six lines, or more than two buttons in a welcome post.
Pay-per-click is stricter. It takes posts with a catchy first line, a clear benefit and a visible button, with every link as a button or a hyperlinked word. A weak post is accepted for pay-per-impression only.
FAQ
How long should a Telegram ad post be?
On HiViews the text is limited to six visible lines. Two or three are usually enough: the benefit, one detail and a button.
How many buttons should a post have?
A welcome post can carry up to two buttons, but one button with a verb and a clear outcome usually works better.
Can I leave a link in the text itself?
With pay-per-impression you can, although a button is easier to notice. With pay-per-click every link has to be a button or a hyperlinked word: bare URLs and @mentions are not accepted.
What counts as a good CTR?
There is no single benchmark: click rate depends on the offer, the copy, the media and the bots where the ad runs. Compare your own variants against each other under the same settings.