【问题标题】:Track if a user has watched a video and reward them.?跟踪用户是否观看了视频并奖励他们。
【发布时间】:2011-12-13 14:37:28
【问题描述】:

我拥有一个激励网站,用户可以在其中完成优惠并赚取积分来购买商品。我正在寻找一种在其中实现视频的方法。用户一直观看视频并在其帐户中获得一定数量的积分。该站点使用 PHP,并且我的数据库中有一个用户表,用于跟踪用户点。

知道如何检查用户是否观看了视频吗?

谢谢!

【问题讨论】:

  • 你是在问他们是否看过视频?还是观看了整个视频?
  • 我认为最好的结果是用户播放了整个视频——谁知道他们是否真的坐着观看。
  • 只需在不同时间向视频添加一些非常简单的事实,然后向用户询问。如果他知道答案,他要么一定看过视频,要么查过事实。为防止后者,您必须动态生成视频。
  • 看视频是最重要的,因为会从视频开头播放的广告中获得收入。如果他们真的看内容,我没有偏好,只要有收入。

标签: php javascript video


【解决方案1】:

如果您只想在 Youtube 嵌入式播放器中捕捉事件,请查看他们关于 Subscribing to events 的 JS API 文档。还有一个list of events你可以收听。

【讨论】:

    【解决方案2】:

    你可以不遗余力地防止作弊,但你仍然无法抓住最后一个作弊者,因为它总是可以作弊客户端软件。

    实时流式传输视频(您可以控制流式传输带宽,以便无法一次下载整个视频),例如从服务器端脚本,并记录流式传输整个视频时的视图。

    不过,作弊总是有可能的。用户可以编写一个脚本,该脚本只是假装是访客并在后台“查看”视频。您可以尝试通过使用某种加密或混淆来防止这种情况发生,但始终可以规避,因为用户可以根据需要控制客户端。

    用户可能仍然只是将扬声器静音并在最小化的窗口中播放视频。您无法完美控制这一点,尽管您可以利用 JavaScript 中的 blur 事件来暂停视频(在这种情况下,也向服务器发送信号并暂停流式传输)。不过,他们仍然可以离开计算机(但这可能并不常见,您的付费客户肯定已经知道并考虑到了这种风险)。

    【讨论】:

    • 比如说它是一个 youtube 视频。我只关心他们是否在视频开头观看了广告,他们是否真正关注内容无关紧要。有什么方法可以检查用户是否点击了嵌入式 Flash 播放器上的播放?
    【解决方案3】:

    您可以使用事件监听器。您捕捉视频开始的时间。然后您可以在 EventListener“结束”函数中再次捕获它,然后计算观看时间以防止跳到视频结尾。如果视频时间和观看时间相同,您可以将他观看该电影的信息发布到您的 php 中。

    【讨论】:

    • 至少减去一定数量可能是最好的;确切的时间可能很难达到。
    【解决方案4】:

    “结束”事件应该是您正在寻找的。​​p>

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <link type="text/css" href="style.css" rel="stylesheet"/>
        </head>
        <body>
    
            <video id="movie" src="movie.mov" autoplay="true"></video>
    
            <script>
    
                document.getElementById("movie").addEventListener("ended", function(){alert("all done")}, true);
    
                </script>
        </body>
    </html>
    

    【讨论】:

    • 如果他们跳到视频末尾怎么办?
    • 除了 Emil 下面的建议之外,也许可以使用在电影结束前约 5 秒结束的计时器来确保观看整个视频。然而,正如已经说过的,没有万无一失的方法可以实现这一目标。
    • 比如说它是一个 youtube 视频。我只关心他们是否在视频开头观看了广告,他们是否真正关注内容无关紧要。有什么方法可以检查用户是否点击了嵌入式 Flash 播放器上的播放?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多