AI tools in the exchange
The ad builder has two AI entrances, and between them three things AI can do for you. Drafting copy and generating an image now live behind one button on the creative step, which opens a dialog with a tab for each; the Targeting copilot is still a button of its own on the classification step. All of it is optional β every ad can be written, classified and targeted by hand.
| Entrance | Where it is | What it does | Draws on |
|---|---|---|---|
| Write my ad with AI β Generate tab | Step 1, in the composer panel | Drafts the post copy from a plain-language brief | Text allowance |
| Write my ad with AI β Image tab | Step 1, the same dialog | Creates an ad visual | Image allowance |
| Targeting copilot | The Topic step (step 3), under the reach line | Counts your eligible pool and advises on reach versus precision | Text allowance |
The dialog is the same one Paid Promotions and Cross-Promotion use, so the quota meter and the failure messages inside it are shared across the platform. Only the wording of the title changes: in the exchange it reads Draft your exchange ad.
Before you startβ
- You are signed in, Telegram is linked, and you are inside the ad builder.
- For the image tool: a plan of Master or Ultimate, and a reliability score of at least 5.0.
- Your account is not under review. While a review is open, AI is switched off entirely: "AI is paused on your account while a review is open."
What you get, by planβ
Text actions are one shared counter across the whole platform β the exchange's Generate tab and its Targeting copilot, and every other AI text feature, spend from the same daily and monthly pools.
| Plan | Text actions per day | Text actions per month | Images per day | Images per month |
|---|---|---|---|---|
| Free | 1 | 3 | 0 | 0 |
| Lite | 2 | 8 | 0 | 0 |
| Plus | 3 | 12 | 0 | 0 |
| Elite | 4 | 16 | 0 | 0 |
| Master | 5 | 20 | 2 | 10 |
| Ultimate | 5 | 20 | 2 | 10 |
The daily window resets at 00:00 UTC and the monthly window on the 1st. Both windows apply at once, so a Free member with three actions used this month has none left even on a fresh day.
Below 4.0 your text allowance is clamped to the Free baseline and image generation is switched off. Between 4.0 and 4.9 you get about half your plan's text quota and still no images. From 5.0 you get your plan's full quota, and at 9.0 and above you get about 20% more text headroom. The image tool needs 5.0 as well as the Master tier floor.
Step by step β drafting the copyβ
- On step 1, press Write my ad with AI. The dialog opens on the Generate tab, headed "Draft your exchange ad", and starts by reading your allowance β "Checking what your plan includesβ¦".
- Type into the box under "What should the post say?" β up to 600 characters. Fewer than 3 and the dialog refuses before spending anything: "Tell the AI what the post is about first." The server, which trims the brief to 400 characters, wants at least 6 and otherwise answers "Describe the channel or offer you're promoting."
- Press Generate. The status line reads "Writingβ¦".
- The draft appears inside the dialog under Preview, and the status says "Have a look. Nothing changes until you apply it." Your post is untouched until you press Apply to my post. Regenerate spends another action for a different draft; Cancel throws the draft away.
The model is asked for one short, native Telegram promo post β a hook, a reason to follow and a clear invite β under about 400 characters, with no clickbait and no markdown. If you already picked a topic on the Topic step and came back to write it is sent along and sharpens the draft, but it is optional.
Edit what it gives you. It is a first draft, and the reviewer reads what you submit, not what the model suggested.
Apply to my post overwrites the editor's contents with the draft, formatting included. If you have written something you want to keep, copy it out before you apply.
Step by step β Targeting copilotβ
- Pick a content level on the Topic step first. Without one the copilot answers "Pick a content level first." and spends nothing.
- Press Targeting copilot. The button reads "Thinkingβ¦" and the panel says "Reading the poolβ¦".
- The result opens in a bordered box: a hard number first β "Eligible now: 312 of 1,240 channels at this level." β then two or three sentences of advice.
The counts are computed from the database, not invented by the model: the exchange measures the eligible pool, then measures it again with each single filter removed, so every filter's cost in channels is a real figure. The model only narrates.
The button sends the content level and the topic β nothing else. So the number it reports is the pool at that level minus channels whose owners blocked your topic; it does not reflect the languages, countries, size bands, day-parting or blocklist you set on step 3. For a count that includes those, submit the campaign and open the Why? diagnostic, whose Matching channels step reads the campaign's stored targeting.
Step by step β generating an imageβ
- On step 1, press Write my ad with AI and switch to the Image tab. On a plan that does not include images the tab shows the lock note instead of the prompt box.
- Type into "Describe the image" β up to 400 characters. Fewer than 3 and the dialog refuses before spending: "Describe the image you want." The server's own floor produces "Describe the image you want the AI to create."
- Press Generate image. The status reads "Creating your imageβ¦".
- Your prompt is run through a content-safety check before anything is spent. A prompt that fails is declined outright: "That request breaks our content policy. Please try a different, on-topic prompt."
- The image is generated and staged through Telegram exactly as a manual upload is, so Telegram's own dimension and file rules apply to it. It appears under Preview in the dialog; Apply to my post puts it into the creative's media slot, replacing whatever was there.
The model is asked for a clean promotional graphic sized for a Telegram post, with no text, no logos, no watermarks and no real people's faces β your post text carries the words.
To go back to a file of your own, remove the image with Remove on its thumbnail in the composer and use the add tile.
The exchange's image endpoint and the dialog do not currently agree on how the finished picture is handed over. A generation can succeed on our side β spending the image action β and still come back in the dialog as "The AI returned no image - nothing was used." When that happens the action has been used despite what the message says, and no picture reaches your draft. Upload an image yourself instead, and contact support if the spent action matters to you. The Generate tab is unaffected; only the image hand-off is involved.
What the numbers meanβ
| Rule | What it means |
|---|---|
| One action per run | Every successful Generate or Targeting copilot run costs one text action. Generate image costs one image from both windows. Regenerate is another run, and so another action |
| Applying is free | Only the run is metered. Looking at the result and pressing Apply to my post β or closing the dialog without applying β costs nothing extra |
| Refunded on failure | If the model returns nothing, or the generated image cannot be staged through Telegram, the action is handed straight back. The exchange never charges for an attempt that produced nothing you can use |
| Safety check is free | A prompt declined by the content-safety classifier is checked before any quota is touched, so it costs nothing |
| Rate limits sit on top of quotas | Generate and Targeting copilot allow 30 runs per 10 minutes; Generate image allows 10 per 5 minutes. These bound bursts; the daily and monthly quotas bound totals |
| The image tool is a hard tier line | Master and Ultimate only. No reliability score, no add-on and no boost lifts it |
If something goes wrongβ
| What you see | What it means | What to do |
|---|---|---|
| "You've used today's AI actions." | The daily or monthly text quota is spent | Wait for 00:00 UTC, or the 1st. The upgrade nudge below the message names the plan that raises it |
| "Couldn't draft that just now β no action was used." | The model returned nothing | Try again. Your allowance was refunded |
| "Couldn't analyse targeting right now." | The copilot could not complete | Try again shortly |
| "Tell the AI what the post is about first." | The brief is under 3 characters β the dialog stops you before anything is spent | Write a sentence about the channel or offer |
| "Describe the channel or offer you're promoting." | The brief reached the server under 6 characters | Write a longer sentence |
| "Describe the image you want." | The image prompt is under 3 characters β again caught in the dialog | Describe the picture you want |
| "Describe the image you want the AI to create." | The prompt reached the server too short | Write a fuller prompt |
| "The AI returned no image - nothing was used." | The dialog could not read the picture out of the response β see the warning above; the image action was in fact spent | Upload your own image, and contact support if the spent action matters |
| "AI image generation isnβt included on this account." | Your plan does not include images | Upload your own image; what a plan adds is shown on the card that opens with the refusal |
| "You've used your AI image allowance (daily and/or monthly). Daily resets at 00:00 UTC, monthly on the 1st." | 2 today or 10 this month already used | Wait for the reset |
| "Image generation is limited while your reliability recovers." | Your reliability is below 5.0 | Host placements to their full term to rebuild the score |
| "That request breaks our content policy. Please try a different, on-topic prompt." | The prompt failed the safety check | Rewrite it. Repeated attempts are flagged for review |
| "AI is paused on your account while a review is open." | Your account is under review | Nothing to do here β the pause lifts when the review closes |
| "The AI couldn't create that image just now β no image was used." | Generation failed | Try again. The image was refunded |
| "Telegram wouldn't accept the generated imageβ¦" | The image was created but Telegram refused it | Try a different prompt. The image was refunded |
| "Media uploads aren't available yet." | The delivery bot is not configured | A platform-side outage β try again later |
Frequently askedβ
Does using AI change how my ad is reviewed?β
No. The reviewer sees the finished creative and judges it on the same rules whether a person or a model drafted it. An AI draft you did not edit is judged exactly as harshly as one you wrote.
Do the exchange's text actions share a quota with the rest of the site?β
Yes. One counter covers every AI text action across Onflow Ads, so a copilot run in the exchange spends the same unit an AI action elsewhere would.
Can I generate an image and then upload a different one?β
Yes. Remove the attached image with Remove on its thumbnail in the composer, then use the add tile and choose a file as normal. The generated image is not kept.
Does an AI image count against the media size limits?β
The generated image is staged through Telegram exactly like an upload, so Telegram's own rules apply β including its dimension and aspect-ratio checks. A generation Telegram refuses is refunded.
Are my briefs and prompts used to train anything?β
They are sent to the model to produce your draft and are recorded against your account for quota and abuse purposes. See the platform privacy policy for what happens to them after that.
Relatedβ
- Running ads β the builder steps these entrances sit on.
- Targeting β what the copilot's numbers do and do not include.
- Plans, tiers and limits β the ladder, including which plan reaches the image tool.
- Rules and fair play β an AI draft still has to classify itself honestly.