カスタムイベントモデルを作成する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、EnterStoreという名前のカスタムイベントモデルを作成する方法を説明します。このイベントモデルは、買い物客が端末からサインアウトして自分の商品をスキャンできる店舗で使用可能であり、以下の要件を前提としています。
- EnterStoreモデルは複数の定義項目で使用できるため、固定された定義項目を持ちません。
- EnterStoreモデルは目標や結果ではなく、したがって基本Sitecore.XConnect.Eventクラスを継承します。
定義項目を作成する
以下の例は、複数のイベント定義項目を作成する方法を示しています。連絡先がさまざまな店舗に入る様子を表します。
-
Sitecoreコンテンツエディターを開きます。
-
/sitecore/system/Marketing Control Panel/Eventsに行って。
!注ウェブ固有のページイベントを作成する場合は、一貫性のために定義項目を /sitecore/system/Settings/Analytics/Page Eventsの下に作成してください。
-
イベントアイテムを右クリックし、イベントを挿入>、アイテム名を入力してください。「Express Storeに入る」という名前のイベントと、スーパーストアの入り口というイベントを1つ作成します。

-
新しく作成した定義を選択し、デプロイ>レビュータブをクリックします。これにより定義がウェブデータベースに公開され、Reference Data Serviceデータベースに展開されます。

カスタムイベントモデルを作成する
新しいクラスを作成してEnterStore。クラスにはTookBasketという単一のプロパティがあり、連絡先が店舗に入る際にバスケットを拾ったかどうかを示します。
using Sitecore.Events; using System;
namespace Documentation { public class EnterStore : Sitecore.XConnect.Event { public EnterStore(Guid definitionID, DateTime dateTime) : base(definitionID, dateTime) { }
public bool TookBasket { get; set; } } }
モデル内でカスタムファセットを定義します
コレクションモデルで新しいイベントを .DefineEventTypeメソッドで定義します。以下の例では、イベントモデルがSampleModelというモデルに追加されています。Sitecoreコンテキストでモデルを使用する場合、モデルクラスは クライアント設定ファイルに登録されている必要があります。
using Sitecore.XConnect; using Sitecore.XConnect.Schema;
namespace Documentation { public class SampleModel { public static XdbModel Model { get; } = SampleModel.BuildModel();
private static XdbModel BuildModel() { XdbModelBuilder modelBuilder = new XdbModelBuilder("SampleModel", new XdbModelVersion(0, 1));
modelBuilder.ReferenceModel(Sitecore.XConnect.Collection.Model.CollectionModel.Model);
modelBuilder.DefineEventType
return modelBuilder.BuildModel(); } } }
!警告イベントモデルを登録しなければ、使用できません。「このインスタンスのタイプはスキーマ内のどのタイプとも対応しません」といったエラーが発生します。
カスタムイベントモデルを使います
xConnect Client APIを使って 、イベントをインタラクションに追加してください。以下の例は、2つの異なる定義アイテムIDでイベントモデルをインスタンス化する方法を示しています:
// Event definition ID Guid enterExpressStore = Guid.Parse("{2493F99D-E85F-4869-9704-C1A5C2944778}");
var enterExpressStoreEvent = new EnterStore(enterExpressStore, DateTime.UtcNow) { TookBasket = true };
// Event definition ID Guid enterSuperStore = Guid.Parse("{CD7155D5-2DA5-46AB-8BE9-33A4597735A1}");
var enterSuperStoreEvent = new EnterStore(enterSuperStore, DateTime.UtcNow) { TookBasket = false };
トラッカーでカスタムイベントモデルを使います
トラッカー内でカスタムイベントモデルを使用するには、イベント変換パイプラインプロセッサを作成する必要があります。詳細については、「 カスタムイベントのトリガー」をご覧ください。