計算されたファセット

計算されたファセットは、新しいインタラクションを送信するたびに xConnect サービス レイヤーによって更新されます。計算されたファセットの目的は、コンタクトのインタラクション履歴に関する推測データにパフォーマンスの高い方法でアクセスできるようにすることです。計算されたファセットの使用例は次のとおりです。

  • コンタクトによるインタラクションごとの平均支出など、数値をインクリメントまたはデクリメントする

  • 最小値/最大値を保存する

  • 最近のイベントのリストを保存する

  • ヒストグラム (インタラクションの場所のリストや、その場所からの訪問の総数など) を保存する

  • ヒート マップを保存する

計算された各ファセットを構成する項目は次のとおりです。

  • ファセット クラス。ファセット クラス内には、計算されたファセットとバリュー ファセットを区別するものは何もありません。

  • 計算されたファセット ハンドラー。これは xConnect サービス レイヤーで設定します。

計算されたファセットは自動的に再試行される

xConnect が、計算されたファセット値を保存しようとしたときに競合が発生した場合、操作は自動的に再試行されます。

計算されたファセット ハンドラーはコンタクト データにアクセスできない

計算されたファセット ハンドラーは、コンタクト オブジェクトやコンタクト ファセットにアクセスできません。計算がコンタクト ファセットに依存しており、そのファセットが変更された場合、計算されたファセットを再構築すると、一貫性のない結果が生成されます。計算に必要なデータは、イベントまたはインタラクション ファセットとして保存します。

注記

現在、計算されたファセットを再構築することはできません。

推奨されるプラクティス

計算ファセットを実装するときは、次の推奨されるプラクティスに留意してください。

計算されたファセットは慎重に使用する

計算されたファセット プラグインは、インタラクションを xConnect に送信するたびに実行されます。この機能を使いすぎると、システム全体のパフォーマンスに悪影響を与える可能性があります。計算されたファセットを実装するときは、次の点に注意してください。

  • 計算されたファセット機能は慎重に使用する。

  • 別のファセットが使用できない場合に計算を実行できない場合は、Sitecore.XConnect.Service.InteractionFacetDependency オブジェクトの Requiredプロパティを true に設定する。

  • できるだけ早く計算を終了する。インタラクションがファセット値に影響を与えるために特定の条件を満たす必要がある場合は、最初にこれらの条件を確認します。インタラクションが条件を満たさない場合は、false が返されます。

計算されたファセット プロパティを手動で設定しない

計算されたファセットを xConnect クライアント API を使用して手動で更新しないでください。計算されたファセットがコンタクトの履歴から再構築されると、手動での変更は失われます。

ファセットは計算されるか計算されないかのどちらかである

同じファセット内に、計算されたプロパティとバリュー プロパティを混在させないでください。たとえば、AverageSpend ファセットを更新するのは AverageSpendHandler のみとします。