基本上,我们希望A / B测试2个不同的页面布局标题。存在一些结构差异(它不仅仅是切换CSS)。我们也不想等待谷歌翻转硬币来确定访问者应该看到的变化;相反,我们希望选择变体服务器端并避免页面重定向。
下面的代码符合我的希望;如果我没有从头标记中省略它,那么它生成的UTMX cookie看起来与Google提供的javascript会生成的cookie相同。
服务器端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内容实验信息中心没有显示我的实验的所有访问者呢?我是否将utmx cookie设置得不完美?除了设置UTMX cookie之外,GACE还在寻找其他什么吗?
答案 0 :(得分:3)
过去几个月我们一直采用完全不同的方法:亚马逊负载均衡器(AWS ELB)和Google Analytics(不是内容实验)。 (参见上面的评论。)正如我们所希望的那样,它大大改善了我们合并回主干的经验。
_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].
显而易见的缺点是谷歌没有为我们做数学计算(告诉我们变异在统计上是否明显优于原始数据),并且我们不能轻易地同时进行多个实验。我们也不能有很多变化(我们需要添加比我们想要的更多负载平衡的实例)。
但是出于我们的目的(例如,考虑到我们不重新刷新页面对我们有多重要),它的效果比其他方法更好。
答案 1 :(得分:0)
@ danmaz74在客户端使用Google Analytics也采用了一种有趣的方法: