4

正如问题所述,我试图弄清楚谷歌如何跟踪搜索结果的点击。查看源代码时,您会发现以下内容:

 <a href="http://www.yahoo.com/" class=l onmousedown="return rwt(this,'','','res','1','AFQjCNG7Ba-stir4109vlLygPQX7QGf8bg','&amp;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};

所以看起来谷歌正在改变/url?...我假设的 a 标签的 href 是他们跟踪的地方。从 Firefox 中的 LiveHeaders 来看,此页面似乎正在将浏览器重定向到 a 标签的原始 href。

这是正确的吗?这是跟踪您网站上的链接(例如广告)点击的最佳方法吗?

4

2 回答 2

9

它实际上是在更改链接的 href 而不是窗口位置。它正在设置 b.href,而 b 指的是链接本身。这在 onmousedown 中运行,因此当您释放鼠标并处理单击时,您会神奇地被发送到新的 href。

任何点击跟踪几乎都归结为将用户发送到相当于 Google 的 /url?... 脚本,计算点击次数,并执行 302 重定向到真实目的地。

这种 javascript href 替换具有自动过滤掉任何不运行脚本的机器人的优点。缺点是它还会过滤掉任何禁用 javascript 的真实人。如果像 Google 一样,您只关心哪个链接最受您的真实人类用户欢迎,那么效果很好。您记录的点击应该代表真实的人类流量,您可以放心地忽略来自非 JavaScript 用户的点击,因为他们可能有相同的偏好。

大多数广告只是直接链接到计数 URL,没有 javascript 替换。这意味着您肯定会计算链接上的每一次实际点击,但您需要担心过滤掉来自机器人的请求,因为它们现在也会看到您的计数 URL。

您更喜欢哪个实际上取决于您要跟踪点击的原因。

于 2009-03-10T23:56:17.927 回答
1

我认为大多数人希望广告通过某种跟踪系统点击,所以我不应该太担心遵循这个特定的 javascript 实现 - 尽可能多地确保用户在浏览器中看到正确的链接状态栏,各种其他有趣的信息(搜索词,当时在结果集上的位置,你是谁等)被发送(你没有意识到),并且如果 JavaScript 被禁用,链接仍然有效。

一般来说,是的,使用他们点击的广告的 ID 引导用户通过一些跟踪页面,并且可能一些额外的指示他们来自哪里是明智的 - 这样你就不会依赖其他机制(例如 JS 事件处理程序)来跟踪链接的点击,这当然是我使用过的大多数广告系统的工作方式。

于 2009-03-10T23:54:50.753 回答