·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设问答 >> 用Google Analytics 做A/B 测试

用Google Analytics 做A/B 测试

作者:佚名      网站建设问答编辑:admin      更新时间:2022-07-23

最近正在给一个电子商务的客户做条幅广告转化率的测试,但我们发现数据有问题:Website Optimizer 工具不能对部分消费者的具体行为测试进行设置。我们需要知道有多少人点击了测试广告,以及有多少发生了购买。

我们的解决方案是添加一些新的代码,来确定谁看到了什么,让 Google Analytics 里的群体来实现这一方面数据的监控。通过这种方法我们能够更全面的了解任何给定测试,更准确地确定投资回报率。

A/B测试

添加代码之前我们先回顾一下测试样本的背景。你运营的是一家销售耳机的网站,现在想要测试下某新款高端耳机的两版本的首页。你用A/B实验来换掉了原先的首页,重要的是获得尽可能多的收入。

将消费者体验简化后看起来会是像这样的路径:

B 1 用 Google Analytics 做 A/B 测试

如果我们只使用 Website Optimizer工具就会有问题,从哪一点到哪算是转化呢?在 Website Optimizer 中我们只能选择一个A点和一个B点,我们无法跟踪整个渠道中客户的路径。这就是我们努力要克服的障碍。如果只是单一点到点的的跟踪,我们只能选择以下项目之一来衡量:

访客是否有点击条幅广告?

访客是否添加产品到购物车?

访客是否发生购买行为?

但事实上没有哪个一个单一的转化能说明全部问题,我们需要更多信息。

开始动手

Website Optimizer 确实是跟踪任意一个路径的绝好工具,但它无法追踪所有,不过幸好 GA 可以。我们的目标则是建立一个可以跟踪所有路径的易用系统,帮助我们确定会在哪个环节流失客户。

我将我们使用的PHP代码一并给了出来,对你也许会有些帮助。如果你对编码工作没什么概念,下面的PHP代码可能会让你有些头疼。简单来说,这段代码就是起到了以下作用:

B 2 用 Google Analytics 做 A/B 测试

我们是要确保,如果用户回访时A/B测试仍在继续进行的话,他们能有和上次访问相同的体验。

class SplitTest
{
public $strSelected = “”;
public function __construct($strCookie, $arrShuffle, $strOverride, $datCookieAge=null)
{
$datCookieAge = empty($datCookieAge) ? time()+60*60*24*7 : $datCookieAge;
// Code for segmenting to track in Analytics
$strSelected = sanitizeInput($strOverride);
$strSelected = isset($_COOKIE[$strCookie]) && empty($strSelected) ? $_COOKIE[$strCookie] : $strSelected;
// If still empty, randomize it.
if (empty($strSelected))
{
shuffle($arrShuffle);
$strSelected = $arrShuffle[0];
}
if (!in_array($strSelected, $arrShuffle))
{
$strSelected = $arrShuffle[0];
}
$this->strSelected = $strSelected;
setcookie($strCookie, $strSelected, $datCookieAge);
}
}

你会需要调用以下代码:

<?
$arrShuffle = array(“layout1″, “layout2″);
$SplitTest = new SplitTest(“layoutTestName”, $arrShuffle, “variableName”);
$strWhichVersionToShow = $SplitTest->strSelected;
?>
<script language=”javascript”>
pageTracker._setVar(‘<?= $strWhichVersionToShow ?>’);
</script>
<?
if ($strWhichVersionToShow == “layout1″)
{
// Show the first layout here
}
elseif ($strWhichVersionToShow == “layout2″)
{
// Show the second layout here
}
?>