Ad Posts and Click Tracking
When the bot runs a campaign it publishes the promotional post — media, caption and buttons exactly as the advertiser built them — into the partner channel, leaves it up for the agreed duration, then removes it and reports the results.
This page explains what happens when somebody taps a button on one of those posts, and where the numbers in your stats come from.
What a viewer experiences
- A subscriber sees the promoted post in a channel and taps one of its buttons.
- The button opens a short chat with the Onflow Ads bot, which replies with a Sponsored Content card and an Open Promoted Content button.
- Tapping that opens the branded Onflow Ads landing page as a Mini App. It shows the promoted button's label under Button Label and where it goes under Destination, alongside a short explanation of what Onflow Ads is.
- The viewer taps Access Link to continue to the actual destination — a channel, a website or a post. A Close option is always available instead.
This short detour is what makes your campaign measurable. Without it, Telegram gives a channel owner no way to know how many people engaged with a post.
How opens are counted
- Every open is recorded before the content is shown, so a slow network or a viewer who backs out never loses the count.
- Repeat taps by the same person are not counted again. The figures you see are unique opens, not raw taps.
- Only a live campaign counts. A button tapped after the campaign has completed or been cancelled does not inflate anything.
- Blitz campaigns count per slot. Opens are attributed to the specific partner channel the post appeared in, which is what powers the per-slot analytics in the Live Campaign Tracker.
The same counters feed the live tracker in real time and the final Campaign Complete! report, so the two never disagree once a campaign closes.
An open means somebody tapped a button on your promoted post and reached the landing page. It is not a view of the post, not a channel join, and not a purchase. Member growth is reported separately on the tracker, and destination-side analytics belong to Link Tracking.
Preview mode
While you are still building a campaign, the bot can show you your post exactly as it will appear. Buttons on a preview are not live yet: tapping one replies Preview Mode Active — "You clicked a button in Preview Mode." — and explains that once the post goes live the button will open the Onflow Ads branded landing page.
Nothing is counted in preview mode, so testing your own post cannot skew your figures.
Subscriber Exchange placements
Ads placed through the Subscriber Exchange work the same way, with an even shorter hop. Tapping the ad's button opens the bot, which records the click and immediately replies with one line and a single button to the destination — no menus, no upsell, no forced subscription, because whoever tapped came to follow a link.
If the placement has ended, the bot replies simply: "That link has expired."
Expired or broken links
If a promoted link cannot be processed — the campaign has ended, or the link is malformed — the bot replies Invalid or Expired Link: "This link could not be processed. It may have expired or been malformed."
The bot never sends a viewer somewhere unexpected instead. On the landing page itself, a link that is no longer active shows Link Expired — "This promotional link is no longer active."
This is normal and does not mean anything went wrong: promoted posts are removed at cleanup, but a forwarded copy of an old post can outlive its campaign anywhere on Telegram.
Rules and edge cases
You do not have to set anything up. Add the bot as an admin to your channel from the website when you enroll the channel. It handles posting, wiring the buttons, counting and cleanup on its own.
Buttons are the advertiser's, unchanged. The bot publishes the labels and destinations the advertiser configured. It adds the measurement layer around them; it does not rewrite them.
Cleanup is automatic. At the end of the agreed window the bot removes the post. If insurance is enabled on a cross-promotion and a post disappears early, the tracker's insurance card reflects that and compensation is credited — see Live Campaign Tracker.
Forwarded posts keep working while the campaign is live. A forwarded copy still routes through the bot, and its opens still count, for as long as the campaign is running.
Your own taps count like anyone else's — once. Testing your live post is harmless but pointless.
Short FAQ
Why does the ad not open the destination straight away?
Because a direct link would be invisible to everyone. The extra tap is what produces the number both sides of a swap rely on to judge the deal.
Can a viewer skip the landing page?
They can close it at any point with Close. The open is already recorded, since it is counted before the page is shown.
Do I see who tapped?
No. You see counts, never identities. Telegram does not give a bot the identity of a channel's subscribers, and Onflow Ads does not attempt to work around that.
My partner's numbers look higher than mine.
Different channels, different audiences, different post quality. The Audience Overlap rating and the per-slot breakdown on the tracker are the place to start when comparing.
A viewer told me they got "Invalid or Expired Link".
They tapped a button on a post whose campaign has finished — most often a forwarded copy. Nothing needs fixing.
Next: Bot vs Website — which half of Onflow Ads owns which job, and why the bot has no menus.