Home  >  Article  >  Backend Development  >  SEO 统计算法

SEO 统计算法

WBOY
WBOYOriginal
2016-07-06 13:51:28839browse

我想知道 站长之家对网站 ip PV 的一个统计 使用什么样的算法呢。

大概思路 和方向是什么,我觉得 不通过使用sdk的方式统计的数据 相对准确性 不是很高呢,是我理解的额这样么,求大神告知。

回复内容:

我想知道 站长之家对网站 ip PV 的一个统计 使用什么样的算法呢。

大概思路 和方向是什么,我觉得 不通过使用sdk的方式统计的数据 相对准确性 不是很高呢,是我理解的额这样么,求大神告知。

1)简单粗暴型的,这里不用去管浏览器的user-agent,不管cookie等信息,每产生一次PV,就直接计数,优点:简单,缺点:可能不真实,也可能有刷量数据
2)稍微细腻点的统计,会区分新老用户,楼主你可以研究下baidu统计的SDK,里面包含有用户的浏览器信息,操作系统信息、用户的地域信息等,也就是说,你通过浏览器的javascript以及和服务器数据的交互,对于后台服务器来说,是可以获取这些数据的,那么对于站长之家这样的网站,他可能想要统计到真实的用户访问情况,以便有些行为分析,这时会结合用户的IP信息、cookie信息(也就是session)和user-agent来统计分析,注意,这里的IP是映射后的IP地址,对于我们日常的家庭拨号上网,都是拿到的运营商的虚拟出来的内网地址,以便节省IPv4资源,所以说,一个user-agent、IP、cookie基本上能唯一标识一个用户信息。
3) 进一步说,有了这些数据之后,从设计角度来说,阅读量的这个信息在页面展现中不是优先级最高的(优先级最高的应该是业务内容本身),但阅读量的相关信息是有意义的,那么问题来了,对于阅读量这种信息是否在数据库的设计层面上要加写锁去互斥? 这里推荐了解下什么是CAP原理。
4) 所以解决方案,可能是缓存,也可能是有IP的判断、cookie的检测,这个要尝试之后才知道了,不过个人觉得可能性最大的是这个阅读量,汽车之家采用的是一个异步统计的办法,也就是说你产生真实的阅读之后,他是经过后台处理之后才给阅读量计数器+1的。
提供一下实现这种思路:

  • 一个IP最多只增加两次阅读类似的机制,或者还有更深一层次逻辑判断的,比如第二天IP清空,然后这个统计算法变成了每一天每一个IP都有两次阅读次数增加的机会

  • 一段固定时间内(比如30分钟),不管你用同一个浏览器内核访问多少次只增加一次阅读量。

  • 校验user-agent、cookie等信息;每一次浏览插入一条访客记录到A表

  • 微博实现:我是做微博的,我说说微博的做法。阅读量,点赞数,单访问限制。都是用redis实现的。然后每天夜里空闲时段同步数据库(按一定规则,分批等)。

  • 如果用户已经登录,只统计一次;如果是游客,则根据IP、timestamp、cookie等综合判断,相同就只统计一次。
    这样可以防止刷浏览量。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn