自动跳转页面的跟踪

Posted on 十月 30, 2009
Filed Under 分析工具 | Leave a Comment

原创文章,转载请注明: 转载自网站分析 Web Analytics
本文链接地址: 自动跳转页面的跟踪

由于种种原因,在网站中,存在一些自动跳转的页面。这类页面主要是程序方面的处理,并不会有真正的页面在浏览器中显示,然后就跳转到目标页面了。在某些情况下,这些页面也需要被跟踪。

比如,在上一篇文章中提到的,电子商务网站生成订单以后,需要跳转到一个第三方平台去支付。用户选择了商品,输入地址等信息,最后确认订单。这时,会有一个不会在浏览器中显示的自动重定向页面,这里会真正的处理订单的生成,并且生成重定向的URL,最后自动通过服务端重定向到第三方的支付平台,请用户支付。

在这种情况下,如果网站希望能够跟踪到订单生成的情况,应该如何做呢?

首先想到的最简单的是,在订单确认的页面中的确认按钮上增加onclick方法,来监听这个按钮的点击。只要用户点击了按钮,就使用分析工具的函数生成一个虚拟的页面,这个页面来代表订单的生成。不过,这种方式,在我们遇到的这个问题中不能成立。因为,用户点击确认按钮的时候,并不能保证订单就一定生成了。点击确认按钮提交到服务器后,服务端程序还要对用户输入的信息进行一些处理和检查,然后才生成订单,这中间可能会有错误出现导致不能生成订单。如果采用这种方式,统计到的订单数会比实际的大许多。

那我们改进一下。我们将中间的自动重定向页面调整一下,不再使用服务端的重定向,而是返回一个HTML页面,在页面中加入跟踪的代码,在跟踪的代码后面放上Javascript的跳转代码。因为,服务端只有在程序执行结束以后才返回页面,在页面上放入代码,可以保证,在页面被跟踪到时,订单确确实实的生成了。

当看报表的时候,发现跟踪到的订单生成的数量非常少,比实际生成的数量少了很多。为什么会这样呢?

还记得在《脚本型网站分析工具工作原理》中提到的吗?脚本型网站分析工具,工作的时候,是把采集到的数据整理到一个图片请求的链接的参数里,通过请求这个位于数据收集服务器上的图片,将数据发送出去的。那么,跳转的代码虽然放在了跟踪的代码的后面,但跟踪代码执行完成的时候,并不是把数据已经发送完了,而只是生成了一个图片的对象,而在这个对象还没有被加载。那么浏览器会一边继续执行Javascript的代码,一边加载这个图片。在这种情况下,有非常大的可能,在图片还没来得及请求的时候,跳转的Javascript就被执行了。也就是说,跟踪的数据压根就没来得及发送出去。

问题已经找到,如何来解决呢?也许你会说,跳转前增加一个延时,让图片有足够的时间被请求。其实问题又来了,这个延时多长的时间合适呢?0.1秒?会不会太短,万一有的客户电脑慢那个图片还没请求出去怎么办?那2秒?会不会太长了,让用户傻等2秒的时间会不会体验太差,特别是在要让他们掏腰包的时候,多1秒等待,他们就多了1秒来改变主意。

有没有办法,知道什么时候图片的请求已经发送了,然后在这个时候立刻跳转到支付平台呢?这样就可以跟踪到这个页面,又能不耽误时间。

刚才已经说过,在跟踪代码执行完的时候,会新创建一个图片的对象。这个图片的对象,在这个时刻还没有请求,更不可能加载,我们只要能够找到这个对象就能够通过回调来知道什么时候这个请求完成了,那这个时候就可以跳转了。步骤如下:

1、找到那个图片对象。跟踪代码执行完后,紧接着在HTML的所有图片对象中遍历,找到src是指向分析工具的数据收集服务器的图片。比如,Google Analytics的服务器是www.google-analytics.com。

2、调用这个图片的onLoad(),注册一个回调函数。

3、在回调函数中,执行Javascript跳转。

以上是我的解决方法,如果你也遇到类似的问题,赶紧试试吧。如果大家觉得我哪里写错了,请不吝赐教哦!

您也许还对以下内容有兴趣:

评论

Leave a Reply