Blog
Problems

You cannot tell who is watching, and trying is the wrong goal

Parth4 min read


How do you stop AFK viewers winning a giveaway?

Not by trying to detect them — every available signal measures something other than attention. The reliable approach is to let anyone enter and require the winner to claim within a couple of minutes. Someone who is present claims; someone who is not triggers an automatic reroll. You get the outcome without excluding anyone.

The complaint is reasonable. You ran a giveaway, someone won who has not said a word in two hours, and it feels like the prize went to a browser tab rather than a person. So the obvious next thought is: only let people who are actually watching win.

The problem is that "actually watching" is not something software can see. Everything you could measure is a proxy, and every available proxy is worse than it looks.

What the proxies actually measure

Chat activity measures whether someone types, which is a personality trait more than an attention one. Plenty of your most loyal viewers have never posted a message. Filtering on it systematically rewards the talkative and excludes the quiet, which is not the distinction anyone meant to draw.

Watch time measures whether a connection stayed open. It is trivially satisfied by a muted tab in the background — the exact case the whole complaint is about — while failing anyone who joined ten minutes ago, who is by definition watching right now.

And requiring someone to keep a giveaway page open, which some tools do, measures whether they are looking at the giveaway rather than at your stream. That one is worth dwelling on, because it is the most seductive and the most backwards.

Why we cut exactly that feature

We built a version of this and removed it before it shipped. The reasoning was short: page-presence is a proxy for not watching the stream. A viewer who dutifully keeps the entry page open on their phone is a viewer looking at their phone, and a giveaway tool that competes with the broadcast for attention is working against the thing it is supposed to support.

It also fails on its own terms. The people most likely to keep a page open are the ones who read the instruction, which correlates with being engaged — so the filter mostly re-selects people who were already going to be there, while quietly excluding the person watching properly on a TV with their phone in another room.

SarahStreams

is giving away prizes

Friday night giveaway

Prize

Steam key · Elden Ring

🎉

YOU WON!

Steam key · Elden Ring

If you don't claim in time, the wheel spins again.

Official rules

No purchase necessary. Open to entrants 18+ worldwide. One entry per person.

Entries close when the streamer starts the draw. The winner is drawn at random on stream. The winner must claim within 2 minutes or the draw is repeated.

Prize: Steam key · Elden Ring. Promoter: SarahStreams.

This is a promotion by SarahStreams. Twitch does not sponsor or endorse this promotion and is not responsible for it.

Generated from this giveaway's settings. Not legal advice.

the winner's phone
The version that works: anyone can enter, and the prize goes to whoever is around when it lands.

The other cost: instructions

Every presence check adds a rule the viewer has to hear, understand and follow — keep this tab open, type in chat first, stay for the whole draw. Each of those loses people at the exact moment you were trying to gain them, and they lose the same people every time: the ones who arrived recently and are not yet paying close attention.

It also puts you in the position of enforcing the rule live, which is the worst part. Someone wins, someone else points out they were not in chat, and now you are adjudicating in front of everybody over a rule you introduced to avoid an awkward moment.

What the complaint is usually really about

Worth separating two things that feel identical. One is "the prize went to someone who was not there", which is a real, fixable problem about delivery. The other is "the prize went to someone who does not participate much", which is a feeling about deservingness — and quietly, it is a request to weight the draw towards regulars.

That second one is a legitimate thing to want and it deserves an honest mechanism rather than a presence filter dressed up as one. If you want your regulars to have better odds, the honest version is saying so out loud and running a draw that does it deliberately, not adding a hurdle and hoping the right people clear it.

Move the check to the end

The insight is that you do not need to know who is watching when they enter. You need the prize to end up with someone who is there when it is awarded — and those are different problems with very different difficulty.

So: let anyone enter, with no filter and no instructions, then require the winner to claim within a short window. Someone present taps and wins. Someone who wandered off does not, and the draw rerolls automatically. The prize reliably reaches a person who was around, and nobody was excluded from entering on the basis of a proxy that was never measuring the right thing.

The window matters. Two minutes is generous enough that someone half-watching can respond, and short enough that the room stays interested. And because the winner gets a screen on their own device rather than an announcement they have to overhear, being "AFK" in the sense of not staring at the stream does not disqualify anyone — which is correct, because watching a stream while doing something else is how most people watch streams.

When you genuinely do want to restrict entry

There are real reasons to narrow a giveaway, and they are about identity rather than attention: one entry per person, subscribers only for a subscriber-thank-you, or a region you can actually ship to. Those are legitimate and enforceable, and none of them requires guessing at anyone’s state of mind.

If the underlying worry is bots rather than inattention, that is a different problem with different answers — sign-in, device deduplication, and prizes small enough not to be worth farming. It is worth working out which of the two is actually bothering you before adding a rule, because the fixes have almost nothing in common and the wrong one costs you entries for no benefit.

What is left, once you strip out those cases, is usually a feeling rather than a requirement: that the prize should go to someone who cares. The claim step handles that better than any filter, because caring enough to tap a button in the next two minutes is a much better signal than anything you could have measured beforehand.

ShareXFacebookWhatsAppRedditLinkedIn

Questions people ask

Can a giveaway tool tell who is actually watching?
No. It can see whether a connection is open, whether someone typed, or whether a page is in the foreground — none of which is attention. A muted background tab satisfies most of them and an engaged viewer on a TV satisfies none.
Should I require viewers to keep the giveaway page open?
No, and we removed that feature before shipping it. Keeping an entry page open means looking at the entry page rather than your stream, so it selects for the wrong behaviour while excluding people watching properly on another device.
How do I make sure the prize goes to someone who is around?
Check at the end rather than the start. Let anyone enter, then give the winner a short window to claim from their own device, with an automatic reroll if nobody does. The outcome you wanted, without excluding anyone from entering.
Is it fair to reroll on someone who did not claim in time?
Yes, provided the window is stated before the draw and the reroll is visible. It is a rule everyone agreed to rather than a judgement about a person, which is exactly why it should be written down in advance.
What about restricting entry to subscribers or a region?
Those are about identity and eligibility rather than attention, and they are legitimate and enforceable. Just be aware that subscriber-only entry raises its own questions about what counts as paying to enter.

90 seconds from now,
confetti hits your stream.

Sign in → paste one URL → press a button. That’s it. Your viewers will notice the difference tonight.

Free forever · Creator $99/yr or $15/mo · Pro $149/yr or $25/mo · Event Pass $9 for 3 days