GOOGLE的界面中很早就已经加入了基于鼠标事件的用户点击系统,比如这样一个搜索结果的标题链接:
<a href=http://www.geeklog.net/staticpages/index.php/CVS onmousedown="return clk(15,this)" target=nw>Geeklog - Anonymous<font color=CC0033>CVS</font> Access</a>
在这个链接的点击过程中,会触发一个鼠标事件:通过clk函数,会讲当前URL的目标链接地址和这个链接的排位发送到统计服务器上,这个请求是向页面中增加一个图片对象,从而向统计服务器发出一个图片HTTP请求实现的,在向统计服务器发出请求的时候,通过JAVASCRIPT讲一些预先设置好的参数传向统计图片服务器。
比如上面的鼠标点击:
会将当前结果的位置:第15条
当前结果的目标地址:本链接对象
传递给图片服务器,从而产生一个URL请求,而浏览器还会将当前的URL做为referer传递给图片服务器,从而图片服务器上还可以进行但前关键词和搜索条件的统计。
function clk(n,el) {if(document.images){(new Image()).src="/url?sa=T&start="+n+"&url="+escape(el.href);}return
true;}
Google通过用户的点击获得了各种位置URL的点击率统计,从而有可能进行基于用户点击统计反馈的排名调整或者是一种不定期的算法改进质量跟踪。我看到的最早的相关Google的鼠标事件跟踪的讨论从去年(2003)4月份就出现过
和传统的基于转向服务器的点击统计方式的比较
基于转向服务器的统计:
[User Click] ==> [redirect.example.com] ==> [target.site]
Google的用户点击统计方式:
[User Click] ===> [target.site] + [image url request for stats]
Google这种方式有以下用户感受方面的优点:
1 速度优势:不通过转向服务器,点击统计和目标网站的打开是同时并发产生的,这样就比转向服务器快,而且隐蔽;
2 用户感受优势:对于点击过的链接,按照HTML的规范,会显示成棕色,这样用户就比较容易从搜索结果中区别那些是以前点击过的内容,那些是没有点击过的内容,但是基于转向服务器的统计由于需要很多签名的校验,因此经常无法固定URL,这样在一个以前搜索过的搜索结果页面中,用户可能无法直接通过页面分别那些是点击过的链接,那些不是。
我以前曾经参考类似机制实现了一个通过Javascript获得当前屏幕分辨率和鼠标坐标实现的页面点击密度统计的系统设计:
这个是BlogChina的点击密度统计分析
6月12日:
Recently scripts changed to 3 parameters: el ct cd
function clk(el,ct,cd) {if(document.images){(new Image()).src="/url?sa=T&ct="+ct+"&cd="+cd+"&url="+escape(el.href);}return true;}
Example:
<a href=http://cvsbook.red-bean.com/ onmousedown="return
clk(this,'res',4)" target=nw>A <font
color=CC0033>CVS</font> Book</a><br>
版权声明:可以转载,转载时请务必以超链接形式标明文章 Google悄悄跟踪用户点击:有可能根据搜索结果点击率改善排名 的原始出处和作者信息及本版权声明。
http://www.chedong.com/blog/archives/000397.html
Comments
按这种理由,是不是有可能存在虚拟点击作弊现象,正如人们常说的
click popularity
由: toilet seat 发表于 2004年06月30日 下午03时55分
其实这有点Bayesian Network的味道
其实这对于用户来说是件好事,优化过的放在前面便于浏览
由: malin 发表于 2004年07月07日 上午09时24分
我想知道Javascript如何获得屏幕的分辨率??
由: dave 发表于 2004年12月06日 上午10时43分
这段代码写的很健壮啊.
由: blogtravel 发表于 2006年03月24日 早上07时37分