1

私は自分のサイトで A/B テストを行っていますが、さまざまな理由から、ページ読み込みの 1% で特定のコンテンツを表示する必要があります。つまり、ページが 100 回読み込まれた場合、私の特別なコンテンツは 1 回表示されているはずです。

PHPを使用すると、これを行うための最良の方法は何ですか?

rand() 関数を使用して、次のようなことができますif (rand(0,1)>=0.99){//Show content}

しかし、より良い、またはより信頼できる方法はありますか?

4

3 に答える 3

1

実際には、PHP についてではなく、それを実行するための戦略についてです。

ビューの 1% に正確に表示する必要がある場合は、Redis または Memcached またはデータベースでカウンターを使用できます。- ビューの数を正確に制御することが目的の場合に適しています。-注。Redis または Mamcached を使用している場合、サーバーまたはサービスの再起動後にカウンターがリセットされます。

rand() で提案したものは同じように機能しますが、1% 近くになりますが、正確には 1% ではありません。実際、長期的には 1% に近づくでしょう。- redis/memcached/database へのアクセスを必要としないため高速です。- 正確には 100 ビューごとではなく、よりランダムに表示されます。

于 2013-05-16T14:36:41.913 に答える
0

次のステートメントを考えると、私はランドソリューションには行きません。

つまり、ページが 100 回読み込まれた場合、私の特別なコンテンツは 1 回表示されているはずです。

rand(0,100) から 99 を取得できない可能性があります。

1 つの列を持つ非常に単純なデータベース テーブルを作成し、counterヒットごとに更新します。カウンターが 100 の倍数に達するたびにコードを含めます。

于 2013-05-16T14:38:24.597 に答える
0

私が開発したサイトでこのようなことをしたところ、完全に機能しました。PHP はサーバー側であるため、信頼性はほぼ同じです。私はこのようにします:

<?php if (mt_rand(1, 100) === 100): ?>

// pure html content here

<?php endif ?>

編集:

確率の本質は、十分な大きさのサンプルmt_rand(1, 100)が与えられた場合、探している数の一致が 1% の確率で生成されることを意味します。mersenne twister派手なデータベースやフラット ファイルを作成してオッズを強制することもできますが、オッズを正しく生成するを信頼する必要があるだけなので、これは不要です。

于 2013-05-16T14:34:40.647 に答える