ファセット
ファセットは、コンタクトやインタラクションを充実させる情報の一部です。コンタクトの場合、名前と住所が含まれる場合があります。インタラクションの場合、インタラクションの場所が含まれる場合があります。Sitecore のデフォルト ファセットを使用するか、独自のファセットを作成することができます。
ファセットは、ファセット モデルとファセット定義で構成されます。ファセット モデルを別のキーで再利用したり、コンタクトとインタラクションに同じキーを使用してファセット モデルを定義したりできます。
ファセット キーの大文字と小文字は区別されます。
ファセット モデル
ファセット モデルは Sitecore.XConnect.Facet
を継承するクラスです。
using Sitecore.XConnect;
using System;
namespace Documentation.Examples
{
[Serializable]
[FacetKey(DefaultFacetKey)]
public class FrequentFlyerInformation : Facet
{
public const string DefaultFacetKey = "FrequentFlyerInformation";
public string FrequentFlyerID { get; set; } // Example: ABC12345
public string PreferredAirport { get; set; } // Example: Kastrup
}
}
ファセット定義
ファセット定義は、ファセット モデルとキーを関連付けて、それをエンティティ (Contact
またはInteraction
) に割り当てます。ファセットはコレクションモデルに定義されています。このモデルは、使用する前に xConnect にデプロイする必要があります。
次のモデルは FrequentFlyerInformation
という名前の 1 つのコンタクト ファセットを定義します。
using Sitecore.XConnect;
using Sitecore.XConnect.Schema;
namespace Documentation.Examples
{
public class CollectionModel
{
public static XdbModel Model { get; } = BuildModel();
private static XdbModel BuildModel()
{
XdbModelBuilder modelBuilder = new XdbModelBuilder("DocumentationModel", new XdbModelVersion(1, 0));
modelBuilder.DefineFacet<Contact, FrequentFlyerInformation>(); // Uses default facet key
return modelBuilder.BuildModel();
}
}
}
コンタクトとインタラクションのファセット
コンタクト ファセットは、コンタクトの挙動ではなく、コンタクトの質を記述する必要があります。次に例を示します。
-
マイレージ サービスのステータス
-
スーパーマーケットのポイント カード番号
インタラクション ファセットは、インタラクション内で発生するイベント (購入など) ではなく、インタラクション全体を記述する必要があります。たとえば、コンタクトが特定の靴店を訪問した場合、インタラクション ファセットには以下が含まれます。
-
店へ行くための交通手段
-
訪問時に有効な店の特典
-
訪問中の天気
-
訪問時に勤務中のマネージャーの ID
ファセット タイプ
ファセットには、バリュー ファセットと計算されたファセットの 2 つのカテゴリがあります。2 つのファセット カテゴリの唯一の違いは、計算されたファセットが xConnect サービス レイヤーのハンドラーに関連付けられていることです。
バリュー ファセット
バリュー ファセットは、コンタクトまたはインタラクションに適用できます。また、xConnect クライアント API を使用して任意のクライアントが設定できます。ほとんどのコンタクト ファセットとすべてのインタラクション ファセットは、このカテゴリに分類されます。Sitecore には、独自のモデルで参照できる複数の組み込みファセットが含まれています。
計算されたファセット
計算されたファセットはコンタクト専用です。計算されたファセットは、コンタクトのインタラクション履歴から推測されたデータを表します (コンタクトの訪問毎の平均エンゲージメント バリューなどが該当します)。計算されたファセットは、インタラクションが関連データと共に送信されるたびに xConnect サービス レイヤーによって更新され、バリュー ファセットと同じ方法で xConnect クライアント API を使用して取得できます。Key Behavior Cache とコンタクト挙動プロファイルは、組み込みの計算されたファセットの例です。
計算されたファセットの詳細については、次のトピックを参照してください。
ファセットの属性
次の属性を使用して、ファセットや各ファセット プロパティを装飾できます。
-
[DoNotIndex]
- この属性で装飾されたファセットまたはファセット プロパティには、インデックスが付けられないため、検索できません。この属性は、検索しないデータ (バイナリ データなど) に使用します。 -
[PIISensitive]
- この属性で装飾されたコンタクト ファセットまたはコンタクト ファセット プロパティには、インデックスが付けられないため、検索できません。この属性でマークしたデータは、ディスクに書き込んだり、外部システムに送信したり、いかなる方法でも公開したりしないでください。
インタラクション ファセットを [PIISensitive]
属性で装飾しようとすると、モデルは検証に合格しません。インタラクションに機密データを保存しないでください。
さらに、ファセット プロパティは [ExpandDate] (DateTime)
属性で装飾できます。これはタイプ固有の属性であり、日付値全体ではなく、日、月、年で DateTime
ファセットプロパティを検索できます (Solr のみ、Sitecore 10.0 以降)。
カスタム ファセットのインデックス付け
カスタムのコンタクト ファセットとインタラクション ファセットは、xDB index に自動的に追加されます。ファセットには、インデックスが付けられますが、保存されません。次のシナリオでは、ファセットデータが xDB index から除外されます。
-
[PIISensitive]
とマークされたファセットのインデックス付けが無効になっている場合、[PIISensitive]
とマークされたコンタクト ファセットやファセット プロパティにはインデックスが付きません。[PIISensitive]
ファセットのインデックス付けは デフォルトで無効になっています。 -
[DoNotIndex]
とマークされたコンタクトやインタラクションのファセットまたはファセット プロパティにはインデックスが付けられません。