What You Are Actually Buying
A rate card row says something like "1 hour at the top ยท 24 hours in feed". Three things decide what that actually produces in the channel, and all three surprise people:
- "At the top" is exclusivity, not a pin. For the promised window the ad is the newest post โ the owner publishes nothing else. It is not held above the feed.
- A pin is a separate thing you buy. Some owners offer it as an extra on their rate card, at a fixed platform rate, and one format sells nothing but the pin.
- The platform adds one line under your copy. advertisement via onflowads.com, and whether it appears is decided by the channel's plan, not yours.
This page is the whole of that, once, so the rest of the section can refer back to it.
"N hours at the top" means newest, not pinnedโ
Every numeric format sells a window of top-of-feed exclusivity: for those minutes the owner posts nothing after your ad, so anyone who opens the channel in that window sees it first. When the window closes the ad keeps living in the feed for its promised in-feed duration, in ordinary feed position.
| Format | Exclusive window | In feed for | Pinned? |
|---|---|---|---|
| 1 hour at the top ยท 24 hours in feed | 60 minutes | 24 hours | No |
| 2 hours at the top ยท 48 hours in feed | 120 minutes | 48 hours | No |
| 3 hours at the top ยท 72 hours in feed | 180 minutes | 72 hours | No |
| Native ยท 7 days in feed ยท 1 hour at the top | 60 minutes | 168 hours | No |
| 30 days in feed ยท 3 hours at the top | 180 minutes | 720 hours | No |
| Forward / repost | none | 24 hours | No |
| 7 days in feed ยท pinned throughout | none | 168 hours | Yes โ the whole run |
7 days in feed ยท pinned throughout is the one format that really is a pin: it sells the pin itself, which is why it promises no exclusivity window on top of it. The pin is the placement โ and like everything else here it ends when the run does. This slot was called "7 days in feed ยท pinned throughout" until we corrected it: nothing on the platform is permanent, the bot takes every post down when its booked time is up, and it releases this pin with it.
No bot can stop a channel's own admins from posting โ Telegram's slow mode does not apply to them, and there is no API that would. So the platform does not prevent a breach; it checks afterwards and prices it. What the format buys you is a commitment the owner made and a check that runs against it, not a mechanical guarantee.
The product used to implement the top hours as a pin โ pin for N hours, then unpin. That was a different promise (a pinned ad under three newer posts is not "at the top" in any sense a reader would recognise), and it was corrected rather than extended. Orders booked before the correction were sold under the pin meaning and are still delivered and policed as pins, deliberately: nothing was retroactively rewritten. Everything you book now works the way this page describes.
The exclusivity checkโ
After the window closes, the platform reads the channel's own history once and reconstructs the whole window from the message timestamps โ including anything posted and then deleted inside it, which no repeated polling could have caught.
| Thing | The figure |
|---|---|
| When it looks | 5 minutes after the window closes |
| What counts as a breach | Any message in the channel newer than your ad, dated inside the window |
| Not a breach | Your own album's other photos, service messages (a pin, a join, a title change), and forwards or edits of the ad itself |
| The verdict | ok, breached, or unknown |
| What a breach costs the owner | โ0.40 reliability, once |
| What it costs you | Nothing. There is no money consequence |
If the channel cannot be read โ it went private, the reader could not reach it, the history came back empty โ the verdict is unknown. Unknown is never filed as a clean run and never as a breach. It is simply retried on later passes, and if it is still unresolved 25 hours after publication it is closed as unknown, permanently, so "we never checked" can never be mistaken for "we checked and it was fine".
This is a single retrospective read of a past that cannot change, so it is not re-probed the way a live "is the post still there?" check is. The protection here is the three-state verdict, not a second look.
What you see when it happensโ
You are notified. The item is titled "Your ad did not get its full time at the top", names the channel, says how many other posts went up and how far into the window the first one landed, and adds "We have recorded it against the channel. Your ad is still running for its full booked duration." It links back to your Campaigns page. The owner gets their own notification and takes the reliability hit.
The verdict is stored against the order, but no page renders it today โ not the order card, not the proof archive, not the campaign rollup. If you dismiss the notification there is nowhere to go back and read it. Screenshot it, or quote the OFO- to support.
The four dispute reasons are never published, deleted early, content altered and wrong channel โ none of them covers "the owner posted over my ad". They are not near-misses to be borrowed: a dispute the review finds unfounded costs you โ0.5 reliability. The exclusivity breach is handled end to end without you, and it carries no refund, because your ad still ran for its full booked duration.
The pin, as an extraโ
Where an owner offers it, their rate card carries one extra under the formats:
Pinned for the whole campaign โ "The ad is pinned in the channel from the moment it goes live until the campaign ends โ so it stays at the top even after the owner posts again. Unpinned automatically when the run finishes."
| Rule | Detail |
|---|---|
| Who prices it | The platform. One rate, identical on every channel โ an owner opts in or does not, but cannot mark it up |
| What you pay | $6.00 a placement โ $5 for the pin, $1 platform charge on your side |
| What the owner receives | $4.00 โ $5 less our $1 fee on theirs. We take a dollar from each side and nothing else |
| Where it lands in the total | Last โ after every discount, so no percentage lever touches it |
| How it is counted | Per placement, times the quantity on the line |
| Where you tick it | In the composer's Price panel, and again on each line in the cart |
| If the owner withdraws it | The checkout is refused rather than quietly downgraded, and the cart clears the ask |
It does not change the opening hours. A 1/24 promises one hour as the newest post whether or not you tick this; the two ride together, and neither shortens or extends the other.
Not every channel offers it. The row and the checkbox render only where the owner has switched it on, because it is a promise one owner is willing to make rather than a platform feature โ a greyed row advertising something you cannot have there would be worse than no row.
Pinning needs the platform's bot to hold Edit Messages of Others rights in the channel โ the switch that grants pinning in a channel. Those rights are not required to list a channel at all, so an owner who never granted them simply cannot switch it on โ the save is refused with an explanation. If a channel you want does not offer the pin, that is usually why.
Unlike a rate card, this number is the platform's. If it changes, every screen changes with it โ and a booking already paid for keeps the numbers it was taken at.
The line under your adโ
Every ad the platform delivers into a channel carries one extra line, one blank line under your copy:
advertisement via onflowads.com
It is a link back to Onflow Ads. It is the platform's disclosure, and it replaced the #ad hashtag the product used to ask advertisers to type โ a disclosure that depended on somebody remembering, and the one thing that could quietly be left out.
The line is removed on Plus and above โ but the plan that is read is the channel owner's, never yours. It is a mark on somebody's feed, so the person who earns its removal is the person whose feed carries it. Upgrading your own plan does not remove it from your ads, and it never will.
You can tell before you book: a channel's public page states which of the two applies to it, under Labelling. And the composer says so with its character budget โ where the line applies, 33 characters are held back from the caption limit, and a note under the box explains why. See Booking a promo slot.
The line is appended by the platform when it publishes the ad โ and the platform's bot publishes every placement, so what runs in the channel is exactly what the composer showed you, line included.
If you ever find it missing from a live post that should carry it, that is what support is for, quoting the OFO-.
The owner's own "marks the post as an ad" setting, shown on their listing, is a separate promise and it is theirs to keep.
The composer's reserve is read from the channel owner's plan, not from how the ad will be delivered โ so a Free-plan owner's channel costs you 33 characters of caption on every delivery route. Reserving characters that turn out to be free costs you a sentence; not reserving them would cost a rejected caption after the ad was written.
Relatedโ
- Reading a channel page โ the rate card, the extras panel and the labelling row, on one listing.
- Booking a promo slot โ the character reserve and the pin checkbox, where you meet them.
- Cart and checkout โ where the extra lands in the total.
- Escrow and buyer protection โ what the monitor does check, and what it refunds.
- Orders and campaigns โ where an exclusivity breach reaches you, and where it does not.