- 構造化コンテンツで高度なノーコード実験を実行できます。
- サーバーサイドでの即時バケット割り当てとレイテンシなしで、ちらつき効果を排除できます。
- 実験における開発者リソースへの依存を減らせます。
- Contentful で実験を構築するために必要な手作業を減らし、Kameleoon の強力な実験エンジンと分析機能を使用して実験のパフォーマンスを測定できます。
考慮事項
この統合を使用する際は、以下の点に注意してください:- この統合は機能実験でのみ使用できます。
- Kameleoon アカウントで Feature Experimentation ソリューションを有効化する必要があります。
前提条件
この統合を設定するには、Kameleoon から以下の情報が必要です:- ログイン認証情報: Kameleoon のログイン認証情報は、Kameleoon アカウントへのアクセスを可能にするメールアドレスとパスワードの組み合わせです。この統合は、Kameleoon アカウントにログインするために OAuth 認証 を使用します。
- Sitecode: プロジェクトの Sitecode を提供する必要があります。Sitecode の場所については、専用の Kameleoon ドキュメント を参照してください。
インストール
- Contentful アカウントに移動します。
- Apps > Marketplace をクリックし、Kameleoon を検索します。

- Kameleoon アプリをインストールし、アクセスを承認します。
- プロジェクトの Sitecode を選択します。
- 右上隅の Install をクリックします。

使用方法
Kameleoon で機能実験を作成する
新しい機能実験を作成するには:- Kameleoon アカウントにログインします。
- 機能フラグダッシュボード に移動します。
- New feature flag をクリックします。
- 名前、プロジェクト、機能キーを入力します。
- Validate をクリックします。
- Add a rule > Experiment をクリックして実験配信ルールを追加します。
- ルールを自由に設定します。
Contentful で Kameleoon Container エントリを作成する
- Contentful アカウントにログインします。
- Content をクリックします。

- Add Entry > Kameleoon Container をクリックします。
- Entry Name を追加し、Kameleoon experiments ドロップダウンで実験を選択します。
- 選択した実験に関連付けられたバリエーションが、割り当てられたトラフィックの割合とともに自動的に表示されます。

- 各バリエーションに対して、新しいエントリを作成してバリエーションのコンテンツとして使用するには Create entry and link をクリックします。既存のエントリをバリエーションのコンテンツとして使用したい場合は Link an existing entry をクリックします。
コンテンツを公開する準備をする
以下の 4 つのステップを完了すると、Kameleoon Container を公開する準備が整います:
- Select experiment: Kameleoon experiments ドロップダウンで実験を選択することで、このステップを完了できます。
- Add content: 各バリエーションにエントリを関連付けることで、このステップを完了できます。
- Publish variations: このステップは、バリエーションに関連付けられたすべてのエントリが公開されると完了としてマークされます。
- Start experiment: このステップを完了するには、Kameleoon アカウントに移動し、手動トグル を使用して本番環境で機能フラグを ON にします。
フロントエンドとの統合
Kameleoon Container は、Contentful のレスポンスに導入される新しいコンテンツタイプです。これは、テストしたい 2 つ以上の実際の値を指すコンテナです。次に、フロントエンドを Kameleoon および Kameleoon Container と統合する必要があります。フロントエンドが Kameleoon Container エントリを受け入れてプログラム的に処理するように動作を変更するには、開発者の支援が必要です。 Kameleoon Container をプログラム的に処理する作業は一度だけ行う必要があります。その後、Kameleoon Container を処理するために使用したコードは、Contentful から Kameleoon Container エントリを受信するたびに再利用できます。 ここからは、クライアントのセットアップと Kameleoon との統合方法について、より技術的に深掘りします。開発者は、以下の技術ガイドに進む前に、上で説明した内容に慣れておくと有益です。 セットアップの目的は以下のとおりです:- 実験ごとに新しいコードをプッシュすることなく、サーバーサイド実験を有効化する
- Contentful でコンテンツを、Kameleoon で実験を制御する
- 高速配信とちらつき効果の回避のためのサーバーサイドバリエーション選択
Kameleoon アプリが Contentful API レスポンスをどのように変更するか
前述のとおり、Kameleoon アプリは新しいコンテンツタイプ「Kameleoon Container」を作成します。 Kameleoon Container は、実験の可能な値をネストし、Kameleoon 実験とバリエーション名に関するメタデータを保持するコンテンツタイプです。Kameleoon を使用して正しいバリエーションを選択する
Contentful API レスポンスを受け取り、当社の NodeJS SDK を使用してユーザーに表示するバリエーションを決定する疑似バックエンドを作成します。 Contentful が返す Kameleoon Container JSON レスポンスを見てみましょう。コンテンツタイプが、Kameleoon 実験に関連するいくつかのフィールド (featureKey とバリエーションキーを含むメタ) を公開していることに注目してください。
getFeatureFlagVariationKey() で機能キー contentful_black_friday_cta をハードコードして、ユーザーのバリエーションを取得する例です。
getFeatureFlagVariationKey() メソッドが、ユーザー (または訪問者) がバリエーションの 1 つを表示すべきか、元のコンテンツを表示すべきかを決定します。値は、Kameleoon Container の meta フィールドから取得できるバリエーションに対応します。
これは、その後作成するすべての実験に対して機能する 1 回限りのセットアップです。
const featureKey = kameleoonContainerEntry.featureKey;
バリエーションのキーを取得します: