Skip to main content
NodeJS SDK を使用して、実験を実行し、フィーチャーフラグをアクティブ化できます。SDK をサーバーに統合するのは簡単であり、フットプリント(メモリとネットワーク使用量)は低くなります。Node SDK は Node バージョン 16 以上をサポートしており、互換性モードを使用してバージョン 14 と 12 にダウングレードするオプションがあります。 はじめに: はじめ方については、開発者ガイドを参照してください。 SDK メソッド: NodeJS SDK の完全な参照ドキュメントについては、参照セクションを参照してください。 変更履歴: NodeJS SDK の最新バージョン: 4.24.2 変更履歴。 Next.js の例: NodeJS SDKをNext.jsと統合した実際の例(App Router、Pages Router、ミドルウェア、Server Actionsを含む)については、Next.jsスターターキットリポジトリをご覧ください。
NodeJS SDK のインストールを開始する前に、SDK の背後にある技術的な概念を理解するために、技術的考慮事項の記事を読むことをお勧めします。この記事は、統合を確実に成功させるのに役立ちます。

開発者ガイド

このセクションに従って、SDK をインストールして設定し、高度な機能について学んでください。

Get started

インストール

Kameleoon SDK インストールツールを使用して SDK をインストールします。SDK インストーラーは、選択した SDK をインストールし、基本的なコード サンプルを生成し、必要に応じて外部依存関係を設定するのに役立ちます。 SDK インストールツールを使用するには、グローバルにインストールして実行する必要があります。
またはnpxで直接実行します。
Deno を使用している場合は、deno.json で依存関係を手動で指定します。
deno.json

Kameleoon クライアントの初期化

開発者は、新しい KameleoonClient をインスタンス化することで、NodeJS SDK のエントリーポイントを作成する必要があります。 KameleoonClient をシングルトンとして扱うことが推奨されます。単一の共有インスタンスを作成し、サーバーインスタンス全体で再利用することで、一貫性を確保し、不要な再初期化を避けることができます。 KameleoonClient を使用して、フィーチャー実験を実行し、フィーチャーフラグとそのバリエーションのステータスを取得します。 KameleoonClient は、initialize() メソッドを使用して Kameleoon API との通信が成功することを確認するために、非同期に初期化されます。クライアントの初期化を処理するために、async/await、Promise.then()、または他の非同期パターンを使用できます。
NodeJS SDK をエッジ環境に追加するには、このセクションを参照してください。
パラメーター
スローされる例外
設定パラメータ
Option 1 (Recommended): Use JSON.stringify()
オプション2: 生のJSON文字列(特殊文字をエスケープ)
互換モード
SDK パラメーター compatibility を使用して、SDK の一部の機能を無効にし、古い NodeJS バージョンとの互換性を向上させます。 Compatibility は、すべての可能な互換性モードを表す列挙型です。
  • Compatibility.Node16 - デフォルトモード。すべての機能が有効です。互換性モードが提供されない場合、このモードが使用されます。Node バージョン 16 以上をサポートします。
  • Compatibility.Node14 - このバージョンとの互換性により、SDKConfigurationType の requestTimeout パラメーターが利用不可になり、SDK はデフォルトの 10_000 ms タイムアウト内でも、リクエスト キャンセレーション用に AbortController を使用できなくなります。Node バージョン 14 以上をサポートします。
  • Compatibility.Node12 - このバージョンとの互換性は、Node14 互換性モードと同じ制限を意味します。さらに、“@kameleoon/nodejs-requester” をこの互換性モードでリクエスター実装として提供することはできません。“node-fetch” ライブラリを使用しており、Node.js 12.x.x バージョンをサポートしていないからです。開発者は、古い “node-fetch” バージョンや他の HTTP ベースの実装など、選択したカスタムリクエスター実装を提供する必要があります。

機能フラグの有効化

ユーザーへの一意の ID の割り当て
ユーザーに一意のIDを割り当てるには、getVisitorCode()メソッドを使用できます。visitor codeが存在しない場合(リクエストヘッダーのクッキーから)、メソッドはランダムな一意のIDを生成するか、生成したdefaultVisitorCodeを使用します。IDは応答ヘッダーのクッキーに設定されます。 Kameleoonをハイブリッドモードで使用している場合、getVisitorCode()メソッドを呼び出すことで、一意のID(visitor code)がアプリケーションファイルengine.js(以前はkameleoon.jsという名前)とSDK間で共有されることが保証されます。
フラグ構成の取得
コード内にフィーチャーフラグを実装するには、まずKameleoonアカウントでフィーチャーフラグを作成する必要があります。 特定のユーザーに対するフィーチャーフラグのステータスまたはバリエーションを判断するには、getVariation()またはisFeatureFlagActive()メソッドを使用して、featureKeyに基づいて設定を取得する必要があります。 getVariation()メソッドは、ON/OFFステートを持つシンプルなフィーチャーフラグと複数のバリエーションを持つより複雑なフラグの両方を処理します。このメソッドは、フィーチャールールをチェック、バリエーションを割り当て、featureKeyとvisitorCodeに基づいて返すことにより、ユーザーに対して適切なバリエーションを取得します。 isFeatureFlagActive()メソッドは、複数のバリエーションまたはターゲットオプションを持つより複雑なフィーチャーフラグではなく、ON または OFF ステートのみを持つシンプルなフィーチャーフラグの設定を取得したい場合に使用できます。 フィーチャーフラグに関連する変数がある場合(各バリエーションに関連付けられた特定の動作など)、getVariation()はVariationオブジェクトにアクセスすることも可能にします。これにより、割り当てられたバリエーションとその関連付けられた実験に関する詳細が提供されます。このメソッドはユーザーがターゲットされているかどうかをチェック、訪問者に割り当てられたバリエーションを見つけ、ストレージに保存します。track=trueの場合、SDKは次のトラッキングリクエスト時に指定の実験に exposure イベントを送信します。これはSDKのtracking_interval_millisecondに基づいて自動的にトリガーされます。デフォルトではこの間隔は1000ミリ秒(1秒)に設定されています。 getVariation()メソッドを使用すると、トラッキングが実行されるかどうかを制御できます。track=falseの場合、SDKから exposure イベントは送信されません。これはSDKを通じてデータを追跡したくなく、代わりにKameleoonエンジンによって管理されるクライアント側トラッキングに依存する場合に便利です。さらに、track=falseを設定することは、すべてのフラグのバリエーションが必要なだけで、トラッキングイベントをトリガーしたくないgetVariations()メソッドを使用する場合に便利です。トラッキングの仕組みの詳細については、この記事を参照してください。
ユーザーをターゲットにしたり、レポート内で訪問をフィルタリング/分類するためのデータポイントの追加
ユーザーをターゲットするには、フィーチャーバリエーションを取得またはフラグがアクティブかどうかを確認する前に、プロフィールに関連するデータポイントを追加していることを確認してください。addData()メソッドを使用して、これらのデータポイントをユーザーのプロフィールに追加します。 他のデバイスで収集されたデータポイントを取得するか、過去のユーザーデータ(Kameleoonの Hybrid mode を使用するときにクライアント側で収集)にアクセスするには、getRemoteVisitorData()メソッドを使用します。このメソッドは非同期でサーバーからデータを取得します。バリエーションを取得するか、フィーチャーフラグがアクティブであるかどうかを確認する前にgetRemoteVisitorData()を呼び出すことが重要です。このデータは、ユーザーを特定のバリエーションに割り当てるために必要な場合があります。 利用可能なターゲット条件の詳細については、このトピックに関する詳細な記事を参照してください。 さらに、訪問者プロフィールに追加したデータポイントは、実験を分析する際に利用可能になり、デバイスやブラウザなどの要因で結果をフィルターして分析することができます。Kameleoon Hybrid modeは、クライアント側でさまざまなデータポイントを自動的に収集し、これらの事前に収集されたデータポイントに基づいて結果を分析しやすくします。完全なリストについては、ここを参照してください。 自動的に収集されるもの以上のデータポイントを追跡する必要がある場合は、KameleoonのCustom Data機能を使用できます。Custom Dataを使用すると、実験に関連する特定の情報をキャプチャして分析できます。収集したデータをKameleoonサーバーに分析用として送信するために、flush()メソッドを呼び出すことを忘れずに。
結果の正確性を確保するには、UserAgentデータ型を使用してボットをフィルターアウトすることが推奨されます。
ゴールコンバージョンのトラッキング
ユーザーが望ましいアクション(購入など)を完了すると、コンバージョンとして記録されます。コンバージョンを追跡するには、trackConversion()メソッドを使用して、必要なvisitorCodeとgoalIdパラメータを指定します。 コンバージョントラッキングリクエストは、次にスケジュールされたトラッキングリクエストと一緒に送信されます。これはSDKが定期的に送信するリクエストです(tracking_interval_millisecondで定義)。リクエストをすぐに送信する場合は、パラメータinstant=trueを持つflush()メソッドを使用します。
分析ソリューションへのイベントの送信
コンバージョンを追跡してカスタマー分析ソリューションに exposure イベントを送信するには、まずKameleoonをハイブリッドモードで実装する必要があります。次に、getEngineTrackingCode()メソッドを使用します。 getEngineTrackingCode()メソッドは、分析ソリューションに exposure イベントを送信するために必要な一意のトラッキングコードを取得します。このメソッドを使用することで、イベントを記録して目的の分析プラットフォームに送信できます。

エラー処理

ほぼすべての KameleoonClient メソッドは、ある時点でエラーをスローする可能性があります。これらのエラーは意図的に事前定義された KameleoonError です。 これらはネイティブ JavaScript Error クラスを拡張し、有用なメッセージと KameleoonException 型の特殊な type フィールドを提供します。 KameleoonExceptionは、すべての可能なエラータイプを含む列挙型です。 メソッドがスローする可能性のある KameleoonException の正確な型を知るには、メソッドの説明の Throws セクションを確認するか、IDE でメソッドの上にマウスを置いて jsdocs の説明を表示します。 エラー処理は、アプリケーションをより安定させ、技術的な問題を回避するための良い慣行と見なされます。

エッジプロバイダーとの統合

Kameleoon は、特定のエッジプロバイダーとの統合を自動化するために、次のスターターパックを提供しています。他のエッジプロバイダーの場合は、SDK をより詳細に制御するために外部依存関係を使用してください。

クロスデバイス実験

複数のデバイスからアプリケーションにアクセスする訪問者をサポートするために、Kameleoonは以前に収集した訪問者データの訪問者のデバイス全体での同期と、クロスデバイス実験を通じたデバイス全体での訪問履歴の調整を可能にします。ケーススタディとKameleoonがデバイス全体でデータをどのように処理するかに関する詳細情報は、クロスデバイス実験に関する記事で入手できます。

デバイス間でのカスタムデータの同期

カスタムマッピング同期はデバイス全体で訪問者データを整合させるために使用されますが、常に必要とは限りません。以下は、カスタムマッピング同期が不要な2つのシナリオです。 Same user ID across devices 同じユーザーIDがすべてのデバイスで一貫して使用されている場合、カスタムマッピング同期なしで同期が自動的に処理されます。複数のデバイス間で収集されたデータを同期したい場合は、getRemoteVisitorData()メソッドを呼び出すだけで十分です。 Multi-server instances with consistent IDs 複数のサーバー(例えば、分散したサーバーインスタンス)が関与する複雑なセットアップでは、同じユーザーIDがサーバー全体で利用可能である場合、サーバー間の同期(getRemoteVisitorData()を使用)は追加のカスタムマッピング同期なしで十分です。 追加データが必要なお客様は、getRemoteVisitorData()メソッド説明を参照して詳しい情報を得ることができます。以下のコードでは、2つのデバイス間で正確なデータ取得のために同じ一意の識別子(この場合はvisitorCodeで、userIdと呼ぶこともできます)が一貫して使用されていることを前提としています。
リアルタイムで収集されたデータを同期したい場合は、カスタムデータのスコープとしてVisitorを選択する必要があります。
Device One
Device Two

セッションマージのためのカスタムデータの使用

クロスデバイス実験を使用すると、各デバイスにわたる訪問者の履歴を組み合わせることができます(履歴調整)。履歴調整を使用して複数の訪問者セッションを 1 つにマージできます。CustomData を使用して、訪問者の一意識別子を提供し、訪問履歴を調整します。クロスデバイス履歴調整のアクティブ化ガイドに従って、Kameleoon でカスタムデータを設定します。コード内でカスタムデータを使用して、訪問者のセッションをマージできます。同じ識別子を持つセッションは常に同じ実験バリエーションを表示し、実験の結果ページの Visitor ビューに単一の訪問者として表示されます。SDK設定により、関連するセッションは常に実験の同じバリエーションを表示するようになります。他のメソッドを使用する前に、訪問者に UniqueIdentifier データを追加することで、SDK に訪問者が一意識別子であることを知らせます。
識別子として使用するカスタムデータは Visitor スコープに設定する必要があるため、クロスデバイス カスタムデータ同期を使用して、各デバイスの getRemoteVisitorData メソッドで識別子を取得する必要があります。
次の例では、ログインページを含むアプリケーションがあります。ログイン時にユーザー ID がわからないため、getVisitorCode メソッドで生成された匿名訪問者識別子を使用します。ユーザーがログインした後、匿名訪問者をユーザー ID に関連付けて、訪問者の一意識別子として使用できます。
Login Page
Application Page

カスタムバケットキーの使用

デフォルトでは、Kameleoonは一意の匿名訪問者ID(visitorCode)を使用して、ユーザーをフィーチャーフラグバリエーションに割り当てます。このIDは通常、ユーザーのデバイス上で生成および保存されます(クライアント側およびサーバー側SDK向けのブラウザクッキー内—モバイルSDK向けの永続ストレージ内)。ただし、特定のシナリオでは、同じ組織のすべてのユーザーがフィーチャーフラグの同じバリエーションを表示することを確認する必要がある場合があります。 Custom Bucketing Keyオプションを使用すると、独自のカスタム識別子を提供することで、このデフォルト動作をオーバーライドできます。このオーバーライドにより、Kameleoonの割り当てロジックは、デフォルトのvisitorCodeの代わりに指定されたキーを使用することが保証されます。

ユースケース

カスタムバケッティングキーの使用は、特に以下の状況で、フィーチャーフラグ割り当ての一貫性と正確性を維持するために不可欠です。
  • Account-level or organizational experiments: B2Bプロダクトの場合、または同じ組織からすべてのユーザーを同じバリエーションに割り当てたい場合は、accountIdなどの識別子を使用できます。カスタムバケッティングキーは、チーム全体または会社全体に影響するフィーチャーのA/Bテストに重要です。
カスタムバケッティングキーを実装することで、実験でより大きな一貫性と正確性を確保でき、より信頼できる結果とより優れたユーザー体験につながります。

技術的な詳細

フィーチャーフラグのカスタムバケッティングキーを設定する場合、アプリケーションのデータから特定の識別子をKameleoonに提供します。
  • カスタムキーを提供する: Kameleoon SDKに対して、addData()メソッドを使用してカスタム識別子を提供します。このメソッドでは、選択したカスタムバケッティングキーをCustomDataオブジェクトとして渡します。ここで、newVisitorCodeは、バケッティングに使用する識別子(たとえば、新しいuserIdまたはaccountId)を指します。
カスタムバケッティングキーが正しく機能するには、フラグ作成または編集プロセス中にフィーチャーフラグに対して定義および設定される必要があります。この対応する設定がない場合、SDKのバケッティングはカスタムキーを適用しません。Kameleoonでこれを設定する方法の詳細な手順については、この記事を参照してください。
  • バケッティングロジック: addData()メソッドを通じてカスタムバケッティングキーが提供されると、バリエーションにユーザーを割り当てるためのすべてのハッシュ計算は、デフォルトのvisitorCodeの代わりにこのnewVisitorCode(カスタムキー)を使用します。newVisitorCodeを使用することは、バケッティング判定がカスタム識別子に関連付けられていることを意味し、その識別子が存在するさまざまなコンテキスト間での一貫した割り当てを保証します。
  • データトラッキングと分析: newVisitorCode(カスタムキー)がバケッティング判定に使用される一方で、その後のすべてのデータ(トラッキングイベントおよびコンバージョンなど)が元のvisitorCodeで送信され、関連付けられることに注意することが重要です。この分離により、バケッティングがより高い段階(アカウントなど)で実行されるか、複数のデバイス/セッション間で実行される場合でも、分析が実験のより広いコンテキスト内での個々のユーザージャーニーとインタラクションを正確に反映します。元の訪問者データは、包括的なレポート作成のために保持されます。

技術要件

カスタムバケッティングキーを効果的に使用するには:
  • キーはstringである必要があります。
  • バケットするエンティティに対して一意である必要があります(例えば、userIdを使用する場合、各ユーザーのIDは一意である必要があります)。
  • キーは、ユーザーまたはリクエストに対してフィーチャーフラグ判定が評価される正確なタイミングでSDKが利用可能である必要があります。

ターゲティング条件

Kameleoon SDK は、キャンペーンでユーザーをターゲットするために使用できるさまざまな事前定義されたターゲット設定条件をサポートしています。この SDK でサポートされている条件のリストについては、訪問履歴を使用してユーザーをターゲットを参照してください。 外部データを使用してユーザーをターゲットすることもできます。

ロギング

SDKはさまざまな内部プロセスと問題を反映するログを生成します。

ログレベル

SDKは、ログレベルによってロギングを制限するように設定することをサポートしています。

ログのカスタム処理

SDKはデフォルトではコンソール出力にログを書き込みます。この動作はオーバーライドできます。
ログレベルによるロギング制限は、ログハンドリングロジックとは別に実行されます。

ドメイン情報

KameleoonClient 設定で domain としてドメインを指定します。これは Kameleoon 訪問者コードをクッキーに保存するために使用されます。getVisitorCode メソッドと setLegalConsent メソッドを使用する場合、ドメインの指定が重要です。指定したドメインは、クッキーに Domain= キーとして保存されます。

ドメインの設定

指定したドメインにより、URL アドレスはクッキーを使用できます。たとえば、ドメインが www.example.com の場合、クッキーは www.example.com URL からのみ利用できます。app.example.com ドメインのページはクッキーを使用できません。 サブドメインに関する柔軟性を高めるために、. で始まるドメインを指定できます。たとえば、ドメイン .example.com はクッキーが app.example.com と login.example.com の両方で機能することを許可します。
domain では正規表現、特殊文字、プロトコル、またはポート番号を使用できません。さらに、特定のサブドメイン リストは . プレフィックスと一緒に使用できません。
ここに小さなドメインチートシートがあります。

localhostでの開発

localhost は常に不正なドメインと見なされるため、localhost で開発する場合、ドメインをテストするのが難しくなります。 この問題を回避する方法は2つあります。
  • テスト中はSDKクライアントでdomainフィールドを指定しないでください。これにより、localhostの問題が防止されます(クッキーは任意のドメインに設定されます)。
  • localhostのローカルドメインを作成します。例えば、
  • _Linux_の場合は/etc/hostsに、_Windows_の場合はc:\Windows\System32\Drivers\etc\hostsに移動します。
  • ファイルスーパーユーザーまたは管理者権限でhostsを開きます。
  • localhost ポートにドメインを追加します。例えば: 127.0.0.1 app.com
  • これで、アプリを app.com:{my_port} でローカルに実行し、.app.com をドメインとして指定できます。

外部依存関係

SDK の外部依存関係は 依存性の注入 パターンを使用します。これにより、SDK の特定の部分に対して独自の実装を提供できます。
NodeJS SDK では、一部の外部依存関係にはデフォルト実装がありますが、他の依存関係はユーザーが提供する必要があります。これは、Kameleoon の専用実装またはカスタム実装を使用しているかどうかにかかわらず適用されます。
利用可能な外部依存関係のリストは次のとおりです。
“visitorCodeManager を IExternalNextJSVisitorCodeManager、IExternalDenoVisitorCodeManager、または IExternalCustomVisitorCodeManager インターフェースを使用して、それぞれ NextJS、Deno、またはカスタム訪問者コードマネージャー実装に対して実装することもできます。
外部依存関係により、開発者は NodeJS SDK を任意の環境に適応させて使用する柔軟性が提供されます。Kameleoon は、頻繁に使用される環境向けに多数の npm パッケージを提供しています。パッケージは手動でインストールするか、SDK インストールツールを使用してインストールできます(推奨)。 これらは NodeJS SDK の Kameleoon 提供の外部依存関係です。
  • @kameleoon/nodejs-event-source - eventsource ライブラリに基づいています(NodeJS/Deno/NextJS SSR で使用可能)
  • @kameleoon/nodejs-requester - node-fetch ライブラリに基づいています(NodeJS/Deno/NextJS SSR で使用可能)
  • @kameleoon/nodejs-visitor-code-manager - サーバーメモリストレージで実装されています。
  • @kameleoon/deno-visitor-code-manager - Deno リクエスト/レスポンス クッキーを使用して実装されています。
  • @kameleoon/nextjs-visitor-code-manager - NextJS SSR headers クッキーまたは NextJS SSR リクエスト/レスポンスを使用して実装されています。
外部依存関係をオプションで独自に実装できます。 次の例は外部依存関係を実装しています。SDKからインターフェイスをインポートするには、インターフェイスを実装するクラスを作成し、インスタンス化したクラスをSDKに渡します。

Storage

EventSource

VisitorCodeManager

visitorCodeManager implementation for NodeJS/NextJS SSR:
visitorCodeManager implementation for Deno:
NextJS Server Actions の visitorCodeManager 実装:
任意のパラメーターを使用したカスタム visitorCodeManager 実装:

Requester

Utilities

SDK には、開発を簡素化するために使用できるユーティリティ メソッドのセットがあります。すべてのメソッドは KameleoonUtils クラスの静的メンバーとして表現されます。

simulateSuccessRequest

simulateSuccessRequest メソッドを使用して、Kameleoon サーバーへの成功したリクエストをシミュレートします。このメソッドは、開発者が成功したリクエストをシミュレートする必要がある場合、カスタム Requester 実装に役立つ場合があります。
パラメーター
SimulateRequestDataType データ型は次のように定義されています。
  • RequestType.Tracking - null
  • RequestType.ClientConfiguration - ClientConfigurationDataType
  • RequestType.RemoteData - JSONType
戻り値

getCookieValue

getCookieValue メソッドを使用して、一般的なクッキー文字列(key_1=value_1; key_2=value_2; ...)を解析し、特定のクッキーキーの値を取得します。このメソッドは、VisitorCodeManagerのカスタム実装を使用する場合に役立ちます。
パラメーター
戻り値

リファレンス

これは Kameleoon JavaScript SDK の完全な参照ドキュメントです。

初期化

initialize()

KameleoonClient を初期化するための非同期メソッド。データがまだ最新で更新間隔がまだ経過していない場合、Kameleoon SDK データをサーバーまたはローカルソースから取得します。
戻り値
スローされる例外

isReady()

isReady()は、SDKが使用可能な状態かどうかを確認します。これは、その構成が正常に読み込まれたことを意味します。initialize()とは異なり、このメソッドはブロックやスローなしに直ちに戻ります。
SDKが準備完了状態になると、その状態を保ちます。後の構成リフレッシュが失敗した場合、SDKはダウンロードされた前の構成を使用し続け、準備未完了状態に戻りません。
戻り値

機能フラグとバリエーション

getVariation()

  • 📨 Kameleoonにトラッキングデータを送信します(trackパラメータに応じて)
特定のフィーチャーフラグについて、訪問者に割り当てられたVariationを取得します。 このメソッドは、featureKeyを必須引数として、trackをオプション引数として受け取ります。track引数はオプションであり、デフォルトはtrueです。 訪問者に割り当てられたVariationを返します。訪問者がフィーチャーフラグルールに関連付けられていない場合、メソッドは指定されたフィーチャーフラグのデフォルトVariationを返します。 コード内で潜在的な例外を管理するために、適切なエラーハンドリングが実装されていることを確認してください。
デフォルトバリエーションは、訪問者がフィーチャーフラグの定義済みデリバリールールに一致しない場合に割り当てられるバリエーションを指します。言い換えれば、特定のルールでターゲットされていないすべてのユーザーに適用されるフォールバックバリエーションです。管理インターフェースの「その後、他のすべてのユーザーに対して…」セクションのバリエーションとして表現されます。
パラメーター
GetVariationParamsType型のオブジェクト。以下のプロパティを持ちます:
戻り値
スローされる例外

getVariations()

  • 📨 Kameleoonにトラッキングデータを送信します(trackパラメータに応じて)
  • 🎯 Events: EventType.Evaluation
訪問者に割り当てられたVariationオブジェクトのマップをすべてのフィーチャーフラグ全体で取得します。 このメソッドは、すべての利用可能なフィーチャーフラグを反復処理し、指定された訪問者に関連付けられた各フラグの割り当てられたVariationを返します。visitorCodeを必須引数として取り、onlyActiveとtrackはオプションです。
  • onlyActiveがtrueに設定されている場合、getVariations()メソッドは、ユーザーがoffバリエーションでバケット化されていない場合、フィーチャーフラグバリエーションを返します。
  • trackパラメータは、メソッドがバリエーション割り当てを追跡するかどうかを制御します。デフォルトでは、trueに設定されています。falseに設定されている場合、トラッキングは無効になります。
返されたマップは、フィーチャーフラグキーをキーとし、対応するVariationを値として構成されています。フィーチャーフラグにバリエーションが割り当てられていない場合、メソッドはそのフラグのデフォルトVariationを返します。 潜在的な例外を管理するために、適切なエラーハンドリングが実装されるべきです。
デフォルトバリエーションは、訪問者がフィーチャーフラグの定義済みデリバリールールに一致しない場合に割り当てられるバリエーションを指します。言い換えれば、特定のルールでターゲットされていないすべてのユーザーに適用されるフォールバックバリエーションです。管理インターフェースの「その後、他のすべてのユーザーに対して…」セクションのバリエーションとして表現されます。
パラメーター
GetVariationsParamsType型のオブジェクトで、以下のプロパティがあります。
戻り値
スローされる例外

isFeatureFlagActive()

  • 📨 Kameleoonへのトラッキングデータを送信(trackパラメータによって異なります)
  • 🎯 Events: EventType.Evaluation
isFeatureFlagActive() メソッドは、visitorCode を持つ訪問者がアクティブな featureKey を持っているかどうかを示すブール値を返します。このメソッドはターゲット設定をチェックし、訪問者のバリエーションを検索し、ストレージに保存します。このメソッドはまた、トラッキング リクエストを送信します。 このメソッドには、フィーチャー評価のトラッキングを無効にする track パラメーターを渡せるオーバーロードが追加されています。
フィーチャーフラグをアクティブ化するには、訪問者がターゲット設定される必要があります。
Kameleoonは、isFeatureFlagActive()、getVariation()、またはgetVariations()などの特定のメソッドを呼び出すときに、トラッキングを使用してセッションと訪問者を数えます。訪問者をバリエーションに公開し、それらをカウントする必要があるときは、trackパラメータのデフォルトtrue値を使用してください。訪問者を公開する前にこれらのメソッドを呼び出す場合のみ、trackパラメータをfalseに設定してください。例えば、訪問者を公開する前に、すべてのバリエーションを取得するためにgetVariations()を呼び出す場合、trackパラメータをfalseに設定してください。この設定により、Kameleoonがセッションを時期尚早にカウントするのを防ぎます。その後、訪問者を明示的に公開したときにトラッキングをトリガーできます。Kameleoonはデフォルトで毎秒トラッキングデータを送信します。トラッキング間隔設定オプションを使用して、この間隔を最大5秒まで設定できます。イベント間の間隔が30分未満である限り、Kameleoonはトラッキングイベントを単一セッションにグループ化します。トラッキングイベント間に30分以上経過した場合、Kameleoonはイベントを別のセッションとしてカウントします。訪問はセッションの最後に記録されたイベントの30分後にレポートに表示されます。
isFeatureFlagActive()メソッドは、マスターフラグ状態ではなく、提供されるバリエーションを評価します。ルールを除外した場合、メソッドはそのほかすべてにサーブデフォルト状態を使用します。このデフォルト状態に対してオフを選択した場合、マスターフィーチャーフラグがオンである場合でも、メソッドは常にfalseを返します。
パラメーター
このメソッドには2つのオーバーロードがあります。
  1. 2つのパラメータオーバーロード:
このオーバーロードは非推奨であり、次のメジャーバージョンで削除されます。オブジェクトパラメータを持つ新しいオーバーロードを使用してください。
  1. IsFeatureFlagActiveParamsType型のオブジェクトパラメータオーバーロード:
戻り値
スローされる例外

setForcedVariation()

このメソッドでは、標準的な評価プロセスをバイパスして、ユーザーに特定のVariationをプログラムで割り当てることができます。これは、通常の評価ロジックが必要ない、またはスキップする必要がある制御された実験に特に価値があります。デバッグやカスタムテストなどのシナリオでも役立つことがあります。 強制バリエーションが設定されると、Kameleoonのリアルタイム評価ロジックがオーバーライドされます。セグメンテーション、ターゲティング条件、アルゴリズム計算などのプロセスはスキップされます。実験中にセグメンテーションとターゲティング条件を保持するために、代わりにforceTargeting=falseを設定してください。
シミュレートされたバリエーションは常に実行順で優先されます。シミュレートされたバリエーション計算がトリガーされると、完全に処理され完了します。
強制バリエーションは評価されたバリエーションと同じように扱われます。これはアナリティクスで追跡され、標準的な評価バリエーションと同様にユーザーコンテキストに保存されます。 メソッドは特定の条件下で例外をスローする可能性があります(例えば、無効なパラメータ、ユーザーコンテキスト、または内部の問題)。アプリケーションが安定して弾力的に保つために、適切な例外ハンドリングが不可欠です。
強制バリエーションを シミュレートされた バリエーションと区別することが重要です:
  • 強制されたバリエーション:個別の実験に固有です。
  • シミュレートされたバリエーション:全体的な feature flag 結果に影響を与えます。
パラメーター
SetForcedVariationParametersType型のオブジェクトで、以下のプロパティがあります。
スローされる例外
ほとんどの場合、基本的なエラーKameleoonExceptionのみを処理する必要があります。ただし、異なる種類のエラーが応答を必要とする場合は、特定の要件に基づいて個別に処理してください。さらに、信頼性を向上させるために、一般的な言語エラーはErrorを含めることで処理できます。

evaluateAudiences()

  • 📨 トラッキングデータを Kameleoon に送信
このメソッドは、利用可能なすべてのAudiences Explorerセグメントに対して訪問者を評価し、一致したセグメントを追跡します。 evaluateAudiences()はすべての関連訪問者データが設定または更新された後、フィーチャーバリエーションを取得する直前、またはフィーチャーフラグをチェックする直前に呼び出す必要があります。このアプローチにより、訪問者が利用可能な最新データに対して評価され、すべての条件に基づいた正確なオーディエンス割り当てが可能になります。 このメソッドを呼び出した後、Audiences Explorerでセグメントパフォーマンスの詳細な分析を実行できます。
パラメーター
スローされる例外
ほとんどの場合、基本的なエラーKameleoonExceptionのみを処理する必要があります。ただし、異なる種類のエラーが応答を必要とする場合は、特定の要件に基づいて個別に処理してください。さらに、信頼性を向上させるために、一般的な言語エラーはErrorを含めることで処理できます。

getDataFile()

すべての feature flag を評価するには、getVariations() を使用してください。このメソッドは DataFile を呼び出して getVariation() でフラグを反復処理するより効率的です。
現在の SDK 設定を DataFile オブジェクトとして返します。
戻り値

訪問者データ

getVisitorCode()

getVisitorCodeメソッドは、リクエストのヘッダーのクッキーから訪問者コードを取得します。訪問者コードが存在しない場合、メソッドは新しいランダムな訪問者コードを生成するか、提供されたdefaultVisitorCode値を使用します。その後、新しい訪問者コードを応答ヘッダーのクッキーに設定します。 このメソッドは、httpモジュールからインポートされるrequestとresponseのNode.jsネイティブ型(具体的にはIncomingMessageとServerResponse)を使用します。ただし、Expressフレームワーク、Deno、またはgetServerPropsのようなNext.jsのサーバーサイドレンダリングメソッドを使用している場合、requestとresponseの型が異なります。型キャストを使用することでこの問題を解決でき、同じ結果が得られます。
getVisitorCode()をDeno、Next.js SSR、Node、またはExpressで使用する場合は、正しい外部依存関係を実装していることを確認してください。
getVisitorCode() メソッドを使用すると、訪問者に対して シミュレート されたバリエーションを設定できます。Cookie(request または document から)に kameleoonSimulationFFData キーが含まれている場合、標準的な評価プロセスはバイパスされます。代わりに、メソッドは提供されたデータに基づいて Variation を直接返します。シミュレーションは 2 つの方法で適用できます。
  • 自動(推奨): Kameleoon Web Experimentation を使用している場合、または SDK を ハイブリッドモード で使用している場合、Simulation Panel を使用してバリアント表示をシミュレートしているときに cookie が自動的に作成されます。
  • 手動: kameleoonSimulationFFData cookie を手動で設定します。
シミュレートされたバリエーションを 強制 バリエーションと区別することが重要です:
  • シミュレートされたバリエーション:全体的な feature flag 結果に影響を与えます。
  • 強制されたバリエーション:個別の実験に固有です。
⚙️ Manual setupkameleoonSimulationFFData cookie が次の形式に従っていることを確認してください。
  • kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}:指定した featureKey に対して実験 expId の varId を持つバリエーションをシミュレートします。
  • kameleoonSimulationFFData={"featureKey":{"expId":0}}:指定した featureKey のデフォルトバリエーション(Then, for everyone else in Production, serve セクションで定義)をシミュレートします。
⚠️ cookie 値が正しく機能するようにするには、encodeURIComponent などのメソッドを使用して URI コンポーネントとしてエンコードしてください。
パラメーター
パラメーターオブジェクトは2つの型でオーバーロードされています:
  • 型GetVisitorCodeParametersType(NodeJS/Express/NextJS SSR methodsの場合)、以下のフィールドを含みます:
  • 型GetNextJSVisitorCodeParametersType(NextJS SSR server actionsの場合)、以下のフィールドを含みます:
  • 型GetDenoVisitorCodeParametersType(Denoの場合)、以下のフィールドを含みます:
  • 型GetCustomVisitorCodeParametersType(カスタムVisitorCodeManager実装の場合)、以下のフィールドを含みます:
defaultVisitorCode を指定しない場合で、訪問者コードが cookie に保存されていない場合、訪問者コードはランダムに生成されます。
戻り値
スローされる例外

addData()

addData()メソッドを使用して、ターゲット設定データをストレージに追加し、現在の訪問者をターゲット設定するかどうかを判断するために他のメソッドがこの情報を利用できるようにしてください。 addData()メソッドは値を返さず、Kameleoonバックエンドサーバーと直接やり取りしません。代わりに、メソッドが収集したすべてのデータはflush()メソッドを使用した将来の送信のために保存されます。このアプローチはサーバー呼び出しの数を最小化し、データは通常、flush()メソッドによって起動される単一のサーバー呼び出しにグループ化されます。 さらに、trackConversion()メソッドは以前に関連付けられたすべてのデータを送信します。getFeatureFlagVariationKey()とgetFeatureFlagVariable()メソッドは、実験ルールがトリガーされるときにデータを送信します。
ほとんどのデータ型に対して、各訪問者は関連するデータの1つのインスタンスのみを持つことができます。ただし、CustomDataは例外です。訪問者は各customDataIndexに対して関連するCustomDataの1つのインスタンスを持つことができます。
サポートされている条件のリストを確認して、ターゲット設定に使用できるデータ型を確認してください。
パラメーター
  • kameleoonDataは可変長引数です: 1つまたは複数の引数として渡すことができます(例を参照)。
  • カスタムデータのインデックスまたはIDはKameleoonアカウントで見つけることができます。このインデックスは0から始まることに注意してください。つまり、特定のサイト用に作成した最初のカスタムデータには、1ではなく0がIDとして割り当てられます。
スローされる例外
データ型リファレンスを確認して、異なるデータ型の管理方法の詳細をご覧ください。

flush()

flush()は訪問者に関連するKameleoonデータを取得し、次のトラッキングリクエストで送信するようにデータをスケジュールします。次のトラッキングリクエストの時間はSDK Configuration のtrackingIntervalパラメーターで定義されます。addData()とgetRemoteVisitorData()メソッドを使用して訪問者データを追加できます。visitorCodeを指定しない場合、SDKはすべてのストレージデータをリモートKameleoonサーバーに送信します。さらに、以前に失敗し、オフラインモードでローカルに保存されたトラッキングリクエストがあった場合、SDKは最新のリクエストを処理する前に、それらの保存されたリクエストを送信しようとします。
トラッキングリクエストをすぐに送信する必要がある場合は、flushInstant()を使用してください。これはPromise<void>を返すflushの非同期バージョンです。配信保証が必要な場合(たとえば、リクエスト/レスポンスサイクルを終了する前に)、これをawaitできます。または、ファイアアンドフォーゲットリクエストとしてawaitなしで呼び出すことができます:
  • await client.flushInstant(visitorCode)特定の訪問者のトラッキングリクエストをすぐに送信し、完了を待ちます
  • await client.flushInstant()すべての訪問者のトラッキングリクエストをすぐに送信し、完了を待ちます
パラメーター
または FlushParamsType 型のオブジェクト(以下を含む):
スローされる例外

getRemoteData()

getRemoteData()メソッドは、指定されたサイトコードのリモートKameleoonサーバーに保存されているデータを取得します。 たとえば、このメソッドを使用して、ユーザー設定、履歴データ、またはアプリケーションロジックに関連するその他の情報にアクセスできます。Data APIを使用してKameleoonの高度にスケーラブルなサーバーにこのデータを保存することで、大量のデータを効率的に管理し、各訪問者またはユーザーに対してそれを取得できます。
パラメーター
戻り値
スローされる例外

getRemoteVisitorData()

getRemoteVisitorData()メソッドは非同期関数で、Kameleoon Data APIから特定のvisitorCodeに対するKameleoon Visits Dataを取得します。このメソッドはターゲット設定の決定を行う際にアクセスできるようにデータを保存します。このメソッドを通じて取得したデータは、以下のことが必要な場合に重要です:
  • 複数のデバイスから収集されたデータにアクセスする。
  • ユーザーの履歴(前回のセッション中に訪問したページを含む)を確認する。
  • データレイヤー変数やフロントエンドにのみ適用されるゴールなどのクライアント側データを利用する。
可能なユースケースについて詳しく理解するために、この記事をお読みください。
デフォルトでは、getRemoteVisitorData()はscope=Visitorで保存された最新のカスタムデータを取得し、メソッドaddData()を呼び出す必要なしに訪問者に添付します。この機能は複数デバイス間でのカスタムデータの同期に特に役立ちます。
パラメーター
型RemoteVisitorDataParamsTypeを持つオブジェクト。以下を含みます:
戻り値
スローされる例外
getRemoteVisitorData() でパラメーターを使用する
getRemoteVisitorData()メソッドは、訪問者データを取得する際にさまざまなパラメーターを定義できる柔軟性を提供します。このメソッドは、ゴール、実験、またはバリエーションに基づいてデータをターゲット設定でき、同じアプローチがすべてのデータ型に適用されます。たとえば、「Order transaction」ゴールを完了した訪問者に関するデータを取得したい場合は、getRemoteVisitorData()メソッドでパラメーターを指定して、ターゲット設定を絞り込むことができます。最後の5回の訪問でゴールを達成したユーザーに興味がある場合は、previousVisitAmountパラメーターを5に、conversionsを真に設定できます。この例に示される柔軟性は、目標データに限定されません。getRemoteVisitorData() メソッド内でパラメーターを使用して、様々な訪問者の行動に関するデータを取得できます。
利用可能な VisitorDataFiltersType フィルターのリストは以下の通りです。

getVisitorWarehouseAudience()

getVisitorWarehouseAudienceメソッドは非同期であり、データウェアハウスから訪問者に関連するすべてのオーディエンスデータを取得します。このメソッドを使用するには、通常は内部ユーザーIDに対応するvisitorCodeとwarehouseKeyを提供する必要があります。customDataIndexパラメーターは、Kameleoonが訪問者をターゲット設定するために使用するカスタムデータを参照します。詳細については、ウェアハウスターゲット設定ドキュメントを参照してください。
パラメーター
以下の構成をもつパラメーターオブジェクト。
戻り値
スローされる例外

setLegalConsent()

法的同意を処理する場合、KameleoonUtilsから非推奨のメソッドではなく、KameleoonClientクラスからgetVisitorCodeメソッドを使用することが重要です。このメソッドは引数としてdomainを必要としないことに注意してください。代わりに、domainをKameleoonClientコンストラクターに渡す必要があります。明確にするために、上記の例を参照してください。
メソッドsetLegalConsentは、訪問者が個人データの使用に対して法的同意を与えたかどうかを判断します。legalConsentパラメーターをfalseに設定すると、トラッキングリクエストに含めることができるデータの種類が制限されます。この措置は、法的規制要件に準拠しながら、訪問者データを責任を持って管理することを保証します。個人データの詳細については、同意管理ポリシーを参照してください。
パラメーター
パラメーターオブジェクトは以下の型でオーバーロードされます:
  • 型SetLegalConsentParametersType(NodeJS/Express/NextJS SSR methodsの場合)、以下のフィールドを含みます:
  • 型SetNextJSLegalConsentParametersType(NextJS SSR server actionsの場合)、以下のフィールドを含みます:
  • 型 SetDenoLegalConsentParametersType(Deno 用)は、以下のフィールドを含みます。
  • 型 SetCustomLegalConsentParametersType(カスタム VisitorCodeManager 実装用)は、以下のフィールドを含みます。
スローされる例外
同意撤回の動作
setLegalConsent() を consent=false で呼び出すと、SDK は kameleoonVisitorCode クッキーを削除しません。代わりに、クッキーの有効期限の延長を停止し、クッキーが自然に期限切れになるまで持続します。 コンプライアンス要件でオプトアウト時にクッキーファイルを即座に削除する必要がある場合は、フレームワークのネイティブクッキー管理メソッドを使用して手動で削除する必要があります。SDK は自動的にファイルを削除しません。

ゴールとサードパーティ分析

trackConversion()

  • 📨 トラッキングデータを Kameleoon に送信
このメソッドを使用して、特定のゴールとユーザーのコンバージョンをトラッキングします。このメソッドは visitorCode と goalId が必要です。さらに、このメソッドはオプションの revenue、negative、metadata 引数も受け付けます。visitorCode は通常、実験をトリガーするときに使用されたものと同じです。trackConversion() メソッドは値を返しません。このメソッドはノンブロッキングです。サーバー呼び出しは非同期で行われます。
パラメーター
以下の構成をもつパラメーターオブジェクト。
メタデータの値には、生データエクスポートと結果ページでアクセスできます。metadata パラメーターが指定されている場合、Kameleoon はこれらの指定された値を現在のコンバージョンに使用します。これは、addData() メソッドを使用して以前に収集されたものではなく、パラメーターが省略された場合、Kameleoon はコンバージョンの前に追跡された最後の値を使用します。これらのCustomData は同じ訪問内です。Kameleoon は、trackConversion() メソッドにパラメーターとして明示的に渡されたメタデータ値のみを考慮します。以下の例では、Kameleoon は明示的にパラメーターとして渡されたカスタムデータ値のみでコンバージョンを関連付けます(ここで:インデックス 5 と値「Amex Credit Card」)。
スローされる例外

getEngineTrackingCode()

Kameleoon は Mixpanel、Google Analytics 4、Segment など複数の分析ソリューションと統合します。サーバーサイド実験を正しくトラッキングするには、訪問者が実験をトリガーした後に getEngineTrackingCode() メソッドを呼び出してください。SDK は訪問者が前の5秒間にトリガーした実験の JavaScript キューコマンドを返します。このコードをページに挿入すると、Engine.js がコマンドを処理し、アクティブな分析統合を通じてエクスポージャーイベントを送信します。 詳細については、ハイブリッド実験を参照してください。
  • この機能を使用するには、NodeJS SDK と Kameleoon Engine.js の両方を実装してください。Engine.js はこのフロー内でトラッキング用にのみ使用されるため、非同期タグを終了 </body> タグの前にインストールできます。
  • 返されたトラッキングコードを HTML <script> タグに直接挿入できます。
この例では、123456 と 234567 は実験 ID であり、7890 と 8901 はバリエーション ID です。実装では、SDK は返されたトラッキングコードでこれらの値を生成します。
パラメーター
戻り値
スローされる例外

イベント

setEventHandler()

このメソッドを使用して、SDKイベントのハンドラーを登録します。選択したイベントが発生すると、SDKがハンドラーを呼び出します。同じイベントタイプに新しいハンドラーを登録すると、以前のハンドラーが置き換えられます。handler に null を渡すと、選択したイベントタイプの現在のハンドラーが削除されます。
DataFileUpdateEventDataType は、SDKデータファイルの更新に関する情報を含みます。
パラメーター

データ型

Kameleoonデータ型は、データを事前定義された形式で保存するためのヘルパークラスです。flush()の実行中に、SDKはすべてのデータを収集し、トラッキングリクエストとともに送信します。 SDK で利用可能なデータは、Kameleoon アプリのターゲティングおよびレポートでは、データを追加する(たとえば、addData() メソッドを使用する)まで利用できません。 詳細については、訪問履歴を使用してユーザーをターゲットを参照してください。
Kameleoon をハイブリッドモードで使用している場合は、getRemoteVisitorData() を呼び出して、Kameleoon が以前に収集したすべてのデータを自動的に入力できます。

Browser

Browser はブラウザー情報を含みます。
各訪問者は1つの Browser のみを持つことができます。2番目の Browser を追加すると、最初のものが上書きされます。

UniqueIdentifier

UniqueIdentifier データは、訪問者を一意に識別するために使用されます。 訪問者に対して UniqueIdentifier を追加する場合、visitorCode は一意の訪問者識別子として使用され、これは クロスデバイス実験 に役立ちます。UniqueIdentifier を訪問者にリンクすることにより、この訪問者が別の訪問者に関連付けられていることを SDK に通知します。 UniqueIdentifier パラメータは、特定のエッジケースで有益です。たとえば、セッションマージを通じてリンクされた内部 ID を持つが、訪問者に最初に割り当てられた匿名 visitorCode にアクセスできない場合、このパラメータは役立ちます。
各訪問者は1つの UniqueIdentifier のみを持つことができます。別の UniqueIdentifier を追加すると、最初のものが上書きされます。

Conversion

Conversion データセットはここに保存され、関連する任意のゴールでフィルタリングするために使用できます。
  • 各訪問者は複数の Conversion オブジェクトを持つことができます。
  • Kameleoon アプリで goalId を見つけることができます。
ConversionParametersType conversionParameters - 以下で説明するコンバージョンパラメーターを含むオブジェクト
Cookie は訪問者のデバイスに保存されているクッキーに関する情報を含みます。 NodeJS SDK は、クッキーを抽出するために request または response を必要としません。代わりに、Cookie データを使用してクッキーを手動で追加します。
各訪問者は 1 つの Cookie のみを持つことができます。2 番目の Cookie を追加すると、最初のものが上書きされます。
メソッド
Cookie データには静的なユーティリティメソッド fromString があり、有効なクッキーデータを含む文字列を解析してクッキーを作成するのに役立ちます。 メソッドは string をパラメータとして受け取り、初期化された Cookie インスタンスを返します。

GeolocationData

GeolocationData は訪問者の位置情報の詳細を含みます。
各訪問者は 1 つの GeolocationData のみを持つことができます。2 番目の GeolocationData を追加すると、最初のものが上書きされます。
型 GeolocationInfoType のオブジェクトパラメータには、以下のフィールドが含まれます。

CustomData

CustomData は、あらゆるタイプのデータを各訪問者に関連付けることができます。その後、セグメントのターゲティング条件として、または実験レポートのフィルタ/内訳として使用できます。 カスタムデータの詳細については、この 記事 を参照してください。 将来の訪問でカスタムデータを維持するために、SDK は CustomData を Visitor スコープで次のトラッキングリクエストとともに送信します。スコープは カスタムデータダッシュボード で設定できます。
  • 各訪問者は、一意の index ごとに 1 つの CustomData のみを許可されています。同じ index を持つ別の CustomData を追加すると、既存のものが置き換えられます。
  • カスタムデータの ‘index’ は カスタムデータダッシュボード の「INDEX」列で確認できます。
  • プライバシー上の理由から、SDK が選択されたインデックスを含むデータを Kameleoon サーバーに送信するのを防ぐには、カスタムデータを作成する際に、オプション:このデータをターゲティング目的のみのローカルで使用する を有効にします。
  • SDK インスタンスが初期化されていない場合、または名前が登録されていない場合に、名前で作成された CustomData インスタンスを追加すると、データは無視されます。

Device

Device はデバイスに関する情報を含みます。
各訪問者は 1 つの Device のみを持つことができます。2 番目の Device を追加すると、最初のものが上書きされます。

OperatingSystem

OperatingSystem は訪問者のオペレーティングシステムに関する情報を含みます。
各訪問者は 1 つの OperatingSystem のみを持つことができます。2 番目の OperatingSystem を追加すると、最初のものが上書きされます。

PageView

PageView は Web ページに関する情報を含みます。
各訪問者は一意の URL ごとに 1 つの PageView を持つことができます。同じ URL で PageView を追加すると、訪問者がページを再度訪問したことを SDK に通知します。
PageViewParametersType pageViewParameters - 以下で説明されているページビュー パラメータを含むオブジェクト
Kameleoon アカウントで リファラー インデックスまたは ID を見つけることができます。このインデックスは 0 から始まることに注意してください。つまり、特定のサイト用に作成する最初の取得チャネルに ID 0 が割り当てられ、1 ではありません。

UserAgent

UserAgent は訪問者のユーザーエージェントに関する情報を保存します。サーバー側の実験はクライアント側の実験よりも ボットトラフィック に対して脆弱です。これに対処するために、Kameleoon は IAB/ABC International Spiders and Bots List を使用して既知のボットとスパイダーを特定します。Kameleoon は また、UserAgent フィールドを使用して、変換メトリクスに歪みを与える可能性のあるボットやその他の不要なトラフィックをフィルタリングします。詳細については、ボットフィルタリング に関するヘルプ記事を参照してください。 内部ボットを使用する場合、ユーザー エージェントから除外するために、userAgent の値 curl/8.0 を渡すことをお勧めします。
訪問者は 1 つの UserAgent のみを持つことができます。2 番目の UserAgent を追加すると、最初のものが上書きされます。
サーバー側の実験は、クライアント側の実験よりも ボット トラフィック に対して脆弱です。これに対処するために、Kameleoon は IAB/ABC International Spiders and Bots List を使用して、既知のボットとスパイダーを識別します。サーバー側の実験を実行するときに、Web サイトを閲覧している各訪問者のフィルタリング対象のユーザー エージェントを渡して、分析にボットをカウントしないようにしてください。内部ボットを使用する場合、ユーザー エージェントから除外するために、userAgent の値 curl/8.0 を渡すことをお勧めします。

ApplicationVersion

ApplicationVersion はアプリケーションのセマンティックバージョン番号を表します。
訪問者 は 1 つの ApplicationVersion のみを持つことができます。2 番目のインスタンスを追加すると、最初のものが上書きされます。

戻り値の型

DataFile

DataFile には SDK 設定の詳細が含まれています。 クライアントが必要な場合は、追加情報を使用して拡張できます。詳細が必要な場合は、カスタマー サクセス マネージャーにお問い合わせください。

FeatureFlag

FeatureFlag は、フィーチャーフラグ自体を定義するプロパティのセットを表します(例えば、その Variations、Rules、環境ステータス、その他の関連詳細)。 クライアントが必要な場合は、追加情報を使用して拡張できます。詳細が必要な場合は、カスタマー サクセス マネージャーにお問い合わせください。

Rule

Rule は、ルール自体を定義するプロパティのセットを表します(例えば、その Variations)。 クライアントが必要な場合は、追加情報を使用して拡張できます。詳細が必要な場合は、カスタマー サクセス マネージャーにお問い合わせください。

Variation

Variation には、訪問者に割り当てられたバリエーション(またはデフォルト バリエーション(特定の割り当てが存在しない場合)に関する情報が含まれています。
  • コードがidまたはexperimentIdがnullである場合に対応していることを確認してください。これはデフォルトバリエーションを示しています。
  • バリエーションに関連付けられた変数がない場合、variablesマップは空である可能性があります。

Variable

Variable には、割り当てられたバリエーションに関連する変数に関する情報が含まれています。

エッジヘルパー

これらのヘルパーメソッドは、主に短期間またはエッジスタイルのランタイムを対象としており、SDK がリクエスト間の明確な再検証を必要とする場合があります。

refreshDataFileIfStale()

refreshDataFileIfStale() メソッドは、現在の設定が古い場合にのみデータファイルの再検証をトリガーします。 データファイルがまだ有効で、最後の更新から設定されたupdateIntervalの期間が経過していない場合、メソッドはfalseを返し、更新リクエストは行われません。 データファイルが古い場合、メソッドは再検証リクエストが完了するのを待ち、リクエストが実行されたときに true を返します。true を返すことは、チェックが実行されたことを意味しますが、設定自体は変わらない場合があります。たとえば、サーバーが現在のデータファイルが既に最新であることを報告する場合などです。
典型的な長期間の Node.js ランタイムでは、このメソッドの使用は一般的に推奨されません。SDK は初期化と通常のランタイム実行中に既にデータファイルを自動的に新鮮に保つからです。Cloudflare Workers などのエッジスタイル環境では役立つ場合があります。ここではランタイムの動作がより短期間であり、再検証が明確にトリガーされる必要がある場合があります。
戻り値

非推奨メソッド

これらのメソッドは非推奨であり、次のメジャー更新で削除されます。

getFeatureFlagVariationKey()

  • 📨 Kameleoonにトラッキングデータを送信します
  • 🎯 Events: EventType.Evaluation
代わりに getVariation メソッドを使用してください。
getFeatureFlagVariationKey() メソッドは、対応するフィーチャーフラグで指定した visitorCode のバリエーションキーを取得します。このメソッドはターゲティングチェック、訪問者に公開される適切なバリエーションの検出、ストレージへの保存、トラッキングリクエストの送信を含みます。
ユーザーがまだフィーチャーフラグのバリエーションキーに割り当てられていない場合、SDK はフィーチャーフラグのルールに基づいてバリエーションをランダムに決定します。ユーザーが既にフィーチャーフラグにリンクされている場合、SDK は以前に割り当てたバリエーションキーを返します。ユーザーが指定されたルールのいずれかを満たさない場合、Kameleoon のフィーチャーフラグ配信ルールで定義されたデフォルト値が返されます。このデフォルト値は常にバリエーションキーではなく、フィーチャーフラグの設定に応じてブール値または別のデータ型にもなります。
パラメーター
戻り値
スローされる例外

getVisitorFeatureFlags()

代わりに getVariations メソッドを使用してください。
getVisitorFeatureFlags() メソッドは、指定した visitorCode を持つ訪問者に対してアクティブなフィーチャーフラグのリストを返し、訪問者がバリエーションの 1 つに割り当てられていることを確認します。
  • 🚫 Kameleoon にトラッキングデータを送信しない
  • 🎯 イベント: EventType.Evaluation(各フィーチャーフラグに対して)
このメソッドは訪問者の アクティブな フィーチャーフラグのみを収集します。これは、訪問者が off(デフォルトまたはコントロール)バリエーションに割り当てられているすべてのフィーチャーフラグを除外することを意味します。For example:
訪問者のすべてのフィーチャーフラグが必要な場合は、getFeatureFlags を使用してください。
パラメーター
戻り値
スローされる例外

getActiveFeatureFlags()

  • 🚫 Kameleoon にトラッキングデータを送信しない
  • 🎯 イベント: EventType.Evaluation(各フィーチャーフラグに対して)
代わりに getVariations メソッドを使用してください。
getActiveFeatureFlags() メソッドは Map を返します。キーはフィーチャーキーを表し、値は訪問者のバリエーションとその変数に関する詳細情報を含みます。
このメソッドは訪問者の アクティブな フィーチャーフラグのみを収集します。これは、訪問者が off(デフォルトまたはコントロール)バリエーションに割り当てられているすべてのフィーチャーフラグを除外することを意味します。詳細については、getVisitorFeatureFlags メソッドの 注意 セクションを参照してください。
パラメーター
戻り値
スローされる例外

getFeatureFlagVariable()

  • 📨 Kameleoonにトラッキングデータを送信します
  • 🎯 Events: EventType.Evaluation
代わりに getVariation メソッドを使用してください。
getFeatureFlagVariable() メソッドは、visitorCode に基づいて識別されたフィーチャーフラグ内の訪問者の変数を取得します。このメソッドはターゲティングチェック、訪問者に対する適切なバリエーションの決定、ストレージへの保存、トラッキングリクエストの送信を含みます。
パラメーター
GetFeatureFlagVariableParamsType 型のパラメーターオブジェクト。以下のフィールドを含みます。
戻り値
スローされる例外

getFeatureFlagVariables()

  • 📨 Kameleoonにトラッキングデータを送信します
  • 🎯 イベント: EventType.Evaluation(各フィーチャーフラグに対して)
代わりに getVariation メソッドを使用してください。
getFeatureFlagVariables() メソッドは、指定した訪問者とフィーチャーフラグの変数値のリストを取得します。このメソッドは、ユーザーがターゲットされているかどうかを確認し、訪問者に割り当てられたバリエーションを識別して、ストレージに保存し、トラッキングリクエストを送信します。
パラメーター
戻り値
スローされる例外

onConfigurationUpdate()

EventType.ConfigurationUpdate を使用して onEvent メソッドを代わりに使用します。
onConfigurationUpdate() メソッドは、クライアント設定の更新時にコールバックを実行します。
このメソッドはリアルタイム更新のサーバー送信イベント(SSE)にのみ適用できます。
パラメーター
スローされる例外

getFeatureFlags()

代わりに getDataFile() メソッドを使用してください。
🚫 Kameleoonにトラッキングデータを送信しません getFeatureFlags() メソッドは、クライアント設定に保存されているフィーチャーフラグのリストを取得します。
戻り値
スローされる例外

onEvent()

代わりに setEventHandler() を使用してください。
onEvent()メソッドは、特定のイベントがトリガーされたときにコールバックを実行します。コールバック関数はイベントに関連付けられたデータにアクセスします。 このドキュメント内のSDKメソッドは、それらがトリガーするイベントタイプ(存在する場合)を記述しています。
各EventTypeに割り当てることができるコールバックは1つだけです。
イベント
イベントはEventType列挙型で定義されています。eventDataパラメーターはイベントタイプに基づいて異なる型になります。
パラメーター
スローされる例外