正如问题所述,我正在试图弄清楚谷歌如何跟踪搜索结果的点击次数。查看源时,您会发现以下内容:
<a href="http://www.yahoo.com/" class=l onmousedown="return rwt(this,'','','res','1','AFQjCNG7Ba-stir4109vlLygPQX7QGf8bg','&sig2=Vx5PLxf04C-yJYZTZfvk8w')"><em>Yahoo</em>!</a>
函数rwt
,非常混乱:
windows.rwt=function(b,d,e,g,h,f,i,j){
var a=encodeURIComponent||escape,c=b.href.split("#");
b.href=["/url?sa=t\x26source\x3dweb",d?"&oi="+a(d):"",e?"&cad="+a(e):"","&ct=",a(g),"&cd=",a(h),"&url=",a(c[0]).replace(/\+/g,"%2B"),"&ei=7_C2SbqXBMW0-AbU4OWnCw",f?"&usg="+f:"",i,c[1]?"#"+c[1]:""].join("");
b.onmousedown="";
return true};
所以看起来Google正在将a标记的href更改为/url?...
,我假设它是跟踪的位置。从Firefox中的LiveHeaders看,此页面将浏览器重定向到标签的原始href。
这是否正确,这是跟踪网站链接点击次数的最佳方法,例如广告?
答案 0 :(得分:9)
实际上它正在改变链接的href而不是窗口位置。它设置了b.href,而b指的是链接本身。这是在onmousedown中运行的,因此当您释放鼠标并处理单击时,您会神奇地发送到新的href。
任何点击跟踪几乎都归结为将用户发送到相当于Google的/ url?...脚本,计算点击次数,并执行302重定向到真实目的地。
此javascript href替换具有自动过滤掉任何不运行脚本的机器人的优势。缺点是它还过滤掉任何禁用javascript的真人。如果像Google一样,您只关心哪个链接最受您真正的人类用户欢迎,那么效果非常好。您记录的点击次数应该代表真实的人力流量,您可以安全地忽略来自非JavaScript用户的点击,因为他们可能仍然拥有相同的偏好。
大多数广告直接链接到计数网址而没有更换javascript。这意味着您一定会计算链接上的每一次真正点击,但您需要担心过滤机器人的请求,因为他们现在也会看到您的计数网址。
您更喜欢哪种方式取决于您希望跟踪点击次数的原因。
答案 1 :(得分:1)
我认为大多数人都希望通过某种跟踪系统点击广告,所以我不应该过多关注这个特定的javascript实现 - 尽可能确保用户看到正确的链接在浏览器状态栏中,各种其他有趣的信息(搜索术语,当时结果集上的位置,您是谁等)被发送(没有您意识到)并且如果JavaScript是链接仍然有效禁用。
一般情况下,是的,指导用户浏览一些跟踪页面,其中包含他们点击的广告的ID,并且可能还有一些其他来源指示是明智的 - 这样您就不会依赖其他机制(例如作为JS事件处理程序)跟踪链接的点击次数,这肯定是我使用过的大多数广告系统的工作方式。