一般的な概念
Kameleoon Web サーバーモジュールは、低レベルのコンポーネント(最適なパフォーマンスのため C 言語で書かれています)で、HTTP リクエストが A/B 実験をトリガーするたびにバリエーション割り当てを実行します。その後、(内部的に)選択されたバリエーションに対応する別の URL にリクエストをリダイレクトします。 たとえば、訪問者がhttps://www.shop.com/plasma-tvs.html ページにアクセスし、そのカテゴリページで 3 つのバリエーションを持つ実験が実行されている場合、Web サーバーは HTTP リクエストを内部的に https://www.shop.com/plasma-tvs.html(オリジナル版)、https://www.shop.com/plasma-tvs.html?version=B(最初のバリエーション)、または https://www.shop.com/plasma-tvs.html?version=C(2 番目のバリエーション)のいずれかにリダイレクトします。次に、これらのページのキャッシュバージョンを返します(TTL 値が期限切れになった場合は、新しいページを生成するためアプリケーションサーバーに呼び出しを渡します)。
A/B/C テストはエンドユーザーには完全に透過的です。訪問者はブラウザで正規 URL の https://www.shop.com/plasma-tvs.html のみを目にします。
実験のセットアップと設定(ターゲットおよびリダイレクト URL の設定、たとえば ?version=B パラメーターを追加する等)は Kameleoon プラットフォームで完結します。Web サーバーモジュールは Kameleoon サーバーおよびデータベースから設定を定期的に更新します。A/B テストの計画とデプロイを便利に行うため、テストの開始、一時停止、停止、配信比率の変更、設定の変更など、通常のすべての Kameleoon 機能を利用できます。
Web 上のクライアント・サーバーモデルの技術的制約により、Web サーバーレベルで実験ターゲティングを設定する唯一の方法は、URL 条件を使用することです。同様に、Web サーバーレベルでバリエーションを設定するには、Kameleoon で常に URL リダイレクトを使用してください。フロントエンド(ブラウザ)リダイレクトに関連する負のパフォーマンスおよび SEO への影響は、Web サーバーリダイレクトでは問題になりません。代わりに、Web サーバーの内部リダイレクトは完全に安全で、Web サーバー内部で処理される(高速)ため、検索エンジンクローラーに対して透過的であり、良い実践とみなされます。
Web サーバー A/B 実験の運用
- Kameleoon アプリで コードエディター を使用して新しい A/B 実験を作成します。
- Kameleoon で、実験に実装したいバリエーションを作成します。各バリエーションについて、URL リダイレクトオプションを選択し、希望する新しい URL を入力します。
- 1 つ以上の URL ターゲティング条件を追加して、実験のターゲティングを選択します。Web サーバー上の一致した URL は、リクエストの Web サーバーモジュールをトリガーし、内部リダイレクトを有効化します。モジュールは、一致したリクエストに対して kameleoonVisitorCode という名前の(ファーストパーティ)Cookie を保存します。
サーバーサイドでの潜在的な処理(トラッキング、バリエーションの実装)を支援するため、Nginx の設定ファイル(
kameleoon_headers on;)でオプションが有効化されている場合、Web サーバーは Kameleoon 実験に一致するすべてのリクエストに HTTP ヘッダーを追加します。1 つ目のヘッダーは kameleoon-experiment という名前で、その内容は experimentID=variationID の形式となり、experimentID はトリガーされた実験 ID、variationID は割り当てられたバリエーションの ID を表します。2 つ目のヘッダーは kameleoon-redirection という名前で、その内容は variationID=redirectionURL の形式となり、variationID は割り当てられたバリエーションの ID、redirectionURL はリダイレクトに使用されるパラメーターを表します。サポートされているプラットフォーム
Nginx サーバーモジュール
このモジュールは Nginx の 1.18.0、1.20.2、1.21.4 をサポートしています。Docker パッケージはこちらから入手できます。 最新バージョンのモジュールは Nginx の 1.27.1 をサポートしています。Docker パッケージはこちらから入手できます。このモジュールは x86_64 アーキテクチャでテストされています。
Python スクリプトも並行してインストール(CRON ジョブを介して定期的に起動する必要があります。30 分または 60 分間隔を推奨)する必要があります。スクリプトの使用には、Automation API のクレデンシャル(OAuth 2.0 認証用)が必要です。詳細については、API クレデンシャル の記事をご覧ください。
Apache HTTPd サーバーモジュール(非推奨)
Apache httpd モジュールは バージョン 2.4 をサポートしており、x86_64 CPU アーキテクチャの CentOS ディストリビューションでテストされています。Python スクリプトも並行してインストール(CRON ジョブを介して定期的に起動する必要があります。30 分または 60 分間隔を推奨)する必要があります。このスクリプトは、Kameleoon モジュールに必要な生成済み Nginx 設定ファイルをリフレッシュまたは更新します。スクリプトは設定ファイルのリロードも行います。