Telegram Ads CPM Bidding Strategy: How to Find the Right Price
Every Telegram Ads campaign hits the same wall. The advertiser sets a CPM bid, Telegram shows the ad on some channels and ignores it on others, and there's no published price that explains the cutoff. Bid too low: zero impressions. Bid too high: budget burns 3× faster than it should. The optimal bid is a specific number per channel, and Telegram doesn't publish it. What follows is how that number gets found — systematically, channel by channel, in under 24 hours instead of by burning budget on trial and error.
How CPM Bidding Works in Telegram Ads
Unlike Google or Meta ads, Telegram Ads doesn't use a real-time auction where multiple advertisers compete per impression. Telegram uses a threshold-based system: an ad is either shown or it isn't, based on whether the CPM bid meets the channel's hidden minimum.
Key mechanics:
- CPM = cost per 1,000 impressions. The bill is for views, not clicks or subscribers
- Each channel has a floor price. Channels with larger audiences and higher engagement have higher floors
- Floor prices are hidden. Telegram doesn't disclose the minimum CPM for a channel — the advertiser has to discover it
- No bidding war. Above the floor, a higher bid doesn't get more impressions — it just costs more
The optimal strategy isn't "bid high to win." It's "find the floor and bid just above it."
Understanding CPM Floor Prices
Every Telegram channel has an implicit CPM floor. Below it, the ad gets zero impressions. Above it, the ad enters rotation and gets shown to the channel's subscribers.
What determines the floor?
| Factor | Impact on Floor | Example |
|---|---|---|
| Channel size | Larger channels = higher floors | 50K subs: ~$8 CPM, 500K subs: ~$20+ CPM |
| Audience geography | Tier 1 countries cost more | US/EU channels: 2-3x higher than CIS |
| Channel category | Commercial niches cost more | Finance > Entertainment > Memes |
| Engagement rate | High engagement = higher demand | Active channels with 30%+ view rate |
| Advertiser demand | More advertisers = higher floors | Seasonal spikes during holidays |
Typical CPM ranges (2026)
| Audience Tier | CPM Range | Notes |
|---|---|---|
| CIS (Russia, Ukraine, Belarus) | $2 – $8 | Largest Telegram audience, lowest CPMs |
| Southeast Asia, LATAM | $5 – $15 | Growing markets, moderate competition |
| Western Europe | $10 – $30 | High purchasing power, high floors |
| US, UK, Canada | $15 – $50 | Premium audiences, highest floors |
| Mixed / global channels | $5 – $20 | Blended audience, variable performance |
These are starting points, not guarantees. The only way to know a specific channel's floor is to test it.
The Price Discovery Process
Since Telegram doesn't publish floor prices, the campaign needs a systematic way to find them. The most efficient approach is exponential search followed by binary refinement.
Phase 1: Exponential ramp-up
Start with a low CPM and increase in large steps until first impressions land:
- Start at the platform minimum (currently $2 CPM on ads.telegram.org, lower on reseller platforms)
- If zero impressions after a few hours, increase by 50% (e.g., $2 → $3 → $4.50 → $6.75 → $10 ...)
- Continue until impressions appear — that's the approximate floor
Example for a mid-size European channel:
| Step | CPM Bid | Result | Action |
|---|---|---|---|
| 1 | $5 | 0 impressions | Increase |
| 2 | $8 | 0 impressions | Increase |
| 3 | $12 | 0 impressions | Increase |
| 4 | $18 | 340 impressions | Floor found! Go to Phase 2 |
Phase 2: Binary refinement
Once the floor is known to sit between $12 and $18, narrow it down:
- Try the midpoint: $15
- If impressions → floor is between $12 and $15. Try $13.50
- If no impressions → floor is between $15 and $18. Try $16.50
- Continue until convergence to within $1 of the floor
In 3-4 steps, the exact floor price is known to within a dollar. The whole process completes in under 24 hours.
Phase 3: Maintenance probing
Floor prices aren't static. They shift as advertiser demand changes. Once the optimal CPM is set, periodic lower-bid tests reveal whether the floor has dropped:
- Every 7 days, try reducing the CPM by 10-15%
- If impressions continue, keep the lower price
- If impressions stop, revert to the previous CPM
This prevents overpaying for weeks after the floor drops.
5 Common CPM Bidding Mistakes
1. Starting too high
Many advertisers set CPM at $30-50 "just to be safe." It works — impressions arrive — but the bid may sit 3× above the floor. Floor at $12, bid at $36: $24 per 1,000 impressions wasted. On a $500/day budget, that's $400/day in overspend.
2. Giving up too quickly
A channel with zero impressions at $10 CPM isn't necessarily dead. The floor might be $15. Advertisers who test one price and move on miss viable channels. The exponential ramp-up approach prevents premature channel abandonment.
3. Using the same CPM for every channel
A 30K-subscriber niche channel and a 500K-subscriber news channel have very different floor prices. A blanket CPM of $20 overpays on small channels and gets zero impressions on expensive ones. Each channel needs its own optimized CPM.
4. Never re-testing
Floor prices change. A channel that required $20 CPM in January might accept $14 in March because advertiser demand shifted. Set-and-forget CPM means 15-30% overpayment within a few months.
5. Confusing CPM with CPA
A $30 CPM on a high-converting channel can produce subscribers at $0.50 each. A $5 CPM on a low-converting channel can produce subscribers at $3 each. The bid price is not the acquisition cost. CPA (cost per subscriber) tracked alongside CPM reveals true performance.
Budget Allocation Across Channels
Once optimal CPM is discovered for each channel, the next question is budget distribution. A practical framework:
The 70/20/10 split
| Bucket | % of Budget | Purpose |
|---|---|---|
| Proven channels | 70% | Channels with known CPM and good CPA. Scale spend here |
| Testing channels | 20% | New channels in price discovery. Finding their floor CPM |
| Probing budget | 10% | Re-testing existing channels for lower floors |
When to increase budget on a channel
- CPA is below the target (e.g., under $1/subscriber)
- Impressions are consistent (the channel reliably serves the ads)
- Subscriber quality is good (they stay, they engage)
When to reduce or stop
- CPA exceeds the limit for 3+ consecutive days
- Impressions are erratic (the channel is unreliable)
- No clicks or subscribers after significant spend ($20+ with zero conversions)
Manual vs Automated Price Discovery
The price discovery process above works, but it's tedious across 20+ channels simultaneously. The math:
| Scenario | Manual | Automated |
|---|---|---|
| Channels to test | 20 | 20 |
| Steps per channel | 6-8 (exp + binary) | 6-8 (same algorithm) |
| Check frequency | 2×/day by hand | System checks every 4 hours |
| Time to convergence | 3-4 weeks | 1-2 days |
| Human time spent | ~10 hours | ~0 hours |
| Ongoing re-testing | Usually forgotten | Automatic weekly re-tests |
The difference is execution speed. An automated system tests a new CPM on a regular cycle, converging in under a day, where manual testing at 1-2 checks per day takes weeks.
Advanced CPM Strategies
Bid just above the floor, not at it
A discovered floor of $14 doesn't mean bid $14. Bid $15-16. Floor prices fluctuate slightly day-to-day, and bidding exactly at the floor means some days impressions land and some days they don't. A 10-15% buffer ensures consistent delivery.
Use CPM to control spend velocity
Higher CPMs don't always get more impressions (above the floor, volume is roughly the same). But they do affect how fast the budget depletes. To spread a $100 budget over 7 days instead of 2, a lower CPM naturally throttles spend.
Seasonal adjustments
CPM floors tend to increase during:
- Q4 (October-December) — holiday advertising surge
- New Year period — peak demand in CIS markets
- Product launch seasons — multiple advertisers targeting the same niches
Plan for 20-40% higher floors during peak periods. A normal CPM of $15 needs budget for $18-21 during Q4.
Channel rotation
Don't run ads on the same channel indefinitely. Audiences saturate — the same subscribers see the ad repeatedly, click-through rates drop, CPA rises. Rotate channels every 2-4 weeks:
- Run ads on Channel A for 2 weeks
- Pause Channel A, activate Channel B
- After 2 weeks, return to Channel A — the audience has refreshed
This keeps CPA low without requiring higher CPM bids.
Calculating ROI from CPM Data
CPM is an input cost. What matters is the output: subscribers, clicks, or whatever action the campaign optimizes for. The conversion chain:
The conversion chain
| Metric | Formula | Example |
|---|---|---|
| Cost per click (CPC) | CPM / (CTR × 10) | $15 CPM, 0.8% CTR = $1.88/click |
| Cost per subscriber (CPA) | CPM / (sub rate × 10) | $15 CPM, 0.3% sub rate = $5.00/sub |
| Daily subscribers | daily_spend / CPA | $50/day at $5 CPA = 10 subs/day |
| Runway | balance / daily_spend | $500 balance at $50/day = 10 days |
These metrics track per channel, not just in aggregate. A channel with $20 CPM and 1% click rate ($2 CPC) outperforms a channel with $8 CPM and 0.1% click rate ($8 CPC).
CPM Optimization Checklist
- Start with a low CPM ($2-5) and ramp up exponentially
- Use binary refinement once the approximate floor lands
- Add a 10-15% buffer above the discovered floor
- Set per-channel CPMs, not a blanket bid
- Re-test floors every 1-2 weeks
- Track CPA per channel, not just CPM
- Rotate channels every 2-4 weeks to prevent saturation
- Budget 20% of total spend for testing new channels
- Increase floor buffer by 20-40% during Q4 and peak seasons
- Automate price discovery for 10+ channels
Bottom Line
CPM bidding in Telegram Ads isn't about spending more — it's about spending right. The platform's threshold-based system means a specific price point exists for every channel where impressions hit maximum at minimum cost. Finding that point is the entire game.
For small campaigns (1-5 channels), manual price discovery works fine. For anything larger, the testing matrix becomes unmanageable without automation.
Start low, ramp methodically, refine precisely, never stop re-testing. That's the strategy. For the cross-platform decision framework on whether AI-managed bidding pays off at a given budget, see When AI Ad Management Is Worth It.
Common Questions
What is the minimum CPM on Telegram Ads?
On ads.telegram.org the minimum CPM is currently $2. Some reseller platforms allow bids as low as $0.50, but very few channels have floors that low.
Is the highest affordable CPM the best strategy?
No. Above the floor, a higher CPM just costs more for the same impressions. The optimal strategy is to find the floor and bid 10-15% above it.
How often do floor prices change?
Floor prices can shift weekly. Major changes happen seasonally (Q4 increases, summer decreases) and when new advertisers enter or leave a channel category.
Can different CPMs run for different ad sets?
Yes. Each ad placement on a specific channel has its own CPM bid. The optimization unit is per channel, not per campaign.
What about impressions arriving but no clicks?
That is an ad creative problem, not a CPM problem. The bid is working since impressions land, but the message is not compelling enough to drive action. Rewrite the ad text before adjusting CPM.
How much budget for price discovery?
$5-15 per channel during the discovery phase. With 20 channels, that is $100-300 in testing budget. Once floors are found, that budget shifts to proven channels.