GWO即google website optimizer,是一款用来给网页做A/B testing的工具。在我的一个项目里经常会用到这个工具来选择转化率最高的广告,然而在使用时我曾碰到一个很棘手的问题——抓不到数据。
这个问题通常只会在一种情况下发生,离开当前页面前(提交表单或点击链接时)计算转化。在抓耳挠腮了数周时间依然百思不得其解之后,我终于在一个google员工的博客里找到了答案。
gwo的原理和google analytics类似,通过向google服务器请求一个图片来发送数据。然而当浏览器获得一个图片请求时,它并不是马上就会发送这个请求,而是会将这个请求放入一个队列,等上一段时间(可能就是几毫秒)后再请求。问题就出在这关键的几毫秒时间里!如果浏览器在这段时间里得知它需要加载一个新的页面,那么它会将队列里老页面残余的请求直接丢掉!这就是我的实验为何没有抓到数据的原因,我的图片请求直接被浏览器丢弃了!
问题终于找到了,那么该怎么解决呢?这篇博客的作者给出了一个很简单的办法,即等上100毫秒再请求新页面。
1 2 3 4 5 6 7 8 9 10 11 |
|
100毫秒的时间足够浏览器将队列里的图片请求发出去,又不会让人感到任何等待时间上的差异,很好的解决了这个问题。我的实验终于能正常的抓到数据了,困扰我几周的难题终于搞定。