基本的に、2 つの異なるページ レイアウト ヘッダーの A/B テストを行います。いくつかの構造的な違いがあります (CSS を切り替えるだけではありません)。また、Google がコインを投げて訪問者にどのバリエーションを表示するかを決定するのを待ちたくありません。代わりに、サーバー側のバリエーションを選択して、ページのリダイレクトを回避したいと考えています。
以下のコードは、私が望んでいたことを実行します。それが生成する UTMX Cookie は、head タグから省略しなかった場合に Google 提供の JavaScript が生成するものと同じに見えます。
サーバー側の 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 は他に何かを探していますか?