Эксперименты по контенту Google Analytics A / B тестирование серверного кода без обновления страницы
По сути, мы хотим протестировать 2 разных заголовка макета страницы. Есть некоторые структурные различия (это не просто переключение CSS). Мы также не хотим ждать, пока Google подбросит монету, чтобы определить, какой вариант должен увидеть посетитель; вместо этого мы хотим выбрать вариант на стороне сервера и избежать перенаправления страницы.
Код ниже делает то, что я надеялся; генерируемый им файл cookie UTMX выглядит идентично тому, который генерировал бы предоставленный Google javascript, если бы я не пропустил его в теге head.
Серверный 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 не отображаются посетители моего эксперимента? Я неправильно установил cookie utmx? Кроме установки файла cookie UTMX, GACE ищет что-то еще?