1. イベント

カスタム・イベント・モデルの作成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

このトピックでは、EnterStoreという名前のカスタム・イベント・モデルを作成する方法について説明します。このイベント モデルは、買い物客がハンドセットをサインアウトして自分の商品をスキャンできる店舗で使用でき、次の要件を前提としています。

  • EnterStoreモデルは複数の定義項目で使用できるため、固定の定義項目はありません。

  • EnterStoreモデルは目標や結果ではないため、基本Sitecore.XConnect.Eventクラスを継承します。

定義項目の作成

次の例は、さまざまな店舗に入店する連絡先を表す複数のイベント定義アイテムを作成する方法を示しています。

  1. Sitecoreコンテンツ エディターを開きます。

  2. /sitecore/system/Marketing Control Panel/Eventsに移動します。

    メモ

    Web固有のページ イベントを作成する場合は、一貫性を保つために /sitecore/system/Settings/Analytics/Page Eventsの下に定義アイテムを作成します。

  3. イベント アイテムを右クリックして イベント>挿入 をクリックし、プロンプトが表示されたらアイテム名を入力します。「Enter Express Store」という名前のイベントと「Enter Super Store」という名前のイベントを作成します。

    Create a new event definition item
  4. 新しく作成した定義を選択し、「Deploy」>「Review」タブをクリックします。これにより、定義がWebデータベースに発行され、Reference Data Serviceデータベースにデプロイされます。

    Publish a new event definition

カスタム・イベント・モデルの作成

EnterStoreという名前の新しいクラスを作成します。このクラスには、連絡先が店舗に入ったときにバスケットを選んだかどうかを示すTookBasketという名前の1つのプロパティがあります。

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<EnterStore>(false);

            return modelBuilder.BuildModel();
        }
    }
}
警告

イベントモデルを登録しないと、イベントモデルを使用できません。「このインスタンスのタイプは、スキーマ内のどのタイプにも対応していません」などのエラーが表示されます。

カスタム・イベント・モデルの使用

xConnectクライアント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
};

トラッカーでのカスタムイベントモデルの使用

トラッカー内でカスタム・イベント・モデルを使用するには、イベント変換パイプライン・プロセッサーを作成する必要があります。詳細については、「 カスタムイベントのトリガー」を参照してください。

この記事を改善するための提案がある場合は、 お知らせください!