実験やフィーチャーフラグを実行するには、優先するフレームワークに対応する クライアントサイド SDK を使用してください。Feature Experimentation モジュールが利用できない場合や SDK のインストールが望ましくない場合は、本記事で説明する回避策に従って Activation API を使用して実験を実行してください。
コンテキスト
モダンな JavaScript クライアントサイドフレームワーク(React、Angular、Vue など)は、DOM ツリーと要素を管理します(しばしば仮想 DOM を実装します)。この内部管理により、DOM 操作がフレームワークの動作と競合するため、特定のフレームワーク外でクライアントサイドテストを実装することが困難になります。要素やロジックに対する外部からの変更は、しばしば上書きされます。 DOM Mutation Observer を使用するなど、これらの問題への回避策はありますが、外部コードはこれらを注意深く扱う必要があります。侵襲的な外部アプローチを使用するのではなく、既存の React、Angular、または Vue のコードベースに直接バリエーションを実装し、実験をプログラムでトリガーします。このロジックは SDK の使用法を反映しています。Kameleoon のフロントエンドエンジンは JavaScript SDK と同等の役割を果たします。本記事で説明する手法では、実験やパーソナライゼーションを開始するために JS ソースコードの再デプロイが必要です。このアプローチはコーディングを簡素化しますが、IT デプロイメントなしでローンチを可能にする標準的な Kameleoon の方法論の柔軟性は欠けます。リポジトリへのアクセス権を持つ開発者が実装を行う必要があります。JS 実験の外部実装(Kameleoon のインジェクトされたコード経由)または両方のアプローチの組み合わせも引き続き可能です。
インストールプロセスは標準的な Web サイトと同じです。Kameleoon エンジンと Activation API を含む外部 JavaScript アプリケーションファイルを追加します。
実験の作成と設定
手順は標準の A/B 実験(バリエーションの作成、ゴールの選択、解析統合)と同じです。以下の要件に注意してください:- コードエディタを使用して実験を作成します。
- API 経由で手動で実験をトリガーするには、Explicit trigger ターゲティング条件を選択します。
ほとんどの場合、バリエーションの JS コードは空のままで構いません。ただし、バリエーションに JSON データを含めることで、アプリケーションコードでパラメータを取得することは有用です。これらのパラメータは、Kameleoon インターフェースで更新でき、再デプロイは不要です。
実験をトリガーするためのサンプルコード
以下のコード例は、実験をトリガーし、現在のユーザーに関連付けられたバリエーションを取得する方法を示しています。Kameleoon.API.Experiments.getAll() は、インターフェース経由でローンチされていない実験を含みません。このセットアップにより、コードデプロイメントの準備と実験のローンチを独立して行うことができます。通常、IT チームはデプロイメントを計画し、プロダクトオーナーはローンチをスケジュールします。