3

Play フレームワークを使用したA/B または分割テストの優れた戦略に興味があります。

当然の選択は Google ウェブサイト オプティマイザーを使用することですが、次のいくつかの理由から使用したくありません。

  • プレゼンテーション層でのみテストできます
  • (クリックやコンバージョンなどのバイナリ イベントではなく)収益などに基づいてテストするのは難しい
  • テンプレートを Javascript コードで台無しにする必要がある
  • テストは離散的でなければなりませんが、私は常に新しいバリエーションをテストするのが好きです

何か案は?

4

3 に答える 3

3

コントローラーに使用するバージョンを決定させたい場合は、次のように2つの異なるテンプレートから選択することで(少なくともScalaでは)これを行うことができます。

if (mode == "A")
  html.showA(product)
else
  html.showB(product)

コントローラでこれを行うと、どのユーザーがどのバージョンのページを受信したかを追跡できるという利点があり、その後のログインごとに同じページが表示されます。

編集:2つの異なるテンプレートが必要であることに言及するのを忘れましたshowA.scala.htmlshowB.scala.htmlこの場合は。

于 2011-11-10T10:35:45.470 に答える
0

Google ウェブサイト オプティマイザーは良い選択だと思いますが、次の方法で独自のシステムを構築できると思います。

  • セッションのランダムな値 (テスト シードとしましょう) または決定したパラメーター (収益など) に基づく値を生成する @Before メソッド
  • ビジネス層のシードの値に関するいくつかのロジック
  • シードの値に応じて、タグがテキストまたは別のテキスト (または画像など) を表示する UI パーツのタグ
  • セッションにリンクされた情報を格納するためのデータベース内のテーブル (ユーザーがサイトにアクセスしたときの動きを追跡するため)
  • テーブル内のデータに関するいくつかのレポート (推奨できるのはJasperまたはBirtのみで、他では機能していません)

しかし、それはかなりの作業になります。

正直なところ、既存のシステム (Google Web サイト) を使用する方が良いと思います。カスタム A/B テストの環境設定に費やす時間は、製品を開発していない時間だと考えてください。A/B はコンバージョンを増やすのに適していますが、最適な選択を見つけるには何度も繰り返す必要があります。そのため、他のことに多くの時間を費やすほど、より多くのお金を失う可能性があります。

実際、Google のツールに関するあなたの不満から:

  • A/B テストの主なポイントはプレゼンテーション レイヤーであると言わざるを得ません。それは、ユーザーが見るものであり、ユーザーの行動を促進するものだからです。マージソートの実装が優れているかどうかは気にしません。ロゴがかわいいかどうかは気にします。
  • 何をするにしても、テンプレートが乱雑になります。そうしないと、表示するバージョンごとに 1 つのページの「クローン」を多数作成する必要があります。いずれにせよ、それは「いい」コードではありません。
  • 何かを決定する前に、有効な数のサンプルを取得するために、しばらくテストを実行する必要があります。つまり、オプションを毎日変更することはできません (サイトに毎日何千人ものユーザーがいる場合を除きます)。そうしないと、統計的に有意なデータが得られません。

あなたの4つのポイントから、3つは議論の余地があると思います。最初に既存のツールを使用してパフォーマンスを向上させることをお勧めします。最適な変換ができたら、他のパラメーターに基づいて追加のカスタム作業を行うことを検討できます。


于 2011-02-24T15:03:06.587 に答える