Skip to main content

Rules and fair play

The exchange only works if every placement can be trusted to run its term. These are the rules that make that true. All of them are enforced automatically and shown to you openly on the page β€” nothing here is applied silently.

There are six rules. Read the first one twice; the rest follow from it.

1. The 24-hour promise​

Every placement stays up for its full 24 hours, then the bot removes it.

This is the exchange's one non-negotiable promise, and it protects you on both sides: the ads you host come down on time, and the ads you run stay up their full term everywhere.

Breaking the promise means removing a hosted placement before its time. In practice that is one of two things:

  • deleting the bot's post yourself, or
  • demoting or removing the bot so it can no longer manage the placement.

Both are detected β€” the exchange probes each live placement on a schedule, and confirms with Telegram whether the bot is still an admin before attributing anything β€” and both land on the host account.

There is always a legitimate way out

If an ad in your channel genuinely has to go, use Hosted ads β†’ Refuse. The ad comes down within about a minute, never returns to that channel, and costs you nothing β€” no reliability, no strike. Turning on Review ads stops anything posting without your approval in the first place. Neither carries any penalty. See Refusing an ad and Reviewing ads before they post.

What an early removal costs​

When a placement is removed early and the removal is attributable to you:

What happensThe number
A reliability penaltyβˆ’1.50 on your account score out of 10
A strikeOne, recorded against your account
An account cooldown6 hours, closing the exchange for you on both sides
At the strike threshold3 strikes turns the cooldown into 7 days and suspends every active channel on the account for 7 days
Credits and rewardNone. A placement that did not run its term earns no credits and no clean-run bonus for either party

The page says so honestly: a Your exchange is paused banner appears with the exact end time and your strike count β€” "Strike 1 of 3; keeping placements up for their full window keeps you in good standing."

Who applies it

The bot is what sees the removal, and it only ever records the fact β€” the placement, and that it was pulled early by you, or that the bot was demoted. Everything that follows is decided by the website, from that record: whether your plan's grace excuses it, whether it opens a new episode or joins one already counted, the strike, the cooldown, the suspension at the threshold, and the reliability price (βˆ’1.50 for an early exchange removal, from the website's own published table, written to your reliability ledger usually within a minute). The bot never touches a strike count, a cooldown or a grace pass. The messages about a removal β€” yours and the advertiser's β€” are sent by the website once it has ruled, and they say what was recorded and applied on onflowads.com β€” never "your score is now N".

A strike count decays, but only after a long clean stretch

Strikes are a rolling window, not a permanent record. Serve a full 30-day cycle after your cooldown has ended without another attributable removal, and the count goes back to zero β€” the next slip is a first offence again, with the six-hour cooldown rather than the seven-day suspension. Nothing has to be asked for; the exchange reads the decay off the cooldown you already served.

Measuring from the end of the cooldown rather than from the removal itself makes the wait deliberately a little longer than the cycle: about 31 days clear after an ordinary strike, and about 37 after one that crossed the threshold and bought the seven-day suspension. It errs late on purpose, so a count never clears early. Until that stretch is served the count carries, and a second or third episode inside the window escalates exactly as the table above says. Grace resets every 30 days too, on its own separate clock.

One episode is priced once

A single event that breaks several placements at once β€” one demotion, or an outage recovering into a burst of confirmations β€” costs one strike and one reliability hit, not one per placement. The messages for the second and later placements say so: "no further drop β€” this removal is part of an episode already counted, and one episode is only ever priced once."

A demotion after the term is different

If a placement served its full 24 hours but the bot could not delete it because it had been demoted, the placement is closed with no reliability haircut β€” the ad did run its window β€” but a strike is recorded and the host's credits are withheld. Repeated strikes still suspend the channels.

What reduced reliability does to your reach​

Reliability scoreShare of your plan's placements your ads receive
7.5 and above100%
5.0 to 7.475%
4.0 to 4.950%
Below the exchange floorNothing new can start β€” no new channel, no new ad β€” until the score recovers. Campaigns already approved keep running, and cancelling, refusing, reviewing and leaving all stay open

The exchange's floor is 4.0 out of 10 by default and is admin-configurable, so the number quoted on your own page is the authoritative one. New accounts start at 8.00, comfortably above both the floor and the full-reach line.

The haircut applies to your whole placement count, including placements bought with money β€” no purchase buys out of it.

Below the floor, the hub tells you β€” and says exactly what is closed

A card headed Your reliability is below the floor appears at the top of the exchange hub, naming both numbers and what they cost you: "The exchange needs a reliability score of at least 4/10 β€” yours is 3.2/10, so nothing new can start: no new channel and no new ad until it recovers. Anything already approved keeps running, and you can still cancel an ad, refuse one in your channel or leave the pool." The reliability pill at the top of the page carries the same score, and the refusal you meet at a button quotes the same two figures.

The gate cuts both ways​

The matcher also requires the host's own reliability to clear the same floor before offering their channel an ad. So an account below the floor stops being offered placements to host β€” which is also the only way it would have earned the score back. If you find yourself there, the way out is to get the score up through the other Onflow Ads products the score covers, then hosting resumes on its own.

You earn reliability inside the exchange the way everyone does: hosting placements that run their full term. Each clean run is recorded as +0.05 for both parties β€” the host and the advertiser β€” and applied by the website like every other entry.

Grace for genuine accidents (paid plans)​

Paid plans forgive a number of accidental early removals per 30-day cycle β€” 1 on Lite, 2 on Plus, 3 on Elite, 4 on Master, 5 on Ultimate. Free gets none. A forgiven removal costs no reliability and no strike.

The hub shows your allowance and what is left: "Your plan forgives 3 accidental early removals per cycle β€” 2 left this cycle. Genuine accidents won't cost you reliability or a strike."

Three limits on grace:

  • The advertiser is still told honestly that their exposure was cut. Grace protects your standing, not their numbers.
  • Grace never covers demoting or removing the bot. That is the deliberate attack the strike system exists for, and it is always priced in full.
  • Grace does not stack with an episode already being cooled. It is for one-off accidents, so the second and later placements of one event never drain the reserve.

Grace resets with each 30-day window; the hub always shows how much is left. Whether a removal is excused is decided by the website when it reads the bot's record β€” the same rolling window, the same limits β€” so a forgiven removal never reaches your reliability ledger at all.

2. Classify your ad honestly​

  • Your ad's topic and level must be truthful. Every ad is reviewed by a human before it runs, and a mislabelled ad is declined.
  • Some topics force a minimum level. A crypto ad runs at level 3 or above wherever you would have put it: "β€œCrypto & Web3” ads run at Finance, Trading & Crypto (level 3) or above, so only channels that opted in to it will carry them."
  • Sensitive content only reaches channels that opted in. Level 3 is only ever placed in channels whose owners explicitly accepted it.
  • Gambling and betting are not carried at all. Since 25 September 2026 casinos, slots, poker, lotteries, satta, sports betting, bookmakers and tipster channels are refused on every rail, exactly like adult content below; level 4 and its four topics were retired. The full list is on Prohibited content.
  • Adult content is not carried at all. It used to be an island β€” its own level, its own topic, reachable only by a host who opted in. Since 22 September 2026 there is no island: adult and 18+ material is refused on every rail, for every plan, at submission. No opt-in exists for it, because it is a platform rule rather than a preference.

The reason is simple: a host who agreed to carry "General & Education" must be able to trust that they will not wake up to a crypto ad.

The old "Telegram links only" rule has been replaced. Every link β€” in a button or inside the post body β€” is classified once at submission into one of three classes, and your plan and add-ons decide which you may use.

ClassWhat countsWho may use it
Public TelegramAny https:// or http:// URL on t.me, telegram.me, telegram.dog, t.dog or telegram.org, or a subdomain of one, that is not a private destinationEvery plan
Private TelegramAn invite link (/+hash, /joinchat/…) or a private-channel link (/c/<id>/…) on one of those hostsLite and above
ExternalAny other hostAny plan holding the External Links add-on, a one-off $1

What survives from the old rule is the part that actually protected hosts: every destination is checked at submission, and a human reviewer sees every button with its destination on the moderation card. A link that cannot be parsed with certainty is rejected outright β€” no tg:// links, no protocol-relative URLs, no bare hosts, no embedded credentials, nothing with whitespace, nothing over 512 characters.

External links are permitted where they have been paid for. Do not assume an exchange placement can only lead to Telegram.

4. Respect anonymity β€” and its one exception​

  • Advertisers see totals only β€” placements, views, clicks β€” never the channels that carried their ad.
  • Hosts see the ad content they carry, of course, but never the advertiser's identity.
  • The one exception is a Swap, which is disclosed 1:1 by design: you and your partner each see the other's creative in your own channel, because you both opted into exactly that.

Do not try to use the exchange to unmask the other side. There is deliberately no view anywhere that joins the two, and the one field that could give it away β€” your own competitor blocklist β€” is never read back to you, because confirming which handles are enrolled is exactly the leak host anonymity exists to prevent.

5. One account, one Telegram β€” and one owner per channel​

  • Each Onflow Ads account pairs with exactly one Telegram account.
  • A channel can be enrolled by exactly one account: "That channel is already enrolled in the exchange by another account."
  • You must be an administrator of a channel to enrol it, and that is verified against Telegram at every enrolment β€” including the re-verification the exchange runs at the moment of enrolling, so a bot removed between the two steps is caught.

6. Cancelling and leaving are never loopholes​

  • Cancelling an ad stops future placements; anything live finishes its 24 hours.
  • Withdrawing a channel stops new placements; anything live finishes its 24 hours.

Both are always available and never penalised. Neither can be used to cut a running placement short β€” the hold applies to everyone equally, including you.

Withdrawing does carry two consequences on your own advertising, because the exchange is reciprocal and that reciprocity is now checked continuously rather than only when you submit. Any swap campaign offering the channel you withdrew is cancelled, and if it was your last hosting channel every approved campaign on the account is paused until you enrol another. Neither is a penalty and neither costs you standing β€” the reply tells you both, and paused campaigns resume by themselves. See Hosting ads.

The legitimate exits, in one place​

If you ever feel the only way out is to delete a post, one of these is what you actually want.

You want toDo thisPenalty
Get one specific ad out of your channel nowHosted ads β†’ RefuseNone
Approve everything before it postsReview ads: OnNone
Stop this channel receiving adsLeave on the channel rowNone
Stop one of your own campaignsCancel on the campaign rowNone
Change what content your channel acceptsRe-run Add a channel for it and pick a new levelNone
Delete the bot's post by handNever do thisβˆ’1.50 reliability, a strike, a 6-hour cooldown, and a 7-day suspension of every channel at three strikes

If you think a decision was wrong​

  • A declined ad can be appealed once. Press Appeal on the campaign row and give the reviewer a sentence or two. On Elite and above the appeal card is flagged for priority attention. The reviewer's tap on that card is relayed to the website, which makes the decision, restores the ad and notifies you. See Running ads.
  • A reliability penalty β€” an early removal, a strike you believe was wrongly attributed β€” is contested from the row it made on your reliability ledger, where every entry carries an Appeal button and a human reviews it. See Appealing a penalty.
  • A reliability or standing question is answered on the reliability dashboard, which shows the full breakdown of how your score was built.

Edge cases worth knowing​

  • Enforcement is symmetrical. A cooldown pauses hosting and advertising together, so being a good advertiser cannot offset being an unreliable host, and the reverse is equally true.
  • Suspensions and cooldowns lift on their own. There is nothing to apply for and no way to shorten them. Re-enrolling clears a suspension that has already been served, never one still running.
  • An account under review elsewhere on Onflow Ads cannot start a new exchange campaign or enrol a new channel. Placements already running are untouched, and leaving a channel stays open.
  • A refused or declined placement is not a penalty for anyone. The host does not lose standing for refusing, and the advertiser does not lose standing for being refused β€” or for being declined in review.
  • The advertiser is never told who refused them. Their record simply shows the placement removed.