Domanda

I wrote a small video library app. It renders private Vimeo videos for paid subscribers.

The owners of the app would like to reward users who watch videos. My first implementation was to trigger a watched mutation at 80% of the video playback (this was not ideal but clients demand features). Users have figured this out and are cheating by skipping to 75% and letting it tick over then moving onto the next video. Users only score one watched event so replays aren't a concern.

I can think of a few ideas to stop this behavior but would be interested in other answers to this. It doesn't have to be YouTube levels of fake engagement prevention.

  1. Check n times through the watch, if user sets m/n (they are allowed to skip a bit) they are granted their reward
  2. Check start playback time against time at 80% and have they spent enough time on the video.

If it matters I am using React and Apollo.

È stato utile?

Soluzione

In the end, they can play a video while doing something else, so there's nothing you can do.

I’d check that 10 different points in the video are reached the correct real time apart. Taking into account that they might fast forward for short times (some scene that the kids shouldn’t see).

Altri suggerimenti

Some people will cheat when the reward is high enough in comparison to the effort and the risk/consequences of getting caught. You've described some ways of cheating, now think like your users and try to find ways of cheating every solution that you come up with. If the reward/effort relation is too low for users to consider cheating, you might have found a solution that works.

One consideration: users may turn on video, do their laundry, and return just in time to start the next video. Is this conceivable? If yes, you might need to include presence checks using the webcam or users filling out questionnaires about the content. Are you willing to invest this effort, and are your users willing to cope with these additional conditions?

This isn't the kind of concern you resolve technically only. The point of this app is, you want your users to watch those videos.

The best way to do this is to entertain them. Make them watch less, but better videos. Target them with easier to watch videos, and ask questions after the video. Maybe make them write a small description or how they liked it. If that's an enjoyable experience, they're way more likely to avoid cheating at all.

You could also reward people more for less enjoyed (or less chosen) videos. Those videos would score better and you'd get to know why it was so boring in the first place.

Acting like users are robots will make them act like robots. They're very good at it. They'll always be better at cheating than you at catching them.

Don't develop a specific "video watched" event. Instead implement web analytics for all use interactions with the page. Then on the back end you can calculate an engagement figure from a combination of events.

This will allow you to change and improve the measure of engagement without changing the code.

If for example you notice people are skipping forward and don't want to include them in your measure, or say only award them half a point or whatever, you will be able to see all the events, start video, skip forward, press play, next video.

Where before your calc may have been:

1 view = pressNext.Time - pressPlay.Time > 75% of vid 

you can change it to :

1 view = (pressNext.Time - pressPlay.Time > 75% of vid) && no skip event in bettween
Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top