Skip to main content

Reviewing ads before they post

By default, an ad that matches your channel is posted automatically โ€” inside the content level you chose and inside every limit the exchange applies. For most hosts that is the right setting: it earns credits without asking anything of you.

If you would rather see every ad first, turn on Review ads for that channel. From then on, nothing posts in it without you saying yes.

Before you startโ€‹

  • At least one channel enrolled and showing Hosting.
  • A way to see Telegram messages from our bot. The hold notification arrives there, and the exchange page has no activity feed โ€” if you rely on visiting the page, a hold can expire before you notice it.
This is a per-channel setting, on every plan

Review is switched on for one channel at a time, not for your whole account, and it is a host protection rather than a paid feature โ€” every plan including Free can use it. You can run one channel on automatic and another on review.

Step by stepโ€‹

  1. On the exchange page, open My channels.
  2. Find the channel and press its Review ads: Off button.
  3. The button flips to Review ads: On and a Review on pill appears next to the channel's name. That is the whole change.
  4. The next ad matched to that channel is held instead of posted. The bot messages you: "An ad is waiting for your review", naming the channel, the ad's level and the exact Decide by time.
  5. An Ads waiting for your review card appears at the top of the exchange hub, above everything else.
  6. Press Approve or Decline on each entry.

To turn it off again, press Review ads: On. The channel returns to posting automatically; anything already held stays held until you decide or it expires.

What each held ad shows youโ€‹

Each entry on the Ads waiting for your review card gives you everything needed to decide and nothing that would identify the advertiser.

What you seeWhat it is
"@yourchannel ยท Level 2 ยท Shopping & E-commerce ยท decide by 14/09/2026, 18:40"Which of your channels it is waiting for, its content level, its topic, and the deadline
The creativeThe post text rendered the way Telegram will render it: formatting intact, links visible as links, every inline button shown by name and in the colour it will be drawn in, and โ€” below the bubble โ€” a destination list naming exactly where each button and each in-text link leads. If the shared editor script fails to load, a plain-text preview of up to 158 characters stands in
ApproveReleases it. The exchange confirms "Approved โ€” OFSE-โ€ฆ will post shortly." The bot posts it within about a minute
DeclineRefuses it. You confirm first โ€” "Decline this ad? It won't be placed in this channel โ€” now or later." โ€” and the exchange replies "Declined โ€” OFSE-โ€ฆ won't be placed in this channel."
Read the destinations, not just the text

Under the preview bubble the card lists every tappable thing in the post as a row โ€” "Button" or "Text link", its label, then an arrow and the address it opens. That list is the part worth reading hardest: an ad can read perfectly and still carry a link you would not want under your name, and the label on a button is chosen by the advertiser, not by where it goes.

Two things the preview does not show you

The image or video. A creative's media lives in Telegram as a file id and is not fetchable by a browser, so the card renders the text and the buttons only. An ad with a picture shows here as though it had none. If media matters to your channel, that is an argument for automatic hosting plus Refusing an ad rather than review.

The attribution line. If your plan is Free or Lite, the post your channel receives will carry one extra line, one blank line below the creative, reading advertisement via onflowads.com โ€” the preview does not add it. From Plus upward there is nothing extra to show. See Hosting ads.

What declining actually doesโ€‹

Declining is stronger than "not now". It does two things at once:

  1. The held placement is dropped. It is never posted.
  2. That specific ad is blocked from your channel permanently โ€” the same permanent block the Refuse button writes. It will not be offered to that channel again, in this cycle or any future one.

The block is scoped to that one ad, not to the advertiser: their other campaigns can still be matched with your channel later. The advertiser is never told which host declined them.

Declining costs you nothing

No reliability penalty, no strike, no effect on your standing. Refusing content you do not want in your channel is your right as a host, and the exchange records it as a normal outcome.

The deadlineโ€‹

Each card shows a decide by time, 24 hours from the moment the ad was held.

If you do not decide before then, the ad is skipped for your channel. It is not posted, there is no penalty, and the bot tells you: "An ad review timed out โ€” nothing was posted to your channel." Meanwhile the ad is free to reach other channels, so the advertiser is not stuck waiting on you either.

Letting holds expire quietly costs you earnings

An expired hold is a placement your channel never carried, so no credits. If you regularly miss the window, either watch for the bot's message or switch that channel back to automatic and use Refusing an ad for the occasional one you do not want.

Outcomes at a glanceโ€‹

Your actionThe adYour channelCreditsPenalty
ApprovePosts within about a minute, stays up 24 hoursCarries it normallyEarned when it completes its termNone
DeclineNever posts; blocked from this channel permanentlyUnaffectedNone โ€” nothing ranNone
No decision in 24 hoursSkipped for this channelUnaffectedNone โ€” nothing ranNone

Rules and edge casesโ€‹

  • A hold does not cost the advertiser a placement. While an ad waits on you, the scheduler advances without counting a drop, so the campaign keeps reaching other channels. The hold does take that channel's slot for the cycle, so the same campaign will not be offered to you twice.
  • A very late approval can post nothing. If the campaign has rolled into a new 30-day cycle while your hold waited, approving it voids the placement rather than posting it โ€” the old cycle is closed and posting now would push it past its paid target. Approve promptly and this never arises.
  • An approved ad still obeys every other limit. It will not post inside your channel's 20-hour gap, and it counts toward the weekly limit like any other placement.
  • You cannot decide twice. A hold that has expired, was already decided, or belonged to a campaign the advertiser cancelled answers "That review is no longer pending."
  • Cancelled campaigns clear from your queue. If an advertiser cancels while one of its placements is held for you, the held placement is dropped so it can never post. The same happens if you withdraw the channel.
  • Review changes whether it posts, not what can be offered. Your content level ceiling is still what decides what may be matched to your channel at all โ€” see Hosting ads.
  • The card only appears when you have holds. With none waiting, the Ads waiting for your review section is simply not shown, and the exchange does not even fetch the queue.

If something goes wrongโ€‹

What you seeWhat it meansWhat to do
"That review is no longer pending."It expired, you already decided it, or the campaign was cancelledReload the exchange page โ€” the entry will be gone
A plain one-line text preview instead of the formatted adThe shared preview script did not loadReload the page before deciding, so you can see the links and buttons
"Could not change that setting."The review toggle did not saveReload and try once more. The toggle is rate limited to 40 changes per 10 minutes
You approved something and now regret itThere is no undo before it postsOnce it is live, remove it penalty-free with Hosted ads โ†’ Refuse

Frequently askedโ€‹

Does having review on mean my channel gets fewer ads?โ€‹

Only through holds you let expire. An ad you approve promptly behaves exactly like an automatic placement.

Can I see who wrote the ad I am reviewing?โ€‹

No. You see the creative, its level and its topic โ€” never the advertiser. Anonymity protects you in the other direction too.

Should I use review, or just refuse the occasional ad?โ€‹

Use review when your audience is sensitive and you want a hard gate. Use refusal when you are generally happy to host and only occasionally want something gone. Review costs you attention; refusal costs you nothing but happens after the fact.

I want to stop hosting for a while โ€” is turning review on the right way?โ€‹

It works, in that nothing posts without your approval โ€” but every hold still asks for a decision, and one you let expire is a placement you earned nothing on. If you want a real break, Leave is cleaner: anything live finishes its 24 hours, and you can re-enrol later keeping your settings.

From the support chat

Pending reviews lists the posts waiting for you; approve the exchange post waiting for review or reject it runs the same decision as the buttons here, after you type CONFIRM. What the assistant can do for you has the full list and the confirmation rule.

  • Refusing an ad โ€” the other half of host control, for an ad that has already posted.
  • Hosting ads โ€” every protection that binds a placement before it ever reaches your queue.
  • What the bot sends you โ€” the hold notification, the decide-by time and the timeout message.
  • Earning credits by hosting โ€” what an approved placement earns when it completes.