4

基本的に、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 は他に何かを探していますか?

4

2 に答える 2

3

過去 2 か月間、まったく異なるアプローチを使用してきました。Amazon ロードバランサー (AWS ELB) と Google アナリティクス (Content Experiments ではありません) です。(上記の私のコメントを参照してください。)期待どおり、トランクへのマージの経験が大幅に改善されました。

_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].

明らかな欠点は、Google が計算を行わないこと (バリエーションがオリジナルより統計的に有意に優れているかどうかを教えてくれること) と、一度に複数の実験を簡単に実行できないことです。また、多くのバリエーションを持つこともできません (必要以上に負荷分散されたインスタンスを追加する必要があります)。

しかし、私たちの目的 (たとえば、ページを更新しないことがいかに重要であるかを考えると) では、他のアプローチよりもうまく機能しています。

于 2012-10-18T14:26:45.070 に答える
0

@danmaz74 は、クライアント側でも Google アナリティクスのみを使用して、これに対して興味深いアプローチを取りました。

https://github.com/danmaz74/ABalytics

于 2012-11-29T20:22:14.797 に答える