開発者ガイド
このセクションに従って SDK をインストール・設定し、高度な機能について学習してください。はじめに
Go クライアントのインストール
Kameleoon Go SDK をインストールするには、go get コマンドを使用して、GitHub リポジトリから直接パッケージをインストールします。以下のコマンドを実行するだけです:
追加設定
Go SDK の追加設定を提供するには、設定ファイルを使用して SDK の動作をカスタマイズできます。サンプル設定ファイルは こちら からダウンロードできます。 このファイルはデフォルトパス/etc/kameleoon/client-go.yaml にインストールすることをお勧めします。このパスは自動的に読み込まれます。このパスをカスタマイズする必要がある場合は、NewClient() メソッドに追加引数を指定できます。設定ファイルへの代替パスを示す文字列を指定するか、設定を含む JavaScript オブジェクト(マップ)を追加します。
現行バージョンの Go SDK では、設定ファイルで以下のキーを使用できます:
client_id および client_secret の詳細と取得方法については、こちらの記事を参照してください。当社の Go SDK は Automation API を利用しており、OAuth 2.0 クライアント認証情報フローに従っていることに注意してください。Kameleoon クライアントの初期化
アプリケーションに SDK をインストールしたら、Kameleoon を初期化する必要があります。実験のトリガーなど、SDK とのすべてのやり取りは、NewClient() メソッドを使用して作成されたオブジェクト(Kameleoon クライアント)を介して行われます。
設定オブジェクトを提供することで、SDK の動作(例: 環境や認証情報)をカスタマイズできます。
機能フラグの有効化
ユーザーへの一意の ID の割り当て
ユーザーに一意の ID を割り当てるには、GetVisitorCode() メソッドを使用できます。訪問者コードが(リクエストヘッダーのクッキーから)存在しない場合、このメソッドはランダムな一意の ID を生成するか、生成済みの defaultVisitorCode を使用します。ID はその後、レスポンスヘッダーのクッキーに設定されます。
ハイブリッドモードで Kameleoon を使用している場合、GetVisitorCode() メソッドを呼び出すと、一意の ID(訪問者コード)がアプリケーションファイル engine.js(以前は kameleoon.js という名称)と SDK の間で共有されることが保証されます。
フラグ設定の取得
コードに機能フラグを実装するには、まず Kameleoon アカウントで機能フラグを作成する必要があります。 特定のユーザーに対する機能フラグのステータスまたはバリエーションを決定するには、GetVariation() または IsFeatureActive() メソッドを使用して、featureKey に基づいて設定を取得します。
GetVariation() メソッドは、ON/OFF 状態のシンプルな機能フラグと、複数のバリエーションを持つより複雑なフラグの両方を処理します。このメソッドは、機能ルールをチェックし、バリエーションを割り当て、featureKey および visitorCode に基づいてそれを返すことで、ユーザーに適切なバリエーションを取得します。
IsFeatureActive() メソッドは、複数のバリエーションやターゲティングオプションを持つ複雑な機能フラグとは対照的に、ON または OFF 状態のみのシンプルな機能フラグの設定を取得したい場合に使用できます。
機能フラグに関連付けられた変数(例: 各バリエーションに関連付けられた特定の動作)がある場合、GetVariation() を使用すると Variation オブジェクトにもアクセスでき、割り当てられたバリエーションとその関連実験の詳細を提供します。このメソッドはユーザーがターゲットされているかをチェックし、訪問者に割り当てられたバリエーションを見つけて、それをストレージに保存します。GetVariationOptParams.Track=true の場合、SDK は次のトラッキングリクエストで指定された実験に露出イベントを送信します。これは SDK の tracking_interval に基づいて自動的にトリガーされます。デフォルトでは、この間隔は 1000 ミリ秒(1 秒)に設定されています。
GetVariation() メソッドでは、トラッキングを行うかどうかを制御できます。GetVariationOptParams.Track=false の場合、SDK によって露出イベントは送信されません。これは、たとえば SDK を介してデータをトラッキングするのではなく、Kameleoon エンジンが管理するクライアント側のトラッキングに依存することを希望する場合に便利です。さらに、GetVariationOptParams.Track=false の設定は、GetVariations() メソッドを使用する場合にも役立ちます。トラッキングイベントをトリガーせずに、すべてのフラグのバリエーションだけが必要な場合などです。トラッキングがどのように機能するかについて詳しくは、この記事を参照してください。
レポートでユーザーをターゲットしたり、訪問をフィルター/ブレークダウンするためのデータポイントの追加
ユーザーをターゲットするには、機能のバリエーションを取得したり、フラグがアクティブかどうかを確認したりする前に、関連するデータポイントをプロファイルに追加していることを確認してください。これらのデータポイントをユーザーのプロファイルに追加するには、AddData() メソッドを使用します。
他のデバイスで収集されたデータポイントを取得したり、過去のユーザーデータ(Kameleoon をハイブリッドモードで使用しているときにクライアント側で収集されたもの)にアクセスするには、GetRemoteVisitorData() メソッドを使用します。このメソッドはサーバーから非同期にデータを取得します。このデータは特定のバリエーションにユーザーを割り当てるために必要な場合があるため、バリエーションを取得したり機能フラグがアクティブかどうかを確認したりする 前に GetRemoteVisitorData() を呼び出すことが重要です。
利用可能なターゲティング条件の詳細については、このテーマに関する詳細な記事を参照してください。
さらに、訪問者プロファイルに追加したデータポイントは、実験を分析する際に利用でき、デバイスやブラウザなどの要因で結果をフィルタリングおよびブレークダウンできます。Kameleoon のハイブリッドモードはクライアント側でさまざまなデータポイントを自動的に収集するため、これらの事前収集されたデータポイントに基づいて結果を簡単にブレークダウンできます。完全なリストはこちらを参照してください。
自動的に収集される以上の追加のデータポイントを追跡する必要がある場合は、Kameleoon のカスタムデータ機能を使用できます。カスタムデータを使用すると、実験に関連する特定の情報をキャプチャして分析できます。収集したデータを分析のために Kameleoon サーバーに送信するには、Flush*() メソッドを呼び出すことを忘れないでください。
結果の精度を確保するために、
UserAgent データ型を使用してボットを除外することをお勧めします。フラグ露出とゴール転換の追跡
ユーザーが望ましいアクション(購入など)を完了すると、それはコンバージョンとして記録されます。コンバージョンを追跡するには、TrackConversion() メソッドを使用して、必須の visitorCode および goalId パラメータを提供します。
コンバージョン追跡リクエストは、次回スケジュールされているトラッキングリクエストとともに送信されます。これは SDK が一定間隔(tracking_interval で定義)で送信します。すぐにリクエストを送信したい場合は、FlushVisitorInstantly() メソッドを使用します。
分析ソリューションへのイベントの送信
コンバージョンを追跡し、露出イベントを顧客分析ソリューションに送信するには、まず ハイブリッドモードで Kameleoon を実装する必要があります。その後、GetEngineTrackingCode() メソッドを使用します。
GetEngineTrackingCode() メソッドは、分析ソリューションに露出イベントを送信するために必要な一意のトラッキングコードを取得します。このメソッドを使用すると、イベントを記録して希望の分析プラットフォームに送信できます。
クロスデバイス実験
複数のデバイスからアプリにアクセスする訪問者をサポートするため、Kameleoon はクロスデバイス実験を通じて、訪問者の各デバイス間で以前に収集された訪問者データを同期し、訪問履歴を調整できます。Kameleoon がデバイス間でデータをどのように扱うかに関するケーススタディと詳細情報は、クロスデバイス実験に関する記事で確認できます。デバイス間でのカスタムデータの同期
訪問者データをデバイス間で整合させるためにカスタムマッピング同期が使用されますが、常に必要なわけではありません。以下は、カスタムマッピング同期が必要ない 2 つのシナリオです: デバイス間で同じユーザー ID すべてのデバイスで一貫して同じユーザー ID が使用されている場合、カスタムマッピング同期なしで同期が自動的に処理されます。複数のデバイス間で収集されたデータを同期したい場合、GetRemoteVisitorData() メソッドを呼び出すだけで十分です。
一貫した ID を持つマルチサーバーインスタンス
複数のサーバー(例: 分散サーバーインスタンス)を含む複雑な設定で、サーバー間で同じユーザー ID が利用できる場合、追加のカスタムマッピング同期なしで、サーバー間の同期(GetRemoteVisitorData() を使用)で十分です。
追加データが必要なお客様は、GetRemoteVisitorData() メソッドの説明を参照して、さらなるガイダンスを得ることができます。以下のコードでは、正確なデータ取得のために 2 つのデバイス間で同じ一意の識別子(この場合、userId とも呼ばれる visitorCode)が一貫して使用されていると仮定しています。
収集したデータをリアルタイムで同期したい場合は、カスタムデータのスコープに Visitor を選択する必要があります。
デバイス A
デバイス B
セッションマージ用のカスタムデータの使用
クロスデバイス実験では、訪問者のデバイスごとに履歴を結合できます(履歴の調整)。履歴の調整により、異なる訪問者セッションを 1 つにマージできます。訪問履歴を調整するには、CustomData を使用して訪問者の一意の識別子を提供します。詳細については、専用ドキュメントを参照してください。
クロスデバイスの調整が有効になった後、パラメータ userId を指定して GetRemoteVisitorData() を呼び出すと、指定したユーザーの既知のすべてのデータが取得されます。
同じ識別子を持つセッションは、実験で常に同じバリエーションが表示されます。実験の結果ページの Visitor ビューでは、これらのセッションは単一の訪問者として表示されます。
SDK 設定により、関連付けられたセッションは常に同じバリエーションの実験を見ることが保証されます。ただし、クロスデバイスのバリエーション割り当てに関していくつかの制限があります。これらの制限はこちらで概説されています。
クロスデバイス履歴調整の有効化ガイドに従って、Kameleoon プラットフォーム上でカスタムデータを設定します。
その後、SDK を通常通り使用できます。セッションマージのコンテキストで役立つ可能性のあるメソッドは次のとおりです:
UniqueIdentifier(true)を追加したGetRemoteVisitorData()- リンクされたすべての訪問者のデータを取得します。UniqueIdentifier(true)データを追加したTrackConversion()またはFlush*()- 別の訪問者に関連付けられた特定の訪問者の一部のデータを追跡します。
GetVisitorCode() メソッドで生成された匿名の訪問者識別子が使用されます。ユーザーがログインした後、匿名の訪問者がユーザー ID に関連付けられ、訪問者の一意の識別子として使用されます。
カスタムバケッティングキーの使用
デフォルトでは、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 がサポートする条件のリストについては、訪問履歴を使用してユーザーをターゲットするを参照してください。 外部データを使用してユーザーをターゲットすることもできます。ロギング
SDK は、さまざまな内部プロセスや問題を反映するログを生成します。ログレベル
SDK は、ログレベルによるロギングの制限の設定をサポートしています。ログのカスタム処理
SDK はデフォルトでログをコンソール出力に書き込みます。この動作は上書き可能です。ログレベルによるロギングの制限は、ログ処理ロジックとは別に実行されます。
リファレンス
これは Go SDK の完全なリファレンスドキュメントです。初期化
Create()
SDK を初期化するために、他のメソッドより先にこのメソッドを呼び出します。このメソッドはKameleoonClientFactory にあります。これにより、SDK とアプリ間のすべての対話を管理する KameleoonClient のインスタンスが作成されます。
引数
戻り値
CreateFromFile()
SDK を初期化するために、他のメソッドより先にこのメソッドを呼び出します。このメソッドはKameleoonClientFactory にあります。これにより、SDK とアプリ間のすべての対話を管理する KameleoonClient のインスタンスが作成されます。
引数
戻り値
Forget()
Forget メソッドは、指定された siteCode を持つ KameleoonClient インスタンスを KameleoonClientFactory から削除し、KameleoonClient インスタンスが使用するリソースを解放します。Forget メソッドを呼び出した後は、KameleoonClient インスタンスを使用しないでください。
引数
WaitInit()
Kameleoon クライアントの初期化は即時には完了しません。アクティブなすべての実験と機能フラグの現在の設定を取得するために、CDN(コンテンツデリバリーネットワーク)へのサーバーリクエストが必要となるためです。kameleoon.KameleoonClient の WaitInit メソッドを使用すると、KameleoonClient インスタンスが使用可能になるまで待機できます。
戻り値
機能フラグとバリエーション
IsFeatureActive() / IsFeatureActiveWithTracking()
- 📨 Kameleoon にトラッキングデータを送信します(
trackパラメータに依存)
GetVariation メソッドを使用する必要があります。
visitorCode と featureKey を必須引数として取り、特定のユーザーに対して機能フラグがアクティブかどうかを確認します。
ユーザーが以前に機能フラグに関連付けられていない場合、SDK はランダムなブール値(ユーザーがこの機能を持つべき場合は true、そうでない場合は false)を返します。ただし、ユーザーがすでにこの機能フラグに登録されている場合、SDK は以前の機能フラグ値を検出します。
コード例に示されているように、発生する可能性のある例外をキャッチするために、コードに適切なエラー処理を設定することが重要です。
visitorCode を指定すると、IsFeatureActive メソッドはそれを一意の訪問者識別子として使用します。これはクロスデバイス実験に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
isUniqueIdentifier パラメータは非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は固有の状況で役立つ場合があります。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないものの、セッションマージを通じてその訪問者にリンクされた内部 ID を使用できる場合です。Kameleoon は、
IsFeatureActive()、GetVariation()、GetVariations() などの特定のメソッドを呼び出した際に、セッションと訪問者数をカウントするためにトラッキングを使用します。訪問者をバリエーションに露出させてカウントする必要がある場合は、GetVariationOptParams.Track パラメータのデフォルト値 true を使用してください。訪問者を露出させる前にこれらのメソッドを呼び出す場合のみ、GetVariationOptParams.Track パラメータを false に設定してください。たとえば、訪問者を露出させる前にすべてのバリエーションを取得するために GetVariations() を呼び出す場合、GetVariationsOptParams.Track パラメータを false に設定してください。この設定により、Kameleoon が早すぎるタイミングでセッションをカウントするのを防ぎます。その後、訪問者を明示的に露出させたときにトラッキングをトリガーできます。Kameleoon はデフォルトで毎秒トラッキングデータを送信します。この間隔は、トラッキング間隔の設定オプションを使用して最大 5 秒まで設定できます。Kameleoon は、イベント間の間隔が 30 分未満である限り、トラッキングイベントを単一のセッションにグループ化します。トラッキングイベント間で 30 分以上経過した場合、Kameleoon はイベントを別個のセッションとしてカウントします。訪問は、セッションで最後に記録されたイベントから 30 分後にレポートに表示されます。引数
戻り値
スローされる例外
GetVariation()
- 📨 Kameleoon にトラッキングデータを送信します(
GetVariationOptParams.Trackパラメータに依存)
Variation を取得します。
このメソッドは visitorCode と featureKey を必須引数として取ります。GetVariationOptParams.Track 引数はオプションで、デフォルトは true です。
訪問者に割り当てられた Variation を返します。訪問者がどの機能フラグルールにも関連付けられていない場合、メソッドは指定された機能フラグのデフォルト Variation を返します。
潜在的な例外を管理するために、コードに適切なエラー処理が実装されていることを確認してください。
デフォルトバリエーションとは、機能フラグの事前定義された配信ルールに一致しない訪問者に割り当てられるバリエーションのことです。言い換えれば、特定のルールでターゲットされていないすべてのユーザーに適用されるフォールバックバリエーションです。管理インターフェースの「その他の全員には…を配信」セクションのバリエーションとして表現されます。
引数
戻り値
スローされる例外
GetVariations()
- 📨 Kameleoon にトラッキングデータを送信します(
GetVariationsOptParams.Trackパラメータに依存)
Variation オブジェクトのマップを取得します。
このメソッドは、利用可能なすべての機能フラグを反復し、指定された訪問者に関連付けられた各フラグの割り当てられた Variation を返します。visitorCode を必須引数として取り、GetVariationsOptParams.OnlyActive と GetVariationsOptParams.Track はオプションです。
GetVariationsOptParams.OnlyActiveがtrueに設定されている場合、GetVariations()メソッドは、ユーザーがoffバリエーションでバケッティングされていない場合に限り、機能フラグのバリエーションを返します。GetVariationsOptParams.Trackパラメータは、メソッドがバリエーション割り当てを追跡するかどうかを制御します。デフォルトではtrueに設定されています。falseに設定されている場合、トラッキングは無効になります。
Variation を値として持ちます。機能フラグにバリエーションが割り当てられていない場合、メソッドはそのフラグのデフォルト Variation を返します。
潜在的な例外を管理するために、適切なエラー処理を実装する必要があります。
デフォルトバリエーションとは、機能フラグの事前定義された配信ルールに一致しない訪問者に割り当てられるバリエーションのことです。言い換えれば、特定のルールでターゲットされていないすべてのユーザーに適用されるフォールバックバリエーションです。管理インターフェースの「その他の全員には…を配信」セクションのバリエーションとして表現されます。
引数
戻り値
スローされる例外
引数
戻り値
スローされる例外
SetForcedVariation()
このメソッドを使用すると、標準の評価プロセスをバイパスして、特定のVariation をユーザーにプログラムで割り当てることができます。これは、通常の評価ロジックが不要、またはスキップする必要がある制御された実験で特に有用です。また、デバッグやカスタムテストなどのシナリオでも役立ちます。
強制バリエーションが設定されると、Kameleoon のリアルタイム評価ロジックを上書きします。セグメンテーション、ターゲティング条件、アルゴリズム計算などのプロセスはスキップされます。実験中にセグメンテーションとターゲティング条件を保持するには、代わりに SetForcedVariationOptParams.ForceTargeting=false を設定します。
シミュレートされたバリエーションは、実行順序で常に優先されます。シミュレートされたバリエーション計算がトリガーされると、それが最初に完全に処理および完了されます。
引数
スローされる例外
EvaluateAudiences()
- 📨 Kameleoon にトラッキングデータを送信します
EvaluateAudiences() は、関連するすべての訪問者データが設定または更新された後、機能のバリエーションを取得する、または機能フラグを確認する 直前 に呼び出す必要があります。このアプローチにより、訪問者が利用可能な最新のデータに対して評価されることを保証し、すべての基準に基づいた正確なオーディエンス割り当てが可能になります。
このメソッドを呼び出した後、Audiences Explorer でセグメントパフォーマンスの詳細な分析を実行できます。
引数
スローされる例外
GetDataFile()
現在の SDK 設定をDataFile オブジェクトとして返します。
戻り値
訪問者データ
GetVisitorCode()
このメソッドは以前
ObtainVisitorCode と呼ばれており、SDK バージョン 3.0.0 で削除されました。visitorCode を取得するために GetVisitorCode() メソッドを呼び出す必要があります。以下にその仕組みを説明します:
- Kameleoon は、現在の HTTP リクエストに関連付けられた kameleoonVisitorCode クッキーがあるかどうかを確認します。見つかった場合、Kameleoon はこのコードを訪問者識別子として使用します。
- クッキーが見つからない場合、メソッドは新しい識別子をランダムに生成するか、defaultVisitorCode 引数が渡された場合はそれを使用します。識別子を訪問者コードとして使用することで、追加の検索なしで Kameleoon 訪問者と自社のユーザーを一致させることができます。
- 次に、サーバー側の kameleoonVisitorCode クッキーが HTTP ヘッダー経由で識別子値で設定され、メソッドが識別子値を返します。
Kameleoon が生成した visitorCode を使用する代わりに、独自の
User ID を提供する場合、User ID が一意であることを保証するのはあなたの責任です。SDK は一意性をチェックしません。提供する User ID は 255 文字を超えてはならないことに注意することが重要です。超過した文字数は例外を発生させます。GetVisitorCode() メソッドを使用すると、訪問者に シミュレートされた バリエーションを設定できます。クッキー(リクエスト または ドキュメント からのもの)に kameleoonSimulationFFData キーが含まれている場合、標準の評価プロセスはバイパスされます。代わりに、メソッドは提供されたデータに基づいて Variation を直接返します。シミュレーションは 2 つの方法で適用できます:- 自動的に(推奨): Kameleoon Web Experimentation または SDK を ハイブリッドモード で使用している場合、シミュレーションパネル を使用してバリアントの表示をシミュレートすると、クッキーが自動的に作成されます。
- 手動で:
kameleoonSimulationFFDataクッキーを手動で設定します。
- シミュレートされたバリエーション: 全体的な機能フラグの結果に影響を与えます。
- 強制バリエーション: 個別の実験に固有のものです。
kameleoonSimulationFFData クッキーが以下の形式に従うことを確認してください:kameleoonSimulationFFData={"featureKey":{"expId":10,"varId":20}}: 指定されたfeatureKeyに対して、実験expIdのvarIdを持つバリエーションをシミュレートします。kameleoonSimulationFFData={"featureKey":{"expId":0}}: 指定されたfeatureKeyに対して、デフォルトバリエーション(本番環境でその他の全員には…を配信 セクションで定義されたもの)をシミュレートします。
encodeURIComponent などのメソッドを使用して URI コンポーネントとしてエンコードする必要があります。引数
戻り値
スローされる例外
AddData()
AddData() メソッドは、他のメソッドが現在の訪問者をターゲットするかどうかを判断するために使用できる ターゲティングデータ をストレージに追加します。
AddData() メソッドは値を返さず、それ自体では Kameleoon バックエンドサーバーと通信しません。代わりに、宣言されたすべてのデータは Flush*() メソッドを使用して将来送信するために保存されます。このアプローチにより、データは通常 Flush*() によってトリガーされる単一のサーバーコールにグループ化されるため、行われるサーバーコール数が減少します。
TrackConversion() メソッドも、Flush*() と同様に以前に関連付けられたデータを送信します。実験ルールがトリガーされた場合、GetVariation() および GetVariations() メソッドにも同じことが当てはまります。
引数
例外
FlushAll() / FlushVisitor() / FlushVisitorInstantly()
- 📨 Kameleoon にトラッキングデータを送信します
FlushAll()/FlushVisitor()/FlushVisitorInstantly() メソッドは、訪問者にリンクされた Kameleoon データを収集します。次に、AddData メソッドを使用して追加され、これらのメソッドのいずれかを使用してまだ送信されていないすべてのデータとともに、トラッキングリクエストを送信します。サーバーコールは非同期で行われるため、Flush*() は非ブロッキングです。
Flush*() を使用すると、特定の visitorCode に関連付けられたデータがいつサーバーに送信されるかを制御できます。たとえば、AddData() を 12 回呼び出した場合、AddData() が呼び出されるたびにサーバーにデータを送信するのは非効率的なので、最後に一度だけ Flush() を呼び出すだけで済みます。
FlushVisitor()/FlushVisitorInstantly() メソッドは visitorCode を一意の訪問者識別子として使用します。これはクロスデバイス実験に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
isUniqueIdentifier パラメータは非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は固有の状況で役立つ場合があります。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないものの、セッションマージを通じてその訪問者にリンクされた内部 ID を使用できる場合です。引数
スローされる例外
GetRemoteData()
GetRemoteData() メソッドは、引数として渡された key に従って、指定された siteCode(KameleoonClient コンストラクタで指定されたもの)について Kameleoon のリモートサーバーに保存されている外部データを取得します。このキーは通常、Kameleoon 訪問者コードまたは User ID です。
このメソッドを使用して、ユーザー設定、履歴データ、または他のアプリケーションのロジックに関連するデータを取得できます。当社の Data API を使用してこのデータを高度にスケーラブルなサーバーに保存することで、大量のデータを効率的に管理し、すべての訪問者またはユーザーのデータを取得できます。
メソッドの戻り値は、json.Unmarshal() 関数を使用してデコードできる JSON オブジェクトです。このデータを使用して、機能フラグや実験の高度なターゲティングセグメントを構築したり、取得したデータに格納されている値に基づいて実験およびパーソナライゼーションレポートをフィルタリングしたりできます。
サーバーコールが必要なため、このメカニズムは非同期です。
引数
戻り値
スローされる例外
GetRemoteVisitorData()
GetRemoteVisitorData() は、Kameleoon Data API から VisitorCode の Kameleoon 訪問データを取得するための非同期メソッドです。このメソッドは、他のメソッドがターゲティング決定を行うときに使用できるようにデータをストレージに追加します。
このメソッドで取得したデータは、以下の場合に重要な役割を果たします:
- 他のデバイスから収集されたデータを使用したいとき。
- 過去の訪問中に訪れたページなど、ユーザーの履歴にアクセスしたいとき。
- データレイヤー変数や、フロントエンドでのみコンバージョンするゴールなど、クライアント側でのみアクセス可能なデータを使用したいとき。
IsUniqueIdentifier パラメータは非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は固有の状況で役立つ場合があります。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないものの、セッションマージを通じてその訪問者にリンクされた内部 ID を使用できる場合です。GetRemoteVisitorData の引数
GetRemoteVisitorDataWithFilter の引数
GetRemoteVisitorDataWithOptParams の引数
GetRemoteVisitorDataWithOptParams メソッドは非推奨です。代わりに GetRemoteVisitorDataWithFilter と UniqueIdentifier を使用してください。kameleoon.RemoteVisitorDataOptParams のフィールドリストは次のとおりです:kameleoon.RemoteVisitorDataOptParams のデフォルト値は types.RemoteVisitorDataFilter{PreviousVisitAmount: 1, CurrentVisit: true, CustomData: true} で、types.DefaultRemoteVisitorDataFilter() 関数で取得できます。戻り値
GetRemoteVisitorData() でのパラメータの使用
GetRemoteVisitorData() メソッドは、訪問者のデータを取得する際にさまざまなパラメータを定義できる柔軟性を提供します。ゴール、実験、バリエーションに基づいてターゲットする場合でも、すべてのデータ型に対して同じアプローチが適用されます。
たとえば、「Order transaction」というゴールを完了した訪問者のデータを取得したいとします。GetRemoteVisitorData() メソッド内でパラメータを指定して、ターゲティングを絞り込むことができます。たとえば、過去 5 回の訪問でゴールでコンバージョンしたユーザーのみをターゲットする場合、PreviousVisitAmount パラメータを 5 に、Conversions を true に設定できます。
この例で示されている柔軟性は、ゴールデータに限定されません。GetRemoteVisitorData() メソッド内のパラメータを使用して、さまざまな訪問者の行動に関するデータを取得できます。
利用可能な
types.RemoteVisitorDataFilter オプションのリストは次のとおりです:GetVisitorWarehouseAudience()
指定されたVisitorCode と WarehouseKey を使用して、データウェアハウス内で訪問者に関連付けられたすべてのオーディエンスデータを取得します。WarehouseKey は通常、内部のユーザー ID です。CustomDataIndex パラメータは、Kameleoon が訪問者をターゲットするために使用する Kameleoon カスタムデータに対応します。追加の詳細については、ウェアハウスターゲティングのドキュメントを参照してください。このメソッドは CustomData オブジェクトを返し、データが訪問者に追加され、ターゲティング目的で利用可能であることを確認します。
GetVisitorWarehouseAudience の引数
GetVisitorWarehouseAudienceWithOptParams の引数
kameleoon.VisitorWarehouseAudienceOptParams のフィールドリストは次のとおりです:GetVisitorWarehouseAudience メソッドの場合、一部のパラメータをオプション(WarehouseKey と Timeout)にするために、パラメータは VisitorWarehouseAudienceParams 構造体の params として関数に渡されます。GetVisitorWarehouseAudienceWithOptParams メソッドの場合、オプションパラメータのみが VisitorWarehouseAudienceOptParams 構造体の params として関数に渡されます。戻り値
SetLegalConsent()
このメソッドを使用して、訪問者が個人データの使用に法的同意を与えたかどうかを指定する必要があります。legalConsent パラメータを false に設定すると、トラッキングリクエストに含めることができるデータタイプが制限されます。このメソッドは、訪問者データを責任を持って管理しながら、法的および規制上の要件に従うのに役立ちます。個人データに関する詳細は、同意管理ポリシーで確認できます。
引数
スローされる例外
同意撤回の動作
SetLegalConsent() を consent=false で呼び出した場合、SDK は kameleoonVisitorCode クッキーを削除しません。代わりに、クッキーの有効期限の延長を停止し、クッキーが自然に期限切れになるまで持続できるようにします。
コンプライアンス要件としてオプトアウト時にクッキーファイルを即座に削除する必要がある場合は、フレームワークのネイティブクッキー管理メソッドを使用して手動で削除する必要があります。SDK はファイルを自動的に削除しません。
ゴールとサードパーティ分析
TrackConversion()
- 📨 Kameleoon にトラッキングデータを送信します
visitorCode と goalId が必要です。さらに、このメソッドはオプションの TrackConversionOptParams.Revenue、TrackConversionOptParams.Negative、TrackConversionOptParams.Metadata 引数も受け取ります。visitorCode は通常、実験をトリガーしたときに使用したものと同じです。
TrackConversion() メソッドは値を返しません。サーバーコールは非同期で行われるため、このメソッドは非ブロッキングです。
isUniqueIdentifier パラメータは非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は、他のエッジケースのシナリオでも役立つ場合があります。たとえば、訪問者に元々割り当てられた匿名の visitorCode にアクセスできないものの、セッションマージ機能を使用して匿名訪問者に接続されている内部 ID にアクセスできる場合です。引数
TrackConversionOptParams.Metadata の値は、生データのエクスポート と 結果ページ からアクセスできます。
TrackConversionOptParams.Metadata パラメータが提供された場合、Kameleoon は、以前に AddData() メソッドを使用して収集されたものではなく、現在のコンバージョンに対してこれらの指定された値を使用します。パラメータが省略された場合、Kameleoon は同じ訪問内のコンバージョンの前に、これらの CustomData について最後にトラッキングされた値を使用します。Kameleoon は、TrackConversion() メソッドにパラメータとして明示的に渡されたメタデータ値のみを考慮します。以下の例では、Kameleoon はパラメータとして明示的に提供されたカスタムデータ値(ここでは、値が「Amex Credit Card」のインデックス 5)のみをコンバージョンに関連付けます。例外
GetEngineTrackingCode()
Kameleoon は、Mixpanel、Google Analytics 4、Segment などのいくつかの分析ソリューションと統合されています。サーバー側の実験を正しく追跡するには、訪問者が実験をトリガーした後にGetEngineTrackingCode() メソッドを呼び出します。SDK は、前回の 5 秒間に訪問者がトリガーした実験の JavaScript キューコマンドを返します。このコードをページに挿入すると、Engine.js はコマンドを処理し、アクティブな分析統合を介して露出イベントを送信します。
このメソッドの実装の詳細については、ハイブリッド実験を参照してください。
- この機能を使用するには、Go SDK と Kameleoon Engine.js の両方を実装します。このフローでは Engine.js はトラッキングにのみ使用されるため、閉じる
</body>タグの前に非同期タグをインストールできます。 - Kameleoon でのみ実験を追跡し、サードパーティの分析ツールに露出イベントを送信する必要がない場合は、JavaScript / TypeScript SDK を使用してください。このオプションは サーバーレスエッジコンピュートプラットフォーム に適しています。JavaScript / TypeScript SDK は、
getVisitorCodeを呼び出した際に、対応する実験割り当てをwindow.kameleoonQueueに追加していれば、自動的にバリエーションを追跡します。 - 返されたトラッキングコードは HTML の
<script>タグに直接挿入できます。
123456 と 234567 は実験 ID、7890 と 8901 はバリエーション ID です。実装では、SDK が返されたトラッキングコードでこれらの値を生成します。引数
戻り値
イベント
OnUpdateConfiguration()
OnUpdateConfiguration メソッドを使用すると、設定がデータを更新したときのイベントを処理できます。1 つの入力パラメータ handler を取ります。リアルタイム設定イベントを使用して設定が更新されたときに呼び出されるハンドラです。
引数
データ型
Browser
ここに保存されるBrowser データセットを使用して、関連する値で実験およびパーソナライゼーションレポートをフィルタリングできます。
Conversion
ここに保存されるConversion データセットを使用して、関連するゴールで実験およびパーソナライゼーションレポートをフィルタリングできます。
Cookie
Cookie には、訪問者のデバイスに保存されているクッキーに関する情報が含まれています。
Geolocation
Geolocation には、訪問者の位置情報の詳細が含まれます。
CustomData
CustomData を使用すると、任意のタイプのデータを各訪問者に簡単に関連付けることができます。その後、セグメントのターゲティング条件として、または実験レポートのフィルター/ブレークダウンとして使用できます。カスタムデータの詳細については、こちらの記事を参照してください。
-
各訪問者は、それぞれ一意の
indexごとに 1 つのCustomDataのみが許可されます。同じindexで別のCustomDataを追加すると、既存のものが置き換えられます。 - カスタムデータの「インデックス」は、カスタムデータダッシュボード の「INDEX」列で確認できます。
- プライバシー上の理由から、選択したインデックスのデータを SDK が Kameleoon サーバーに送信しないようにするには、カスタムデータの作成時に このデータをローカルでのみターゲティング目的に使用する オプションを有効にします。
-
SDK インスタンスの設定が最新でない、または名前が登録されていない場合に、名前で作成された
CustomDataインスタンスを追加すると、データは無視されます。
Device
デバイスデータを使用して、関連する値で実験またはパーソナライゼーションレポートをフィルタリングできます。NewDevice
OperatingSystem
OperatingSystem には、訪問者のデバイスのオペレーティングシステムに関する情報が含まれます。
NewOperatingSystem
PageView
ページビューデータを使用して、関連する値で実験またはパーソナライゼーションレポートをフィルタリングできます。リファラーのインデックスまたは ID は Kameleoon アカウントで確認できます。このインデックスは 0 から始まることに注意することが重要です。これは、特定のサイトに対して作成した最初の獲得チャネルには、1 ではなく 0 が ID として割り当てられることを意味します。
NewPageView
NewPageViewWithTitle
UserAgent
サーバー側の実験は、クライアント側の実験よりもボットトラフィックの影響を受けやすい傾向があります。Kameleoon はこの問題に対処し、既知のボットやスパイダーを認識するために、IAB/ABC International Spiders and Bots List を使用します。Kameleoon はまた、UserAgent フィールドを使用して、コンバージョン指標を歪める可能性のあるボットや他の不要なトラフィックを除外します。詳細については、ボットフィルタリングに関するヘルプ記事を参照してください。
内部ボットを使用している場合は、分析から除外するために、userAgent の値として curl/8.0 を渡すことをお勧めします。
NewUserAgent
UniqueIdentifier
訪問者にUniqueIdentifier を追加しない場合、visitorCode が一意の訪問者識別子として使用され、これはクロスデバイス実験に役立ちます。訪問者に UniqueIdentifier を追加すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
isUniqueIdentifier は固有の状況で役立つ場合があります。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないものの、セッションマージを通じてその訪問者にリンクされた内部 ID を使用できる場合です。
NewUniqueIdentifier
ApplicationVersion
ApplicationVersion は、アプリケーションのセマンティックバージョン番号を表します。
NewApplicationVersion
戻り値の型
DataFile
DataFile には、SDK 設定の詳細が含まれます。
クライアントが必要とする場合、追加情報で拡張できます。詳細が必要な場合は、カスタマーサクセスマネージャーにお問い合わせください。
FeatureFlag
FeatureFlag は、機能フラグ自体を定義するプロパティのセットを表します。たとえば、その Variations、Rules、環境ステータス、その他の関連詳細などです。
クライアントが必要とする場合、追加情報で拡張できます。詳細が必要な場合は、カスタマーサクセスマネージャーにお問い合わせください。
Rule
Rule は、ルール自体を定義するプロパティのセットを表します。たとえば、その Variations などです。
クライアントが必要とする場合、追加情報で拡張できます。詳細が必要な場合は、カスタマーサクセスマネージャーにお問い合わせください。
Variation
Variation には、訪問者に割り当てられたバリエーション(または、特定の割り当てがない場合はデフォルトバリエーション)に関する情報が含まれます。
Variationオブジェクトは、割り当てられたバリエーションとその関連実験に関する詳細を提供します。一方、Variableオブジェクトには、バリエーション内の各変数に関する具体的な詳細が含まれます。VariationIDまたはExperimentIDがnilの場合(デフォルトバリエーションを示す)を処理するようにコードを設計してください。- バリエーションに変数が関連付けられていない場合、
Variablesマップが空になる可能性があります。
Variable
Variable には、割り当てられたバリエーションに関連付けられた変数に関する情報が含まれます。
非推奨メソッド
GetFeatureVariationKey()
- 📨 Kameleoon にトラッキングデータを送信します
代わりに
GetVariation() を使用してください。コードで適切なエラー処理を使用して、潜在的な例外を処理することを忘れないでください。ガイダンスについては、サンプルコードを参照してください。
visitorCode を指定すると、GetFeatureVariationKey メソッドはそれを一意の訪問者識別子として使用します。これはクロスデバイス実験に役立ちます。visitorCode を指定して isUniqueIdentifier パラメータを true に設定すると、SDK はフラッシュされたデータを指定された識別子に関連付けられた訪問者にリンクします。
isUniqueIdentifier パラメータは非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は固有の状況で役立つ場合があります。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないものの、セッションマージを通じてその訪問者にリンクされた内部 ID を使用できる場合です。引数
戻り値
スローされる例外
GetActiveFeatureListForVisitor()
代わりに
GetActiveFeatures() を使用してください。GetActiveFeatureListForVisitor() メソッドは visitorCode パラメータを受け取ります。特定の visitorCode でこのメソッドを呼び出すと、その visitorCode で利用可能な機能フラグキーのリストが返されます。
コードで適切なエラー処理を使用して、潜在的な例外を処理することを忘れないでください。たとえば、次のコードを参照してください:
引数
戻り値
スローされる例外
GetActiveFeatures()
代わりに
GetVariations() を使用してください。GetActiveFeatures() メソッドは、指定された訪問者コードに対して利用可能なアクティブな機能フラグに関する情報を取得します。
コードで適切なエラー処理を使用して、潜在的な例外を処理することを忘れないでください。たとえば、次のコードを参照してください:
引数
戻り値
スローされる例外
GetFeatureVariable()
- 📨 Kameleoon にトラッキングデータを送信します
代わりに
GetVariation() を使用してください。GetFeatureVariable() メソッドを呼び出します。
このメソッドは、指定されたユーザーのバリエーションキーの変数を取得するために、visitorCode、featureKey、variableKey を必須引数として取ります。
ユーザーが機能フラグに関連付けられたことがない場合、SDK は機能フラグルールに従ってバリエーションキーの変数値をランダムに返します。ユーザーがすでに機能フラグに登録されている場合、SDK は以前のバリエーションキーの値を検出し、変数値を返します。ユーザーがどのルールにも一致しない場合、デフォルト値が返されます。
コードで適切なエラー処理を使用して、潜在的な例外を処理することを忘れないでください。ガイダンスについては、サンプルコードを参照してください。
isUniqueIdentifier パラメータは非推奨です。代わりに UniqueIdentifier を使用してください。isUniqueIdentifier は固有の状況で役立つ場合があります。たとえば、訪問者に付与された匿名の visitorCode にアクセスできないものの、セッションマージを通じてその訪問者にリンクされた内部 ID を使用できる場合です。引数
戻り値
スローされる例外
GetFeatureVariationVariables()
代わりに
GetVariation() を使用してください。GetFeatureVariationVariables メソッドを呼び出す必要があります。このメソッドには 2 つの必須引数 featureKey と variationKey が必要です。このメソッドは、Kameleoon プラットフォームで定義された、オブジェクト型のデータを返します。
コードで適切なエラー処理を使用して、潜在的な例外を処理することを忘れないでください。ガイダンスについては、サンプルコードを参照してください。