開発者ガイド
このガイドは、SDK を数分で統合し、Java アプリケーションで実験の実行を開始できるようにすることを目的としています。はじめに
スターターキット
Kameleoon は、SDK をテストするためのスターターキットとデモアプリケーションを提供しています。スターターキットには、アプリ内で SDK メソッドをどのように使用するかを示す例を含む、完全に構成されたアプリが含まれています。スターターキット、デモアプリケーション、および詳細な手順は Java 用スターターキット で入手できます。Java クライアントのインストール
インストールパッケージは Maven Central リポジトリで入手できます。Java SDK は、右側の例に示すように、プロジェクトのpom.xml ファイルに依存関係を追加することでインストールできます。別のプロジェクト管理システムを使用している場合は、追加の例について 統合 ページを参照してください。
- Java EE
- Jakarta EE
pom.xml
追加の構成
認証情報を提供し、SDK の動作をカスタマイズするために、.properties 構成ファイルを作成します。サンプル構成ファイル をダウンロードすることもできます。
このファイルはデフォルトのパス /etc/kameleoon/client-java.conf に保存することを推奨しますが、kameleoon-client-java.properties としてクラスパス内のどこにでも保存できます。
次の表は、設定可能なプロパティを示しています:
| キー | 説明 | デフォルト値 |
|---|---|---|
clientId / client_id (必須) | Kameleoon サービスへの認証に必要です。client_id を確認するには、API 認証情報 のドキュメントを参照してください。 | |
clientSecret / client_secret (必須) | Kameleoon サービスへの認証に必要です。client_secret を確認するには、API 認証情報 のドキュメントを参照してください。 | |
sessionDuration / session_duration_minute (オプション) | Kameleoon が訪問者とその関連データをメモリ (RAM) に保存する所定の時間間隔を指定します。セッション時間を長くすると、訪問者データを保存するために割り当てる必要のある RAM の量が増加することに注意してください。 | 30 分 |
refreshInterval / refresh_interval_minute (オプション) | SDK がアクティブな実験とフィーチャーフラグの構成を取得するリフレッシュ間隔を分単位で指定します。この値は、フィーチャーフラグの有効化/無効化や実験の開始などの変更を本番サーバーに反映するためにかかる最大時間を決定します。さらに、ストリーミングモード も提供しています。これは server-sent events (SSE) を使用して、新しい構成を自動的に SDK にプッシュし、遅延なしでリアルタイムに新しい構成を適用します。 | 60 分 |
defaultTimeout / default_timeout_millisecond (オプション) | SDK からのネットワークリクエストのタイムアウトをミリ秒単位で指定します。安定した接続がない場合は、値を 30 秒以上に設定してください。一部のメソッドには、その特定のメソッドのデフォルトタイムアウトを上書きするために使用できる追加のパラメータがあります。メソッドのタイムアウトを明示的に指定しない場合、SDK はこのデフォルト値を使用します。 | 10000 ミリ秒 |
trackingInterval / tracking_interval_millisecond (オプション) | トラッキングリクエストの間隔をミリ秒単位で指定します。Kameleoon がフィーチャーフラグについて評価した、またはデータがフラッシュされたすべての訪問者がこのトラッキングリクエストに含まれ、SDK は間隔ごとに 1 回実行されます。最小値は 1000 ms (デフォルトでもあります)、最大値は 5000 ms です。 | 1000 ミリ秒 |
environment / environment (オプション) | フィーチャーフラグの構成を使用する環境です。値は production、staging、development のいずれかです。詳細については 環境の管理 の記事を参照してください。 | production |
topLevelDomain / top_level_domain (ハイブリッドモードで必須) | あなたの Web サイトの現在のトップレベルドメイン。形式: example.com を使用します。https://、www、その他のサブドメインは含めないでください。Kameleoon はこの情報を使用して、トップレベルドメインに対応するクッキーを設定します。 | null |
proxyHost / proxy_host (オプション) | SDK によるすべての送信サーバー呼び出しのプロキシホストを設定します。 | null |
networkDomain / network_domain (オプション) | SDK が送信リクエストに使用するカスタムドメインで、主にプロキシ用途で使用されます。有効なドメイン (例: example.com または sub.example.com) である必要があります。無効な形式の場合、Kameleoon のデフォルト値が使用されます。 | null |
Kameleoon クライアントの初期化
アプリケーションに SDK をインストールし、認証情報と SDK の動作 (/etc/kameleoon/client-java.conf 内) を構成したら、次のステップはアプリケーションコードで Kameleoon クライアントを作成することです。例:
create() メソッドリファレンス を参照)。
Kameleoon を通じた A/B テストのコンテキストにおいて、アプリケーションコードの適切なロジックを保証するのは、あなたの責任です。良い慣行として、実験をまだ開始していない場合に、現在の訪問者を実験から除外できることを常に想定するべきです。この除外は、デフォルトおよびリファレンスバリエーションロジックの実装に対応しているため、簡単です。
フィーチャーフラグの有効化
ユーザーへの一意の ID の割り当て
ユーザーに一意の ID を割り当てるには、getVisitorCode() メソッドを使用できます。visitor code が存在しない場合 (リクエストヘッダーのクッキーから)、メソッドはランダムな一意の ID を生成するか、生成済みの defaultVisitorCode を使用します。その後、その ID はレスポンスヘッダーのクッキーに設定されます。
Kameleoon を ハイブリッドモード で使用している場合、getVisitorCode() メソッドを呼び出すことで、一意の ID (visitor code) がアプリケーションファイル engine.js (以前は kameleoon.js という名前) と SDK の間で共有されることが保証されます。
フラグ構成の取得
コード内でフィーチャーフラグを実装するには、まず Kameleoon アカウントでフィーチャーフラグを作成する必要があります。 特定のユーザーに対するフィーチャーフラグのステータスまたはバリエーションを判別するには、getVariation() または isFeatureActive() メソッドを使用して、featureKey に基づいて構成を取得します。
getVariation() メソッドは、ON/OFF 状態のシンプルなフィーチャーフラグと、複数のバリエーションを持つより複雑なフラグの両方を処理します。このメソッドは、フィーチャールールをチェックし、バリエーションを割り当てて、featureKey と visitorCode に基づいてそれを返すことで、ユーザーに適切なバリエーションを取得します。
isFeatureActive() メソッドは、複数のバリエーションやターゲティングオプションを持つより複雑なフィーチャーフラグとは対照的に、ON または OFF 状態のみを持つシンプルなフィーチャーフラグの構成を取得したい場合に使用できます。
フィーチャーフラグに関連する変数がある場合 (各バリエーションに紐付けられた特定の動作など)、getVariation() は Variation オブジェクトへのアクセスも可能にし、割り当てられたバリエーションとその関連実験の詳細を提供します。このメソッドは、ユーザーがターゲットになっているかどうかを確認し、訪問者の割り当てられたバリエーションを見つけて、ストレージに保存します。track=true の場合、SDK は次のトラッキングリクエストで指定された実験に対する露出イベントを送信します。これは SDK の tracking_interval_millisecond に基づいて自動的にトリガーされます。デフォルトでは、この間隔は 1000 ミリ秒 (1 秒) に設定されています。
getVariation() メソッドでは、トラッキングを行うかどうかを制御できます。track=false の場合、SDK は露出イベントを送信しません。これは、SDK 経由でデータをトラッキングするのではなく、Kameleoon エンジンによって管理されるクライアントサイドのトラッキングに依存することを希望する場合に便利です。さらに、track=false を設定することは、すべてのフラグのバリエーションを取得するだけでトラッキングイベントをトリガーしたくない場合に getVariations() メソッドを使用するときに役立ちます。トラッキングの仕組みについて詳しく知りたい場合は、この記事 を参照してください。
ユーザーをターゲティングしたり、レポートで訪問をフィルタリング/分解するためにデータポイントを追加する
ユーザーをターゲットにするには、フィーチャーのバリエーションを取得したりフラグがアクティブかどうかをチェックする前に、関連するデータポイントをそのプロファイルに追加するようにしてください。addData() メソッドを使用して、これらのデータポイントをユーザーのプロファイルに追加します。
他のデバイスで収集されたデータポイントを取得したり、過去のユーザーデータ (Kameleoon をハイブリッドモードで使用している場合にクライアントサイドで収集) にアクセスしたりするには、getRemoteVisitorData() メソッドを使用します。このメソッドは非同期的にサーバーからデータを取得します。バリエーションを取得したりフィーチャーフラグがアクティブかどうかをチェックしたりする 前に getRemoteVisitorData() を呼び出すことが重要です。このデータは、ユーザーを特定のバリエーションに割り当てるために必要になる可能性があるためです。
利用可能なターゲティング条件についての詳細は、このトピックに関する詳細な記事 を参照してください。
さらに、訪問者プロファイルに追加するデータポイントは、実験を分析する際に利用できるため、デバイスやブラウザーなどの要素で結果をフィルタリングしたり分解したりできます。Kameleoon ハイブリッドモードは、クライアントサイドで多くのデータポイントを自動的に収集するため、これらの事前収集されたデータポイントに基づいて結果を簡単に分解できます。完全なリストは こちら を参照してください。
自動的に収集されるもの以外の追加データポイントを追跡する必要がある場合は、Kameleoon の カスタムデータ機能 を使用できます。カスタムデータを使用すると、実験に関連する特定の情報を取得して分析できます。収集したデータを分析のために Kameleoon サーバーに送信するために、flush() メソッドを呼び出すことを忘れないでください。
結果を正確にするためには、
UserAgent データタイプを使用してボットをフィルタリングすることを推奨します。ゴールコンバージョンのトラッキング
ユーザーが目的のアクション (購入など) を完了すると、それはコンバージョンとして記録されます。コンバージョンをトラッキングするには、trackConversion() メソッドを使用し、必須の visitorCode および goalId パラメータを指定します。
コンバージョントラッキングリクエストは、次にスケジュールされたトラッキングリクエストとともに送信されます。これは SDK が (tracking_interval_millisecond で定義された) 定期的な間隔で送信します。リクエストを即座に送信したい場合は、パラメータ instant=true を指定して flush() メソッドを使用します。
分析ソリューションへのイベント送信
コンバージョンをトラッキングし、顧客の分析ソリューションに露出イベントを送信するには、まず Kameleoon を ハイブリッドモード で実装する必要があります。その後、getEngineTrackingCode() メソッドを使用します。
getEngineTrackingCode() メソッドは、分析ソリューションに露出イベントを送信するために必要な一意のトラッキングコードを取得します。このメソッドを使用すると、イベントを記録し、希望する分析プラットフォームに送信できます。
カスタムバケットキーの使用
デフォルトでは、Kameleoon は一意の匿名訪問者 ID (visitorCode) を使用して、フィーチャーフラグバリエーションにユーザーを割り当てます。この ID は通常、ユーザーのデバイス上で生成および保存されます (クライアントサイドおよびサーバーサイドの SDK ではブラウザクッキー内、モバイル SDK では永続ストレージ内)。ただし、特定のシナリオでは、同じ組織のすべてのユーザーがフィーチャーフラグの同じバリアントを見ることを保証する必要があるかもしれません。
カスタムバケットキー オプションを使用すると、独自のカスタムバケット識別子を提供することで、このデフォルトの動作を上書きできます。この上書きにより、Kameleoon の割り当てロジックがデフォルトの visitorCode の代わりに指定したキーを使用することが保証されます。
ユースケース
カスタムバケットキーを使用することは、特に次のような状況において、フィーチャーフラグの割り当ての一貫性と正確性を維持するために不可欠です:- アカウントレベルまたは組織の実験: B2B 製品や、同じ組織のすべてのユーザーを同じバリエーションに割り当てたいシナリオでは、
accountIdのような識別子を使用できます。カスタムバケットキーは、チーム全体または会社全体に影響を与える機能の A/B テストにとって重要です。
技術的な詳細
フィーチャーフラグのカスタムバケットキーを構成する際、アプリケーションのデータから特定の識別子を Kameleoon に提供します:- カスタムキーの提供:
addData()メソッドを使用して、Kameleoon SDK にカスタム識別子を提供します。このメソッドでは、選択したカスタムバケットキーをCustomDataオブジェクトとして渡します。ここで、newVisitorCodeはバケットに使用したい識別子 (たとえば、新しいuserIdまたはaccountId) を指します。
- バケットロジック:
addData()メソッドを介してカスタムバケットキーが提供されると、ユーザーをバリエーションに割り当てるためのすべてのハッシュ計算で、デフォルトのvisitorCodeの代わりにnewVisitorCode(カスタムキー) が使用されます。newVisitorCodeを使用することは、バケット決定がカスタム識別子に紐付けられることを意味し、その識別子が存在するさまざまなコンテキストにわたって一貫した割り当てが保証されます。 - データトラッキングと分析:
newVisitorCode(カスタムキー) はバケット決定に使用されますが、後続のすべてのデータ (たとえば、トラッキングイベントやコンバージョン) は 元のvisitorCodeと関連付けて送信される ことに注意することが重要です。この分離により、バケットがより高いレベル (アカウントなど) で、または複数のデバイス/セッションにわたって実行された場合でも、分析が実験のより広いコンテキスト内で個々のユーザージャーニーやインタラクションを正確に反映することが保証されます。元の訪問者データは、包括的なレポートのために完全に保持されます。
技術要件
カスタムバケットキーを効果的に使用するには:- キーは
Stringである必要があります。 - バケットしたいエンティティに対して一意である必要があります (たとえば、
userIdを使用する場合、各ユーザーの ID は一意である必要があります)。 - キーは、そのユーザーまたはリクエストに対してフィーチャーフラグの決定が評価される正確な瞬間に SDK で利用可能である必要があります。
ターゲティング条件
Kameleoon SDK は、キャンペーンでユーザーをターゲットにするために使用できるさまざまな事前定義されたターゲティング条件をサポートしています。この SDK がサポートする条件のリストについては、訪問履歴を使ってユーザーをターゲットにする を参照してください。 また、独自の 外部データを使ってユーザーをターゲットにする こともできます。クロスデバイス実験
複数のデバイスからアプリにアクセスする訪問者をサポートするために、Kameleoon は以前に収集された訪問者データを各訪問者のデバイス間で同期させ、クロスデバイス実験を通じてデバイス間で訪問履歴を統合できるようにします。Kameleoon がデバイス間でデータを処理する方法に関するケーススタディと詳細情報は、クロスデバイス実験に関する記事 で入手できます。デバイス間でのカスタムデータの同期
カスタムマッピング同期は、デバイス間で訪問者データを揃えるために使用されますが、常に必要というわけではありません。カスタムマッピング同期が不要な 2 つのシナリオを以下に示します: デバイス間で同じユーザー ID すべてのデバイスで同じユーザー ID が一貫して使用されている場合、カスタムマッピング同期なしで自動的に同期が処理されます。複数のデバイス間で収集されたデータを同期したい場合は、getRemoteVisitorData() メソッドを呼び出すだけで十分です。
一貫した ID を持つマルチサーバーインスタンス
複数のサーバーが関与する複雑なセットアップ (たとえば、分散サーバーインスタンス) で、サーバー間で同じユーザー ID が利用可能な場合、追加のカスタムマッピング同期なしに、サーバー間の同期 (getRemoteVisitorData() による) で十分です。
追加データが必要なお客様は、getRemoteVisitorData() メソッドの説明を参照してください。以下のコードでは、データを正確に取得するために、2 つのデバイス間で同じ一意の識別子 (この場合は visitorCode で、userId とも呼ばれます) が一貫して使用されていることを前提としています。
収集したデータをリアルタイムで同期したい場合、カスタムデータのスコープに Visitor を選択する必要があります。
Device A
Device B
セッション統合のためのカスタムデータの使用
クロスデバイス実験 では、訪問者の履歴を各デバイス間で統合できます (履歴の照合)。履歴の照合により、異なる訪問者セッションを 1 つに統合できます。訪問履歴を統合するには、CustomData を使用して訪問者の一意の識別子を提供します。詳細については、専用ドキュメント を参照してください。
クロスデバイス照合が有効になった後、パラメータ userId を指定して getRemoteVisitorData() を呼び出すと、特定のユーザーに関する既知のすべてのデータが取得されます。
同じ識別子を持つセッションには、実験において常に同じバリエーションが表示されます。実験の結果ページの訪問者ビューでは、これらのセッションは単一の訪問者として表示されます。
SDK の構成により、関連付けられたセッションは常に実験の同じバリエーションを見ることが保証されます。ただし、クロスデバイスバリエーション割り当てにはいくつかの制限があります。これらの制限は こちら に概説されています。
Kameleoon プラットフォームでカスタムデータをセットアップするには、クロスデバイス履歴照合の有効化 ガイドに従ってください。
その後、通常どおりに SDK を使用できます。セッション統合のコンテキストで役立つ可能性のあるメソッドは以下のとおりです:
getRemoteVisitorData()にUniqueIdentifier(true)を追加 - すべての関連付けられた訪問者のデータを取得します。trackConversion()またはflush()にUniqueIdentifier(true)データを追加 - 別の訪問者に関連付けられた特定の訪問者の一部のデータをトラッキングします。
getVisitorCode() メソッドによって生成された匿名訪問者識別子が使用されます。ユーザーがログインした後、匿名訪問者がユーザー ID と関連付けられ、訪問者の一意の識別子として使用されます。
ロギング
SDK は、内部のさまざまなプロセスや問題を反映するログを生成します。ログレベル
SDK は、ログレベルによるログの制限の構成をサポートしています。ログのカスタムハンドリング
SDK は、デフォルトでログをコンソール出力に書き込みます。この動作は上書きできます。ログレベルによるロギング制限は、ログハンドリングロジックとは別に実行されます。
リファレンス
これは Java SDK の完全なリファレンスドキュメントです。初期化
create()
SDK を使用するには、初期化を完了する必要があります。アプリケーションは、KameleoonClient クラスのオブジェクトを通じて SDK とのすべてのやり取りを行います。KameleoonClientFactory の静的メソッド create() を使用してこのオブジェクトを作成します。
引数
| 名前 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
| siteCode (必須) | String | SDK で使用している Kameleoon プロジェクトの 一意のキー です。 | |
| configurationPath (オプション) | String | SDK 構成ファイルへのパス。 | /etc/kameleoon/client-java.conf |
| kameleoonConfig (オプション) | KameleoonClientConfig | 構成ファイルを使用する代わりに渡すことができる構成 SDK オブジェクト。 | null |
戻り値
| 型 | 説明 |
|---|---|
KameleoonClient | アプリケーションが実験とフィーチャーフラグを管理するために使用できる KameleoonClient クラスのインスタンス。 |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.ConfigCredentialsInvalid | 要求された認証情報が提供されなかった (構成ファイル内またはメソッドへの引数として) ことを示す例外。 |
| KameleoonException.SiteCodeIsEmpty | 指定されたサイトコードが無効な値である空の文字列であることを示す例外。 |
waitInit()
waitInit() は、KameleoonClient の初期化を待機します。このメソッドを使用すると、他の操作に進む前に SDK がクライアントを正常に初期化したかどうかを確認できます。
waitInit() メソッドが失敗した場合、初期化プロセスは中断されることなく続行されます。waitInit() メソッドへの後続の呼び出しは、KameleoonClient の現在の状態を反映した結果を返します。したがって、SDK のステータスをチェックするために waitInit() メソッドを複数回呼び出すことができます。戻り値
| 型 | 説明 |
|---|---|
CompletableFuture<Void> | クライアントが正常に初期化されたときにタスクが完了します。 |
スローされる例外
| 型 | 説明 |
|---|---|
| SDKNotReady | クライアントが正しく初期化されておらず、まだ使用できないことを示す例外。 |
フィーチャーフラグとバリエーション
isFeatureActive()
- 📨 Kameleoon にトラッキングデータを送信します (
trackパラメータに依存)
このメソッドは以前
activeFeature と呼ばれており、SDK バージョン 4.0.0 で削除されました。visitorCode と featureKey を必須引数として受け取ります。
ユーザーがこのフィーチャーフラグに関連付けられていない場合、SDK はランダムなブール値 (このフィーチャーにユーザーを追加するには true、ユーザーをフィーチャーから除外するには false) を返します。指定された visitorCode を持つユーザーがすでにこのフィーチャーフラグに登録されている場合、SDK は以前の featureFlag 値を検出します。
潜在的な例外をキャッチして処理するようにしてください。
visitorCode を指定すると、isFeatureActive() メソッドはこれを一意の訪問者識別子として使用します。これは クロスデバイス実験 に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
パラメータ
isUniqueIdentifier は非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は特殊な状況で役立ちます。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないが、セッション統合を通じてその訪問者にリンクされている内部 ID を使用できる場合などです。引数
| 名前 | 型 | 説明 |
|---|---|---|
| track | boolean | フィーチャー評価のトラッキングを有効または無効にするためのオプションのパラメータ (デフォルトは true)。 |
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
| featureKey | String | ユーザーのステータスをチェックしたいフィーチャーのキー。このフィールドは必須です。 |
| isUniqueIdentifier (非推奨) | boolean | visitorCode が一意の識別子であるかどうかを指定するためのオプションのパラメータ。指定されていない場合、デフォルト値は false です。このフィールドはオプションです。 |
戻り値
| 型 | 説明 |
|---|---|
boolean | 指定された visitorCode に対して登録されているフィーチャーの値。 |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.FeatureNotFound | 要求されたフィーチャー ID が SDK の内部構成で見つからなかったことを示す例外。この例外は通常、フィーチャーフラグが Kameleoon 側でまだ有効化されていない (ただし、フィーチャーを実装するコードはアプリケーションにすでにデプロイされている) ことを意味します。 |
| KameleoonException.VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
getVariation()
- 📨 Kameleoon にトラッキングデータを送信します (
trackパラメータに依存)
Variation を取得します。
このメソッドは、visitorCode と featureKey を必須引数として受け取ります。track 引数はオプションで、デフォルトは true です。
訪問者に割り当てられた Variation を返します。訪問者がフィーチャーフラグのルールに関連付けられていない場合、メソッドは指定されたフィーチャーフラグのデフォルトの Variation を返します。
潜在的な例外を管理するために、コードに適切なエラー処理が実装されていることを確認してください。
デフォルトのバリエーションとは、訪問者がフィーチャーフラグの事前定義された配信ルールのいずれにも一致しないときに、訪問者に割り当てられるバリエーションを指します。言い換えれば、特定のルールでターゲットにされていないすべてのユーザーに適用されるフォールバックのバリエーションです。これは、管理インターフェイスの「それ以外のすべての人については…」セクションのバリエーションとして表されます。
引数
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 | |
| featureKey (必須) | String | 訪問者に公開したいフィーチャーのキー。 | |
| track (オプション) | boolean | フィーチャー評価のトラッキングを有効または無効にするためのオプションのパラメータ。 | true |
戻り値
| 型 | 説明 |
|---|---|
Variation | 特定のフィーチャーフラグに対して、特定の訪問者に割り当てられた Variation。 |
スローされる例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
FeatureNotFound | 要求されたフィーチャーキーが SDK の内部構成で見つからなかったことを示す例外。通常、これはフィーチャーフラグが Kameleoon アプリで有効化されていない (ただし、フィーチャーを実装するコードはアプリケーションにすでにデプロイされている) ことを意味します。 |
FeatureEnvironmentDisabled | フィーチャーフラグが訪問者の現在の環境 (本番、ステージング、開発など) で無効になっていることを示す例外。 |
getVariations()
- 📨 Kameleoon にトラッキングデータを送信します (
trackパラメータに依存)
Variation オブジェクトのマップを取得します。
このメソッドは、利用可能なすべてのフィーチャーフラグを反復処理し、指定された訪問者に関連付けられた各フラグの割り当てられた Variation を返します。visitorCode を必須引数として受け取り、onlyActive と track はオプションです。
onlyActiveがtrueに設定されている場合、メソッドgetVariations()は、ユーザーがoffバリエーションでバケットされていないことを条件として、フィーチャーフラグのバリエーションを返します。trackパラメータは、メソッドがバリエーションの割り当てをトラッキングするかどうかを制御します。デフォルトではtrueに設定されています。falseに設定されている場合、トラッキングは無効になります。
Variation を値として構成されます。フィーチャーフラグに割り当てられたバリエーションがない場合、そのフラグのデフォルトの Variation を返します。
潜在的な例外を管理するために、適切なエラー処理を実装する必要があります。
デフォルトのバリエーションとは、訪問者がフィーチャーフラグの事前定義された配信ルールのいずれにも一致しないときに、訪問者に割り当てられるバリエーションを指します。言い換えれば、特定のルールでターゲットにされていないすべてのユーザーに適用されるフォールバックのバリエーションです。これは、管理インターフェイスの「それ以外のすべての人については…」セクションのバリエーションとして表されます。
引数
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 | |
| onlyActive (オプション) | boolean | アクティブな (true) またはすべての (false) フィーチャーフラグのバリエーションを返すかどうかを示すオプションのパラメータ。 | false |
| track (オプション) | boolean | フィーチャー評価のトラッキングを有効または無効にするためのオプションのパラメータ。 | true |
戻り値
| 型 | 説明 |
|---|---|
Map<String, Variation> | 対応するフィーチャーのキーを使用して、フィーチャーフラグの割り当てられた Variation オブジェクトを含むマップ。 |
スローされる例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
setForcedVariation()
このメソッドを使用すると、標準的な評価プロセスをバイパスして、特定のVariation をユーザーにプログラム的に割り当てることができます。これは、通常の評価ロジックが不要、またはスキップする必要がある制御された実験で特に有用です。デバッグやカスタムテストなどのシナリオでも役立ちます。
強制 バリエーションが設定されると、Kameleoon のリアルタイム評価ロジックが上書きされます。セグメンテーション、ターゲティング条件、アルゴリズム的計算などのプロセスはスキップされます。実験中にセグメンテーションとターゲティング条件を保持するには、代わりに forceTargeting=false を設定します。
シミュレートされた バリエーションは、常に実行順序で優先されます。シミュレートされた バリエーション計算がトリガーされると、それが最初に完全に処理され完了します。
引数
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 | |
| experimentId (必須) | int | 評価プロセス中にターゲットおよび選択される Experiment Id。 | |
| variationKey (必須) | String | 実験の返される値として強制すべき Variation に対応する Variation Key。値が null の場合、強制バリエーションはリセットされます。 | |
| forceTargeting (オプション) | boolean | 実験のターゲティングを強制してスキップするか (true)、標準の評価プロセスのように適用するか (false) を示します。 | true |
スローされる例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
FeatureExperimentNotFound | 要求された実験 ID が SDK の内部構成で見つからなかったことを示す例外。通常はこれは正常で、ルールに対応する実験が Kameleoon 側でまだ有効化されていないことを意味します。 |
FeatureVariationNotFound | 要求されたバリエーションキー (ID) が SDK の内部構成で見つからなかったことを示す例外。通常はこれは正常で、バリエーションに対応する実験が Kameleoon 側でまだ有効化されていないことを意味します。 |
ほとんどの場合、例で示されているように、基本的なエラー
KameleoonException のみを処理する必要があります。ただし、異なるタイプのエラーに対する応答が必要な場合は、特定の要件に基づいて個別に処理してください。さらに、信頼性を向上させるために、Exception を含めることで一般的な言語エラーを処理できます。evaluateAudiences()
- 📨 Kameleoon にトラッキングデータを送信します
evaluateAudiences() は、関連するすべての訪問者データが設定または更新された後、フィーチャーバリエーションを取得したりフィーチャーフラグをチェックする 直前 に呼び出す必要があります。このアプローチにより、訪問者は利用可能な最新のデータに対して評価され、すべての基準に基づいた正確なオーディエンス割り当てが可能になります。
このメソッドを呼び出した後、Audiences Explorer でセグメントのパフォーマンスの詳細な分析を実行できます。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 |
スローされる例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
ほとんどの場合、例で示されているように、基本的なエラー
KameleoonException のみを処理する必要があります。ただし、異なるタイプのエラーに対する応答が必要な場合は、特定の要件に基づいて個別に処理してください。さらに、信頼性を向上させるために、Exception を含めることで一般的な言語エラーを処理できます。getFeatureList()
このメソッドは以前
obtainFeatureList と呼ばれており、SDK バージョン 4.0.0 で削除されました。戻り値
| 型 | 説明 |
|---|---|
List<String> | フィーチャーフラグキーのリスト |
getDataFile()
現在の SDK 構成をDataFile オブジェクトとして返します。
戻り値
| 型 | 説明 |
|---|---|
DataFile | SDK 構成を含む DataFile |
訪問者データ
getVisitorCode()
このメソッドは以前
obtainVisitorCode と呼ばれており、SDK バージョン 4.0.0 で削除されました。visitorCode を取得するために、getVisitorCode() メソッドを呼び出す必要があります。このメソッドは、ユーザー識別の一貫性を保証する必要があるフロントエンドとバックエンドの混合環境で Kameleoon を使用する場合に特に重要です。実装ロジックは以下のとおりです:
-
現在の HTTP リクエストに関連付けられた
kameleoonVisitorCodeクッキーまたはクエリパラメータが見つかるかどうかを確認します。見つかった場合、このkameleoonVisitorCodeを訪問者識別子として使用します。 -
現在のリクエストでクッキー/パラメータが見つからない場合、新しい識別子をランダムに生成するか、
defaultVisitorCode引数が渡されている場合はそれを識別子として使用します。このプロセスにより、お客様が自分の識別子を訪問者コードとして使用したい場合に、それを使用できます。この柔軟性は、マッチングテーブルでの追加検索なしに、Kameleoon の訪問者を自社のユーザーとマッチングできるという追加のメリットがあります。 -
いずれにせよ、サーバーサイド (HTTP ヘッダー経由) で
kameleoonVisitorCodeクッキーが該当する値で設定されます。その後、メソッドはこの識別子の値を返します。
getVisitorCode() メソッドを使用すると、訪問者に シミュレートされた バリエーションを設定できます。クッキー (リクエスト または ドキュメント から) に kameleoonSimulationFFData キーが含まれていると、標準的な評価プロセスがバイパスされます。代わりに、メソッドは提供されたデータに基づいて Variation を直接返します。シミュレーションは 2 つの方法で適用できます:- 自動 (推奨): Kameleoon Web Experimentation を使用しているか、SDK を ハイブリッドモード で使用している場合、Simulation Panel を使用してバリアントの表示をシミュレートするときに、クッキーが自動的に作成されます。
- 手動:
kameleoonSimulationFFDataクッキーを手動で設定します。
- シミュレートされたバリエーション: 全体的な フィーチャーフラグ の結果に影響します。
- 強制バリエーション: 個別の実験に固有です。
kameleoonSimulationFFData クッキーが次の形式に従っていることを確認してください:kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: 指定されたfeatureKeyに対して、実験expIdのvarIdのバリエーションをシミュレートします。kameleoonSimulationFFData={"featureKey":{"expId":0}}: 指定されたfeatureKeyに対するデフォルトのバリエーション (本番の Then, for everyone else in Production, serve セクションで定義) をシミュレートします。
encodeURIComponent などの方法を使用して URI コンポーネントとしてエンコードする必要があります。引数
| 名前 | 型 | 説明 |
|---|---|---|
| httpServletRequest | HttpServletRequest | 現在の HttpServletRequest オブジェクトを最初のパラメータとして渡す必要があります。このフィールドは必須です。 |
| httpServletResponse | HttpServletResponse | 現在の HttpServletResponse オブジェクトを 2 番目のパラメータとして渡す必要があります。このフィールドは必須です。 |
| defaultVisitorCode | String | 既存の kameleoonVisitorCode クッキーがリクエストで見つからない場合、このパラメータが visitorCode として使用されます。このフィールドはオプションです。指定されていない場合、既存の kameleoonVisitorCode クッキーがない場合、SDK はランダムな visitorCode を生成します。 |
戻り値
| 型 | 説明 |
|---|---|
String | この特定のユーザーに関連付けられ、SDK のほとんどのメソッドで使用される visitorCode。 |
addData()
addData() メソッドは、現在の訪問者をターゲットにするかどうかを他のメソッドが決定する際に使用できるように、ターゲティングデータ をストレージに追加します。
addData() メソッドは値を返さず、それ自体では Kameleoon バックエンドサーバーとやり取りしません。代わりに、宣言されたすべてのデータは、flush() メソッドを使用した将来の送信のために保存されます。このアプローチにより、データは通常、flush() によってトリガーされる単一のサーバー呼び出しにグループ化されるため、サーバー呼び出しの数が減少します。
trackConversion() メソッドも、flush() と同様に、以前に関連付けられたデータを送信します。実験ルールがトリガーされた場合の getVariation() と getVariations() メソッドにも同じことが言えます。
引数
| 名前 | 型 | 説明 | デフォルト値 |
|---|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 | |
| track (オプション) | boolean | 追加されたデータがトラッキングの対象であるかどうかを指定します。false に設定すると、データはローカルに保存され、ターゲティング評価にのみ使用されます。Kameleoon Data API には送信されません。 | true |
| data (必須) | Data... | Kameleoon データタイプのコレクション。 |
例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
flush()
- 📨 Kameleoon にトラッキングデータを送信します
flush() メソッドは、訪問者にリンクされた Kameleoon データを収集します。次に、addData メソッドを使用して追加されたが、これらのメソッド のいずれかを使用してまだ送信されていないすべてのデータと共に、トラッキングリクエストを送信します。flush() はサーバー呼び出しが非同期で行われるため、非ブロッキングです。
flush を使用すると、特定の visitorCode に関連付けられたデータがサーバーに送信されるタイミングを制御できます。たとえば、addData() を 12 回呼び出した場合、addData() が呼び出されるたびにサーバーにデータを送信するのは非効率的です。そのため、flush() を 1 回呼び出すだけで済みます。
visitorCode を指定すると、flush() メソッドはこのコードを一意の訪問者識別子として使用します。これは クロスデバイス実験 に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
パラメータ
isUniqueIdentifier は非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は特殊な状況で役立ちます。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないが、セッション統合を通じてその訪問者にリンクされている内部 ID を使用できる場合などです。引数
| 名前 | 型 | 説明 |
|---|---|---|
| instant | boolean | データを即座に送信するか (true)、SDK パラメータ tracking_interval_millisecond で設定されたデフォルトのトラッキング間隔に従って送信するか (false) を示すブール値フラグ。このフィールドはオプションです。 |
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
| isUniqueIdentifier (非推奨) | boolean | visitorCode が一意の識別子であるかどうかを指定するためのオプションのパラメータ。訪問者に isUniqueIdentifier を適用するには、visitorCode を提供し、null ではない必要があります。そうでない場合、無視されます。指定されていない場合、デフォルト値は false です。このフィールドはオプションです。 |
getRemoteData()
このメソッドは以前
retrieveDataFromRemoteSource と呼ばれており、SDK バージョン 4.0.0 で削除されました。getRemoteData() メソッドを使用すると、Kameleoon サーバーに保存された指定された siteCode に対して、引数として渡された key に従ってデータを取得できます。サイトコードは KameleoonClientFactory.create() で指定します。通常、データは Data API を使用してリモートサーバーに保存されます。このメソッドは、スケーラブルなサーバーが利用可能であることと併せて、後でアプリで取得できる追加データを保存するための便利な方法を提供します。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| key | String | 取得されたデータに関連付けられているキー。このフィールドは必須です。 |
戻り値
| 型 | 説明 |
|---|---|
CompletableFuture<JsonObject> | 特定の key に対するデータの取得に関連付けられた将来の JsonObject。 |
getRemoteVisitorData()
getRemoteVisitorData() は、Kameleoon Data API から visitorCode の Kameleoon 訪問データを取得するための非同期メソッドです。このメソッドは、ターゲティングの決定を行う際に他のメソッドが使用できるように、データをストレージに追加します。
このメソッドを使用して取得したデータは、次のような場合に重要な役割を果たします:
- 他のデバイスから収集されたデータを使用する。
- 過去の訪問中に訪問されたページなど、ユーザーの履歴にアクセスする。
- データレイヤー変数やフロントエンドでコンバージョンするゴールなど、クライアントサイドでのみアクセス可能なデータを使用する。
パラメータ
isUniqueIdentifier は非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は特殊な状況で役立ちます。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないが、セッション統合を通じてその訪問者にリンクされている内部 ID を使用できる場合などです。引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | string | 取得したいデータの訪問者コード。このフィールドは必須です。 |
| filter | RemoteVisitorDataFilter | 訪問から取得すべきデータを指定するためのフィルター。デフォルトでは、CustomData のみが現在および最新の前回訪問から取得されます (RemoteVisitorDataFilter.builder().build() または new RemoteVisitorDataFilter())。他のフィルターパラメータは false に設定されます。このフィールドはオプションです。 |
| addData | boolean | メソッドが訪問者のために取得したデータを自動的に追加するかどうかを示すブール値。このフィールドはオプションです。 |
| isUniqueIdentifier (非推奨) | boolean | visitorCode が一意の識別子であるかどうかを指定するためのオプションのパラメータ。指定されていない場合、デフォルト値は false です。このフィールドはオプションです。 |
戻り値
| 型 | 説明 |
|---|---|
CompletableFuture<List<Data>> | 特定の訪問者に関連付けられた将来の List<Data>。 |
getRemoteVisitorData() でのパラメータの使用
getRemoteVisitorData() メソッドは、訪問者に関するデータを取得するときにさまざまなパラメータを定義できる柔軟性を提供します。ゴール、実験、バリエーションに基づいてターゲティングする場合でも、同じアプローチがすべてのデータタイプに適用されます。
たとえば、ゴール「Order transaction」を完了した訪問者に関するデータを取得したいとします。getVisitorData() メソッド内でパラメータを指定して、ターゲティングを絞り込めます。たとえば、最後の 5 回の訪問でゴールでコンバージョンしたユーザーのみをターゲットにしたい場合は、previousVisitAmount パラメータを 5 に、conversions を true に設定できます。
この例で示される柔軟性は、ゴールデータに限定されません。getRemoteVisitorData() メソッド内でパラメータを使用して、さまざまな訪問者行動に関するデータを取得できます。
利用可能な
kameleoon.types.RemoteVisitorDataFilter オプションのリストは以下のとおりです:| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| previousVisitAmount (オプション) | int | データを取得する前回の訪問数。1 ~ 25 の数値 | 1 |
| currentVisit (オプション) | boolean | true の場合、現在の訪問データが取得されます | true |
| customData (オプション) | boolean | true の場合、カスタムデータが取得されます。 | true |
| pageViews (オプション) | boolean | true の場合、ページデータが取得されます。 | false |
| geolocation (オプション) | boolean | true の場合、ジオロケーションデータが取得されます。 | false |
| device (オプション) | boolean | true の場合、デバイスデータが取得されます。 | false |
| browser (オプション) | boolean | true の場合、ブラウザーデータが取得されます。 | false |
| operatingSystem (オプション) | boolean | true の場合、オペレーティングシステムデータが取得されます。 | false |
| conversions (オプション) | boolean | true の場合、コンバージョンデータが取得されます。 | false |
| experiments (オプション) | boolean | true の場合、実験データが取得されます。 | false |
| kcs (オプション) | boolean | true の場合、Kameleoon Conversion Score (KCS) が取得されます。AI Predictive Targeting アドオン が必要です | false |
| visitorCode (オプション) | boolean | true の場合、Kameleoon は最新の訪問から visitorCode を取得し、現在の訪問でそれを使用します。これは、クロスデバイス実験 のために、visitorCode で識別される訪問者が常に訪問にわたって同じバリエーションを受け取ることを保証したい場合に必要です。 | true |
| personalization (オプション) | boolean | true の場合、パーソナライゼーションデータが取得されます。これは、パーソナライゼーション条件に必要です。 | false |
| cbs (オプション) | boolean | true の場合、Contextual Bandit スコアデータが取得されます。 | false |
getVisitorWarehouseAudience()
このメソッドは、指定されたvisitorCode と warehouseKey を使用して、データウェアハウス内で訪問者に関連付けられたすべてのオーディエンスデータを取得します。warehouseKey は通常、内部ユーザー ID です。customDataIndex パラメータは、Kameleoon が訪問者をターゲットにするために使用する Kameleoon カスタムデータに対応します。詳細については、ウェアハウスターゲティングドキュメント を参照してください。メソッドは結果を CustomData オブジェクトとして返される future に渡し、データが訪問者に追加され、ターゲティングの目的で利用可能であることを確認します。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | String | データを取得して追加したい訪問者の一意の識別子。 |
| warehouseKey | String | ウェアハウスデータを識別するための一意のキー (通常、内部ユーザー ID)。このフィールドはオプションです。 |
| customDataIndex | int | BigQuery オーディエンスをターゲットにするために使用するカスタムデータのインデックスを表す整数。 |
戻り値
| 型 | 説明 |
|---|---|
CompletableFuture<CustomData> | データが訪問者に追加されたことを確認する将来の CustomData インスタンス。 |
スローされる例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外 (空であるか、255 文字を超えています)。 |
setLegalConsent()
このメソッドを使用して、訪問者が個人データの使用に対して法的同意を与えたかどうかを指定する必要があります。legalConsent パラメータを false に設定すると、トラッキングリクエストに含めることができるデータタイプが制限されます。このメソッドは、訪問者データを責任を持って管理しながら、法律および規制要件を遵守するのに役立ちます。個人データに関する詳細は、同意管理ポリシー をご覧ください。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
| legalConsent | boolean | 法的同意のステータスを表すブール値。true は訪問者が法的同意を与えたことを示し、false は訪問者が法的同意を提供したことがない、または取り消したことを示します。このフィールドは必須です。 |
| response | HttpServletResponse | 法的同意ステータスに基づいてクッキー内の値が調整される HTTP サーブレットレスポンス。このフィールドはオプションです。 |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.VisitorCodeInvalid | 提供された訪問者コードが無効であることを示す例外。空であるか、255 文字を超えています。 |
同意取り消しの動作
legalConsent=false を指定して setLegalConsent() を呼び出した場合、SDK は kameleoonVisitorCode クッキーを削除しません。代わりに、クッキーの有効期限を延長しなくなるため、クッキーは自然に期限が切れるまで持続します。
コンプライアンス要件としてオプトアウト時にクッキーファイルを直ちに削除することが必要な場合は、フレームワークのネイティブクッキー管理メソッドを使用して手動で削除する必要があります。SDK は自動的にファイルを削除しません。
ゴールとサードパーティ分析
trackConversion()
- 📨 Kameleoon にトラッキングデータを送信します
visitorCode と goalId が必要です。さらに、このメソッドはオプションの revenue、negative、metadata 引数も受け取ります。visitorCode は通常、実験をトリガーする際に使用したものと同一です。
trackConversion() メソッドは値を返しません。このメソッドは、サーバー呼び出しが非同期で行われるため、非ブロッキングです。
パラメータ
isUniqueIdentifier は非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は他のエッジケースのシナリオでも有用です。たとえば、もともと訪問者に割り当てられた匿名の visitorCode にアクセスできないが、セッション統合機能を使用して匿名訪問者に接続された内部 ID にアクセスできる場合などです。引数
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 | |
| goalId (必須) | int | ゴールの ID。 | |
| revenue (オプション) | float | コンバージョンの収益。 | 0 |
| negative (オプション) | boolean | 収益が正か負かを定義します。 | false |
| metadata (オプション) | CustomData... | Kameleoon アプリでゴールのメタデータとして定義されているカスタムデータに特定の値を設定できます。例: [CustomData{id: 5, value: "Payment Type"}, CustomData{id: 6, value: "Delivery Method"}]。この例では、5 と 9 はカスタムデータのインデックスです (5 = 「Payment Type」、9 = 「Delivery Method」)。 | new CustomData[0] |
| isUniqueIdentifier (非推奨) | boolean | visitorCode が一意の識別子であるかどうかを指定するためのオプションのパラメータ。 | false |
メタデータ値は、生データエクスポート および 結果ページ を介してアクセスできます。
metadata パラメータが提供されている場合、Kameleoon はこれらの指定された値を現在のコンバージョンに使用し、addData() メソッドを使用して以前に収集されたものに代わります。パラメータが省略されている場合、Kameleoon はコンバージョン前および同じ訪問内で、それらの CustomData のために最後にトラッキングされた値を使用します。Kameleoon は、trackConversion() メソッドのパラメータとして明示的に渡されたメタデータ値のみを考慮します。以下の例では、Kameleoon は、パラメータとして明示的に提供されたカスタムデータ値 (ここでは: 値が ‘Amex Credit Card’ のインデックス 5) のみとコンバージョンを関連付けます。例外
| 型 | 説明 |
|---|---|
VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
getEngineTrackingCode()
Kameleoon は、Mixpanel、Google Analytics 4、Segment などのいくつかの分析ソリューションと統合されています。サーバーサイド実験を正しくトラッキングするには、訪問者が実験をトリガーした後にgetEngineTrackingCode() メソッドを呼び出します。SDK は、訪問者が前の 5 秒間にトリガーした実験の JavaScript キューコマンドを返します。このコードをページに挿入すると、Engine.js はコマンドを処理し、アクティブな分析統合を介して露出イベントを送信します。
このメソッドの実装に関する詳細については、ハイブリッド実験 を参照してください。
- この機能を使用するには、Java SDK と Kameleoon Engine.js の両方を実装します。このフローでは Engine.js はトラッキングにのみ使用されるため、終了
</body>タグの前に非同期タグをインストールできます。 - Kameleoon でのみ実験をトラッキングしたく、サードパーティ分析ツールに露出イベントを送信する必要がない場合は、JavaScript / TypeScript SDK を使用してください。このオプションは サーバーレスエッジコンピュートプラットフォーム に適しています。JavaScript / TypeScript SDK は、対応する実験割り当てを
window.kameleoonQueueに追加していれば、getVisitorCodeを呼び出すときにバリエーションを自動的にトラッキングします。 - 返されたトラッキングコードを HTML
<script>タグに直接挿入できます。
123456 と 234567 は実験 ID、7890 と 8901 はバリエーション ID です。あなたの実装では、SDK が返されたトラッキングコードでこれらの値を生成します。引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode (必須) | String | 訪問者の一意の識別子。 |
戻り値
| 型 | 説明 |
|---|---|
String | ページに挿入する JavaScript コード。 |
イベント
setEventHandler()
このメソッドを使用して、SDK イベントのハンドラーを登録します。選択したイベントが発生すると、SDK はハンドラーを呼び出します。同じイベントタイプに対して新しいハンドラーを登録すると、以前のハンドラーが置き換えられます。handler として null を渡すと、選択したイベントタイプの現在のハンドラーが削除されます。
- DATAFILE_UPDATE
- HTTP_REQUEST
引数
| 名前 | 型 | 説明 |
|---|---|---|
eventType (必須) | EventType<T> | 処理する SDK イベントタイプ。SDK データファイル更新に対応するには EventType.DATAFILE_UPDATE を、完了した SDK HTTP リクエストに対応するには EventType.HTTP_REQUEST を使用します。 |
handler (オプション) | T extends EventHandler | 選択したイベントタイプに登録するハンドラー。EventType.DATAFILE_UPDATE には DataFileUpdateHandler を、EventType.HTTP_REQUEST には HttpRequestHandler を使用します。現在のハンドラーを削除するには null を渡します。 |
データタイプ
このセクションでは、Kameleoon がcom.kameleoon.Data でサポートするデータタイプをリストします。いくつかの標準データタイプと、カスタムデータタイプを定義できる CustomData タイプを提供します。
Browser
ここに保存されたBrowser データセットは、関連付けられた任意の値で実験とパーソナライゼーションのレポートをフィルタリングするために使用できます。
| 名前 | 型 | 説明 |
|---|---|---|
| type (必須) | Browser.Type | ブラウザーのリスト: CHROME、INTERNET_EXPLORER、FIREFOX、SAFARI、OPERA、OTHER。 |
| version (オプション) | Float | ブラウザーのバージョン。浮動小数点数は、ブラウザーのメジャーバージョンとマイナーバージョンを表します。 |
Conversion
ここに保存されたConversion データセットは、関連付けられた任意のゴールで実験とパーソナライゼーションのレポートをフィルタリングするために使用できます。
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| goalId (必須) | int | ゴールの ID。 | |
| revenue (オプション) | float | コンバージョンの収益 | 0 |
| negative (オプション) | boolean | 収益が正か負かを定義します。 | false |
| metadata (オプション) | CustomData... | コンバージョンのメタデータ。 | new CustomData[0] |
Cookie
Cookie には、訪問者のデバイスに保存されたクッキーに関する情報が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| cookies | Map<String, String> | クッキーのキーと値で構成される文字列オブジェクトマップ。このフィールドは必須です。 |
Geolocation
Geolocation には、訪問者の位置情報の詳細が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| country (必須) | String | 訪問者の国。 |
| region (オプション) | String | 訪問者の地域。 |
| city (オプション) | String | 訪問者の都市。 |
| postalCode (オプション) | String | 訪問者の郵便番号。 |
| latitude (オプション) | float | 訪問者の場所を表す緯度座標。座標数は十進度を表します。 |
| longitude (オプション) | float | 訪問者の場所を表す経度座標。座標数は十進度を表します。 |
CustomData
CustomData は、各訪問者にあらゆるタイプのデータを関連付けることができ、セグメント でのターゲティング条件のための効果的なツールになります。さらに、実験レポートでフィルターや分解として使用できます。カスタムデータの詳細については、この記事 を参照してください。
Kameleoon アプリまたは Data API でカスタムデータタイプを定義し、SDK から使用します。
| 名前 | 型 | 説明 | デフォルト |
|---|---|---|---|
| index/name (必須) | int/String | カスタムデータのインデックスまたは名前。データを識別するためには、index または name のどちらかを指定する必要があります。 | |
| values (必須) | String.../List<String> | 保存されるカスタムデータの値。 | |
| overwrite (オプション) | boolean | 値の保存方法とレポートでの表示方法を明示的に制御するためのフラグ。詳細を見る | true |
-
各訪問者は、固有の
index(name) ごとに 1 つのCustomDataのみが許可されます。同じindex(name) を持つ別のCustomDataを追加すると、既存のものが置き換えられます。 - カスタムデータの「index」は、カスタムデータダッシュボード の「INDEX」列に表示されます。
- プライバシー上の理由から SDK が選択されたインデックスのデータを Kameleoon サーバーに送信しないようにするには、カスタムデータの作成時にオプション Use this data only locally for targeting purposes を有効にします。
-
SDK インスタンスが初期化されていないとき、または名前が登録されていないときに、名前で作成された
CustomDataインスタンスを追加すると、データは無視されます。
Device
| 名前 | 型 | 説明 |
|---|---|---|
| device | Device | デバイスのリスト: PHONE、TABLET、DESKTOP。このフィールドは必須です。 |
PageView
ページビューイベントを保存します。| 名前 | 型 | 説明 |
|---|---|---|
| url | String | 表示されたページの URL。このフィールドは必須です。 |
| title | String | 表示されたページのタイトル。このフィールドは必須です。 |
| referrers | List<Integer> | 表示されたページのリファラー。このフィールドはオプションです。 |
リファラーのインデックス (ID) は、Kameleoon アプリの 集客チャネル構成 ページで利用できます。注意: このインデックスは 0 から始まるため、指定したサイトに対して作成した最初の集客チャネルの ID は 1 ではなく 0 になります。
UserAgent
サーバーサイド実験は、クライアントサイド実験よりもボットトラフィックの影響を受けやすくなります。Kameleoon は、この問題に対処し、既知のボットとスパイダーを認識するために、IAB/ABC International Spiders and Bots List を使用しています。Kameleoon は、コンバージョンメトリクスを歪める可能性のあるボットや他の不要なトラフィックをフィルタリングするためにUserAgent フィールドも使用します。詳細については、ボットフィルタリング に関するヘルプ記事を参照してください。
内部ボットを使用している場合は、それらを分析から除外するために userAgent の値 curl/8.0 を渡すことをお勧めします。
| 名前 | 型 | 説明 |
|---|---|---|
| value | String | トラッキングリクエストで送信される User-Agent 値。このフィールドは必須です。 |
UniqueIdentifier
訪問者にUniqueIdentifier を追加しない場合、visitorCode が一意の訪問者識別子として使用され、クロスデバイス実験 に役立ちます。訪問者に UniqueIdentifier を追加すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
isUniqueIdentifier は特殊な状況で役立ちます。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないが、セッション統合を通じてその訪問者にリンクされている内部 ID を使用できる場合などです。
| 名前 | 型 | 説明 |
|---|---|---|
| value | boolean | visitorCode が一意の識別子であるかどうかを指定するパラメータ。このフィールドは必須です。 |
OperatingSystem
OperatingSystem には、訪問者のデバイスのオペレーティングシステムに関する情報が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| type | OperatingSystem.Type | オペレーティングシステムのリスト: WINDOWS_PHONE、WINDOWS、ANDROID、LINUX、MAC、IOS。このフィールドは必須です。 |
ApplicationVersion
ApplicationVersion は、アプリケーションのセマンティックバージョン番号を表します。
| 名前 | 型 | 説明 |
|---|---|---|
| version (オプション) | String | モバイルアプリケーションのバージョン。このフィールドはセマンティックバージョニングに従う必要があります。受け入れられる形式は major、major.minor、または major.minor.patch です。 |
戻り値の型
DataFile
DataFile には SDK 構成の詳細が含まれます。
クライアントが必要とする場合、追加情報で拡張できます。詳細が必要な場合は、カスタマーサクセスマネージャーにお問い合わせください。
| 名前 | 型 | 説明 |
|---|---|---|
| featureFlags | Map<String, FeatureFlag> | フィーチャーフラグキーをキーとした FeatureFlag オブジェクトのマップ。 |
| dateModified | long | DataFile が最後に変更された時刻を示すタイムスタンプ (ミリ秒単位)。 |
FeatureFlag
FeatureFlag は、フィーチャーフラグ自体を定義するプロパティのセット (たとえば、Variations、Rules、環境ステータスなど) を表します。
クライアントが必要とする場合、追加情報で拡張できます。詳細が必要な場合は、カスタマーサクセスマネージャーにお問い合わせください。
| 名前 | 型 | 説明 |
|---|---|---|
| environmentEnabled | boolean | 現在の環境でフィーチャーフラグが有効になっているかどうかを示します。 |
| defaultVariationKey | String | フィーチャーフラグに関連付けられたデフォルトのバリエーションのキー。 |
| variations | Map<String, Variation> | バリエーションキーをキーとした Variation オブジェクトのマップ。 |
| rules | List<Rule> | Rule オブジェクトのリスト |
Rule
Rule は、ルール自体を定義するプロパティのセット (たとえば、Variations) を表します。
クライアントが必要とする場合、追加情報で拡張できます。詳細が必要な場合は、カスタマーサクセスマネージャーにお問い合わせください。
| 名前 | 型 | 説明 |
|---|---|---|
| variations | Map<String, Variation> | バリエーションキーをキーとした Variation オブジェクトのマップ。 |
Variation
Variation には、訪問者に割り当てられたバリエーション (または、特定の割り当てが存在しない場合はデフォルトのバリエーション) に関する情報が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| name | String | バリエーションの名前。 |
| key | String | バリエーションを識別する一意のキー。 |
| id | Integer | 割り当てられたバリエーションの ID (デフォルトバリエーションの場合は null)。 |
| experimentId | Integer | バリエーションに関連付けられた実験の ID (デフォルトの場合は null)。 |
| variables | Map<String, Variable> | 変数名をキーとした、割り当てられたバリエーションの変数を含むマップ。関連する変数がない場合、これは空のコレクションになる可能性があります。 |
Variationオブジェクトは、割り当てられたバリエーションとその関連実験に関する詳細を提供し、Variableオブジェクトは、バリエーション内の各変数に関する具体的な詳細を含みます。idまたはexperimentIdがnullの場合 (デフォルトバリエーションを示します) を処理することをコードで確認してください。- バリエーションに関連付けられた変数がない場合、
variablesマップは空になる可能性があります。
Variable
Variable には、割り当てられたバリエーションに関連付けられた変数に関する情報が含まれます。
| 名前 | 型 | 説明 |
|---|---|---|
| key | String | 変数を識別する一意のキー。 |
| type | String | 変数のタイプ。可能な値: BOOLEAN、NUMBER、STRING、JSON、JS、CSS。 |
| value | Object | 変数の値。次のタイプのいずれかになります: Boolean、Integer、Long、Double、String、JsonObject、JsonArray。 |
非推奨メソッド
getFeatureVariationKey()
- 📨 Kameleoon にトラッキングデータを送信します
代わりに
getVariation() を使用してください。visitorCode と featureKey を必須引数として受け取ります。
ユーザーがこのフィーチャーフラグに関連付けられていない場合、SDK は (フィーチャーフラグルールに従って) ランダムに割り当てられたバリエーションキーを返します。指定された visitorCode を持つユーザーがすでにこのフィーチャーフラグに登録されている場合、SDK は以前のバリエーションキー値を検出します。ユーザーがどのルールにも一致しない場合、Kameleoon アプリでカスタマイズできるデフォルト値が返されます。
潜在的な例外をキャッチして処理するようにしてください。
visitorCode を指定すると、flush() メソッドはこれを一意の訪問者識別子として使用します。これは クロスデバイス実験 に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
パラメータ
isUniqueIdentifier は非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は特殊な状況で役立ちます。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないが、セッション統合を通じてその訪問者にリンクされている内部 ID を使用できる場合などです。引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
| featureKey | String | ユーザーに公開したいフィーチャーのキー。このフィールドは必須です。 |
| isUniqueIdentifier (非推奨) | boolean | visitorCode が一意の識別子であるかどうかを指定するためのオプションのパラメータ。指定されていない場合、デフォルト値は false です。このフィールドはオプションです。 |
戻り値
| 型 | 説明 |
|---|---|
String | 指定された visitorCode に対して登録されているフィーチャーフラグのバリエーションキー。 |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.FeatureNotFound | 要求されたフィーチャーキーが SDK の内部構成で見つからなかったことを示す例外。この例外は通常、フィーチャーフラグが Kameleoon アプリで有効化されていない (ただし、フィーチャーを実装するコードはアプリケーションにすでにデプロイされている) ことを意味します。 |
| KameleoonException.FeatureEnvironmentDisabled | フィーチャーフラグが訪問者の現在の環境 (本番、ステージング、開発など) で無効になっていることを示す例外。 |
| KameleoonException.VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
getActiveFeatures()
代わりに
getVariations() を使用してください。引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
戻り値
| 型 | 説明 |
|---|---|
Map<String, Variation> | 対応するアクティブフィーチャーのキーを使用して、アクティブフィーチャーの割り当てられたバリエーションを含むマップ。 |
スローされる例外
| 型 | 説明 |
|---|---|
| VisitorCodeInvalid | 提供された訪問者コードが有効ではないことを示す例外。空であるか、255 文字を超えています。 |
getActiveFeatureListForVisitorCode()
- 代わりに
getVariations()を使用してください。 - このメソッドは以前
obtainFeatureListForVisitorCodeと呼ばれており、SDK バージョン4.0.0で削除されました。
visitorCode パラメータを受け取ります。指定された訪問者のアクティブなフィーチャーフラグのみを返します。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
戻り値
| 型 | 説明 |
|---|---|
List<String> | 特定の visitorCode で利用可能なアクティブなフィーチャーフラグキーのリスト |
getFeatureVariable()
- 📨 Kameleoon にトラッキングデータを送信します
代わりに
getVariation() を使用してください。visitorCode、featureKey、variableKey を必須引数として受け取ります。
ユーザーがこのフィーチャーフラグに関連付けられていない場合、SDK は、フィーチャーフラグルールに従ってバリエーションキーのランダムに割り当てられた変数値を返します。指定された visitorCode を持つユーザーがすでにこのフィーチャーフラグに登録されている場合、SDK は以前に関連付けられたバリエーションの変数値を返します。ユーザーがどのルールにも一致しない場合、デフォルト変数が返されます。
潜在的な例外をキャッチして処理するようにしてください。
visitorCode を指定すると、getFeatureVariable() メソッドはコードを一意の訪問者識別子として使用します。これは クロスデバイス実験 に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
パラメータ
isUniqueIdentifier は非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は特殊な状況で役立ちます。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないが、セッション統合を通じてその訪問者にリンクされている内部 ID を使用できる場合などです。引数
| 名前 | 型 | 説明 |
|---|---|---|
| visitorCode | String | ユーザーの一意の識別子。このフィールドは必須です。 |
| featureKey | String | ユーザーに公開したいフィーチャーのキー。このフィールドは必須です。 |
| variableKey | String | 値を取得したい変数の名前。このフィールドは必須です。 |
| isUniqueIdentifier (非推奨) | boolean | visitorCode が一意の識別子であるかどうかを指定するためのオプションのパラメータ。指定されていない場合、デフォルト値は false です。このフィールドはオプションです。 |
戻り値
| 型 | 説明 |
|---|---|
| object | このフィーチャーフラグに対して、指定された visitorCode に登録されているバリエーションの変数値。可能なタイプ: bool、int、double、string、JObject、JArray |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.FeatureNotFound | 要求されたフィーチャーキーが SDK の内部構成で見つからなかったことを示す例外。通常、これはフィーチャーフラグが Kameleoon アプリでまだ有効化されていない (ただし、フィーチャーを実装するコードはアプリケーションにすでにデプロイされている) ことを意味します。 |
| KameleoonException.FeatureEnvironmentDisabled | フィーチャーフラグが訪問者の現在の環境 (本番、ステージング、開発など) で無効になっていることを示す例外。 |
| KameleoonException.FeatureVariableNotFound | 要求された変数が見つからなかったことを示す例外。Kameleoon アプリの変数のキーがコードと一致することを確認してください。 |
| KameleoonException.VisitorCodeInvalid | 指定された訪問者コードが有効ではないことを示す例外。(空であるか、255 文字を超えています)。 |
getFeatureVariables()
- 📨 Kameleoon にトラッキングデータを送信します
代わりに
getVariation() を使用してください。visitorCode を持つユーザーがすでにこのフィーチャーフラグに登録されている場合、SDK は以前に使用されたバリエーションの変数値を返します。ユーザーがどのルールにも一致しない場合、デフォルト変数が返されます。
潜在的な例外をキャッチして処理するようにしてください。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| featureKey | String | 取得したいフィーチャーのキー。このフィールドは必須です。 |
| variationKey | String | 取得したいバリエーションのキー。このフィールドは必須です。 |
戻り値
| 型 | 説明 |
|---|---|
Map<String,Object> | このフィーチャーフラグに関連付けられたデータ。値は Boolean、Integer、Double、String、JsonObject、または JsonArray のいずれかになります (タイプは Kameleoon アプリで定義されます)。 |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.FeatureNotFound | 要求されたフィーチャーキーが SDK の内部構成で見つからなかったことを示す例外。この例外は通常、フィーチャーフラグが Kameleoon アプリで有効化されていない (ただし、フィーチャーを実装するコードはアプリケーションにすでにデプロイされている) ことを意味します。 |
| KameleoonException.FeatureEnvironmentDisabled | フィーチャーフラグが訪問者の現在の環境 (本番、ステージング、開発など) で無効になっていることを示す例外。 |
| KameleoonException.FeatureVariationNotFound | 要求されたバリエーションキーが SDK の内部構成で見つからなかったことを示す例外。通常、これはバリエーションに対応する実験が Kameleoon アプリで有効化されていないことを意味します。 |
| KameleoonException.VisitorCodeInvalid | 指定された訪問者コードが有効ではないことを示す例外。(空であるか、255 文字を超えています)。 |
getFeatureVariationVariables()
- 代わりに
getVariation()を使用してください。 - このメソッドは以前
getFeatureAllVariablesと呼ばれており、SDK バージョン4.0.0で削除されました。
featureKey と variationKey。Kameleoon アプリで定義された Map<String, Object> タイプのデータを返します。要求したフィーチャーが SDK の内部構成で見つからない場合、例外 (KameleoonException.FeatureNotFound) をスローします。
引数
| 名前 | 型 | 説明 |
|---|---|---|
| featureKey | String | 取得したいフィーチャーのキー。このフィールドは必須です。 |
| variationKey | String | 取得したいバリエーションのキー。このフィールドは必須です。 |
戻り値
| 型 | 説明 |
|---|---|
Map<String,Object> | このフィーチャーフラグに関連付けられたデータ。値は Boolean、Integer、Double、String、JsonObject、JsonArray のいずれかになります (Kameleoon アプリで定義されたタイプに依存)。 |
スローされる例外
| 型 | 説明 |
|---|---|
| KameleoonException.FeatureNotFound | 要求されたフィーチャーが SDK の内部構成で見つからなかったことを示す例外。この例外は通常、フィーチャーフラグが Kameleoon アプリで有効化されていないことを意味します。 |
| KameleoonException.FeatureEnvironmentDisabled | フィーチャーフラグが訪問者の現在の環境 (本番、ステージング、開発など) で無効になっていることを示す例外。 |
| KameleoonException.FeatureVariationNotFound | 要求されたバリエーションキーが SDK の内部構成で見つからなかったことを示す例外。通常、これはバリエーションに対応する実験が Kameleoon アプリで有効化されていないことを意味します。 |