Google Analytics Content Experiments A / B testuje kod po stronie serwera bez odświeżania strony
Zasadniczo chcemy przetestować A / B 2 różne nagłówki układu strony. Istnieją pewne różnice strukturalne (nie chodzi tylko o wyłączenie CSS). Nie chcemy też czekać, aż Google odwróci monetę, aby określić, którą odmianę powinien zobaczyć gość; zamiast tego chcemy wybrać wersję po stronie serwera i uniknąć przekierowania strony.
Poniższy kod robi to, co miałem nadzieję; wygenerowany plik cookie UTMX wygląda identycznie jak ten, który wygeneruje javascript dostarczony przez Google, jeśli nie pominę go z tagu head.
Kod PHP po stronie serwera:
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;
}
Dlaczego więc mój panel nawigacyjny Eksperymentów treści Google Analytics nie pokazuje żadnych użytkowników mojego eksperymentu? Czy ustawiłem plik cookie utmx w sposób niedoskonały? Czy poza tym, że GACE szuka czegoś innego niż ustawienie pliku cookie UTMX?