无需刷新页面的 Google Analytics Content Experiment A/B 测试服务器端代码 [英] Google Analytics Content Experiments A/B testing server-side code without page refresh

查看:18
本文介绍了无需刷新页面的 Google Analytics Content Experiment A/B 测试服务器端代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

基本上,我们要对 2 个不同的页面布局标题进行 A/B 测试.有一些结构上的差异(不仅仅是切换 CSS).我们也不想等待谷歌抛硬币来确定访问者应该看到哪种变化;相反,我们希望选择服务器端的变体并避免页面重定向.

Basically, we want to A/B test 2 different page layout headers. There are some structural differences (it's not just switching out the CSS). We also don't want to wait for Google to flip the coin to determine which variation the visitor should see; instead, we want to choose the variation server-side and avoid a page redirect.

下面的代码做了我希望的事情;它生成的 UTMX cookie 看起来与 Google 提供的 javascript 生成的 cookie 相同,如果我没有从 head 标签中省略它.

The code below does what I hoped it would; the UTMX cookie it generates looks identical to the one that the Google-supplied javascript would generate if I didn't omit it from the head tag.

服务端PHP代码:

public function setUtmxCookie($cookieName, $experimentsString)
{
    $domainHash = $this->getDomainHash($_SERVER['SERVER_NAME']);
    $cookieVal = $domainHash . $experimentsString;
    $expire = time() + 60 * 60 * 24 * 30;
    $domain = '.' . $_SERVER['SERVER_NAME'];
    setrawcookie($cookieName, $cookieVal, $expire, '/', $domain);
}

private function getExperimentsFromUtmxCookie($cookieName)
{
    if (isset($_COOKIE[$cookieName])) {
        $cookieVal = $_COOKIE[$cookieName];
        $experimentsArray = array();
        $experimentMatches = preg_split('/./', $cookieVal);
        $domainHash = array_shift($experimentMatches); //remove the first item.  All that will remain in $experimentMatches is an array of experimentIds with their combos.
        foreach ($experimentMatches as $m) {
            $segments = preg_split('/:/', $m);
            $experimentsArray[$segments[0]] = $segments[1];
        }
        return $experimentsArray;
    }
    return array();
}

private function getExperimentsString($cookieName, $experimentId, $variation)
{
    $experiments = $this->getExperimentsFromUtmxCookie($cookieName);
    $experiments[$experimentId] = $variation;
    $experimentsString = '';
    foreach ($experiments as $key => $val) {
        $experimentsString .= '.' . $key . ':' . $val;
    }
    return $experimentsString;
}

为什么我的 Google Analytics Content Experiments 仪表板没有显示我的实验的任何访问者?我是否不完美地设置了 utmx cookie?除了设置 UTMX cookie 之外,GACE 还在寻找其他什么吗?

Why isn't my Google Analytics Content Experiments dashboard showing any visitors to my experiment, then? Did I set the utmx cookie imperfectly? Other than setting the UTMX cookie, is GACE looking for anything else?

推荐答案

过去几个月我们一直在使用一种完全不同的方法:Amazon 负载均衡器 (AWS ELB) 加上 Google Analytics(不是内容实验).(请参阅我上面的评论.)正如我们所希望的,它极大地改善了我们合并回主干的体验.

We've been using a totally different approach for the past couple months: Amazon load-balancers (AWS ELB) plus Google Analytics (not Content Experiments). (See my comment above.) As we hoped, it has greatly improved our experience with merging back to trunk.

_gaq.push(['_setCustomVar', 2, varName, varValue, 2]);//https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingCustomVariables
_gaq.push(['_trackPageview']);//This must come AFTER the setCustomVar
//varName should be whatever you want to call the experiment
//varValue should be something like "original" for the original and "variation" for the variation.  We just use "trunk" and [name of variation branch].

明显的缺点是 Google 没有为我们做数学计算(告诉我们变化在统计上是否明显优于原始版本),而且我们不能轻松地同时运行多个实验.我们也不能有很多变化(我们需要添加比我们想要的更多的负载平衡实例).

Obvious drawbacks are that Google doesn't do the math for us (telling us whether the variation has statistically significantly outperformed the original) and that we can't easily run multiple experiments at once. We also wouldn't be able to have many variations (we'd need to add more load-balanced instances than we'd want).

但就我们的目的而言(例如,考虑到不刷新页面对我们来说是多么重要),它比其他方法更有效.

But for our purposes (e.g. given how important it is to us not to have a page refresh), it has worked better than other approaches.

这篇关于无需刷新页面的 Google Analytics Content Experiment A/B 测试服务器端代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆