2012-04-24 140 views
2

的是有一个很好的理由,为什么我不应该与boomerang做到这一点:随机化使用Boomerang.js

<script type="text/javascript"> 
     if (Math.random() < 0.005) {//one time in 200 
      document.write(
       '<scr' + 'ipt src="/scripts/boomerang.js" type="text/javascript"></scr' + 'ipt>' + 
        '<scr' + 'ipt type="text/javascript">BOOMR.init({'+ 
         'user_ip: "'+ '<%= Request.UserHostAddress %>' +'",'+ 
         'site_domain: "' + '<%= //TODO from config%>' + '",' + 
         'beacon_url: "/Handlers/Boomerang.ashx",'+ 
         'BW: {base_url: "/Resources/images/Boomerang/"}' 
        +'});</scr' + 'ipt>' 
      ); 
     } 
     else if (Math.random() < 0.1) {//one time in ten 
      document.write(
       '<scr' + 'ipt src="/scripts/boomerang.js" type="text/javascript"></scr' + 'ipt>' + 
        '<scr' + 'ipt type="text/javascript">BOOMR.init({'+ 
         'user_ip: "'+ '<%= Request.UserHostAddress %>' +'",'+ 
         'site_domain: "' + '<%= //TODO from config%>' + '",' + 
         'beacon_url: "/Handlers/Boomerang.ashx",'+ 
         'BW : { enabled : false }'+ 
        '});</scr' + 'ipt>' 
      ); 
     } 
</script> 

威尔使得不再返回的时机?

我们不太在意使用多页方法获得结果:我们满足于只接收来自计时API的结果。

回答

2

为什么不直接包括在所有页飞去,只修改通话根据您的采样率初始化?事情是这样的:

<script src="/scripts/boomerang.js"></script> 
<script> 
    var rand=Math.random(), test=""; 
    if(rand < 0.05) {  // one time in 200 
     test="BW"; 
    } 
    else if(rand < 0.1) { // 19 times in 200 
     test="NOBW"; 
    } 
    if(test) { 
     BOOMR.addVar({ 
      test: test 
     }).init({ 
      user_ip: "<%= Request.UserHostAddress %>", 
      site_domain: "<%= //TODO from config%>", 
      beacon_url: "/Handlers/Boomerang.ashx", 
      BW: { 
       base_url: (test == "BW" ? "/Resources/images/Boomerang/" : ""), 
       enabled: (test == "NOBW" ? false : true) 
      } 
     }); 
    } 
</script> 

这个脚本,你的版本之间的主要区别是addVar({ test: test })加告诉使用哪个版本的灯塔收藏家。如果它有助于调试,您可能还想传入rand的值。

我已经测量了从单个linode盒中为全球数百万用户加载回飞棒所需的时间,中位加载时间为68ms(我们已经通过浏览器将脚本缓存了7天)。我们也会异步加载脚本,所以如果您发现自旋影响页面加载时间,您可能需要考虑这一点。

+0

谢谢,我用这个杠杆来改变需求,并且会按照你的建议进行操作。 – penguat 2012-04-25 15:24:10

0

你为什么不上@bluesmoon问什么是随机化的最好办法是...肯定他不会咬;-)

+0

我想他可能会有恐怖,但我已经让他看看这个问题。 – penguat 2012-04-24 14:28:51