如何计算广告的有效点击次数?

时间:2016-01-25 00:25:48

标签: php mysql

我想建立自己的广告系统。我希望用户能够从广告获得的每次点击中获得特定金额,比如5美分。

但是我遇到了一个问题。我不希望我的用户点击炸弹广告,以赚取更多。我希望每个广告的每位用户点击一次。

这是我到目前为止所提出的......

<?php

$ip = $_SERVER['REMOTE_ADDR'];

$query = mysql_query("SELECT * FROM user_ip WHERE ip = '{$ip}'");

if(!isset($_COOKIE['ad_click'])){
    $_COOKIE['ad_click'] = 'Ad number';
}elseif(mysql_num_rows($query) < 1){
    mysql_query("INSERT INTO user_ip (ip, time) VALUES ('{$ip}', " . time() . ")");
}else{
    // ad 1 more click to user account
}

?>

我的主要问题是人们可以删除cookie并更改其IP地址。所以这不会在现实世界中发挥作用。

2 个答案:

答案 0 :(得分:1)

没有完美的方法来识别用户,但有足够的不完美的方式,如果你使用它们,你可以做出很好的猜测。

  • IP地址应该是首先要检查的内容。在一次会议期间,知识产权通常会保持不变,这会消除任何试图点击炸弹的外行。
  • 用户代理会告诉您浏览器和操作系统

在客户端,你可以做很多事情。查看evercookie

  • 标准HTTP Cookie
  • HTTP严格传输安全(HSTS)固定
  • 本地共享对象(Flash Cookie)
  • Silverlight隔离存储
  • 将Cookie存储在自动生成的强制缓存的RGB值中 PNG使用HTML5 Canvas标签读取像素(cookie)
  • 在网络历史记录中存储Cookie
  • 在HTTP ETag中存储Cookie
  • 将Cookie存储在网络缓存中
  • window.name caching
  • Internet Explorer userData storage
  • HTML5会话存储
  • HTML5本地存储
  • HTML5全球存储
  • 通过SQLite进行HTML5数据库存储
  • HTML5 IndexedDB
  • Java JNLP PersistenceService
  • Java CVE-2013-0422 exploit(applet sandbox转义)

注意不寻常的点击频率并寻找奇怪的模式。

答案 1 :(得分:-1)

请记住:

  1. cookie可以清除
  2. ip也可以在连接期间更改
  3. 一个IP也可能由多个用户共享
  4. 浏览器(用户代理)不会经常更改,但用户可能每台计算机有多个浏览器
  5. 如果您不是超级知名网站,则每个用户每天可以处理一个ip。

    您可以考虑:浏览器(用户代理)值以及浏览器插件信息。