ページイベント

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

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

ページ イベント定義は、Sitecore.Marketing.Definitions.PageEvents.PageEventDefinitionManagerクラスによって管理されます。

メモ

ページイベントは特殊なイベントです。 IPageEventDefinitionIEventDefinitionを継承します。

PageEventDefinitionManagerへのアクセス

PageEventDefinitionManagerは、Sitecore DIコンテナから入手できます。クラスのコンストラクタにDefinitionManagerBase<IPageEventDefinition, PageEventDefinitionRecord> 型のパラメータを含め、コンテナからクラスをプルして、コンテナがインスタンスを解決できるようにすることをお勧めします。

public MyClass(DefinitionManagerBase<IPageEventDefinition, PageEventDefinitionRecord> pageEventDefinitionManager)
{
        ...
}

コンテナを使用してクラスを構築できない場合は、サービス ロケータを使用できます。このクラスは、Sitecore DIコンテナーでも使用できます。

using Sitecore.DependencyInjection;
using Sitecore.Marketing.Definitions;

ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager<IPageEventDefinition>();

ページイベントの定義

ページ イベントは、Sitecore.Marketing.Definitions.PageEvents.Model名前空間の型を使用して定義されます。

Guid pageEventId = Guid.NewGuid(); // Page event ID
CultureInfo pageEventCulture = new CultureInfo("es"); // Page event culture
string pageEventName = "Newly created page event"; // Page event name
DateTime creationDate = DateTime.UtcNow; // Page event creation date
string createdBy = "sitecore\admin"; // Page event creator

PageEventDefinition pageEvent = new PageEventDefinition(pageEventId, "Page event item name", pageEventCulture, pageEventName, creationDate, createdBy);

pageEvent.ShowInXfileAsLatestEvent = true;
pageEvent.ShowInXfileEventsList = true;
pageEvent.EngagementValuePoints = 20;

ライブイベント

IsLiveEventプロパティは基本EventDefinitionクラスの一部であり、イベントをセッション終了時ではなくすぐに処理する必要があるかどうかを判断するためにMarketing Automationによって使用されます。ライブイベント処理の詳細については、こちらをご覧ください。

ページ・イベントの保存

ページイベントを定義したら、定義マネージャでSaveAsync() メソッドを呼び出して保存できます。

Guid pageEventId = Guid.NewGuid(); // Page event ID
CultureInfo pageEventCulture = new CultureInfo("es"); // Page event culture
string pageEventName = "Newly created page event"; // Page event name
DateTime creationDate = DateTime.UtcNow; // Page event creation date
string createdBy = "sitecore\admin"; // Page event creator

PageEventDefinition pageEvent = new PageEventDefinition(pageEventId, "Page event item name", pageEventCulture, pageEventName, creationDate, createdBy);

pageEvent.AdditionalRegistrationsAreIgnored = true;
pageEvent.IsMonetaryValueApplicable = true;

    PageEventDefinitionManager manager = ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager<IPageEventDefinition>();

manager.SaveAsync(page event);

オプションで、保存中にSaveAsync() メソッドの2番目のパラメータにtrueを渡すことで、ページイベントをアクティブにすることもできます。

manager.SaveAsync(page event, true);

ページ・イベントのアクティブ化

ページ イベントは、管理の外部で使用できるようになる前にアクティブ化する必要があります。ページ イベントは、SaveAsync() メソッドのactivate (2番目) パラメーターにtrueを渡すことで、保存時にアクティブ化できます。

manager.SaveAsync(pageEvent, true);

ページイベントは、ActivateAsync() メソッドを使用して、saveを呼び出さずにアクティブ化することもできます。

manager.ActivateAsync(pageEventId);

ActivateAsync()メソッドは、ページイベントのIDを受け取り、ページイベント定義モデルを必要としません。

ページイベントの削除

ページイベントを削除するには、マネージャでDelete() メソッドを使用します。個々のカルチャを定義から削除することはできず、定義全体のみを削除します。メソッド呼び出しに提供されるカルチャは、null (既定値) またはCultureInfo.InvariantCultureである必要があります。

manager.Delete(pageEventId);

ページイベントを取得する

1つのページ イベントをそのIDごとに取得するには、マネージャのGet() メソッドのいずれかを使用します。

Guid pageEventId = Guid.NewGuid(); // Ensure this is the ID of an existing page event

// Get by ID and culture. Will get the latest active version
IPageEventDefinition pageEvent = manager.Get(pageEventId, new CultureInfo("da"));

// Get by ID and culture. Will get the latest version, including if the version is inactive
IPageEventDefinition pageEvent = manager.Get(pageEventId, new CultureInfo("da"), true);

連絡先リストをエイリアスで取得する

また、ページイベントをエイリアスで取得することもできます。

CultureInfo pageEventCulture = new CultureInfo("fr-fr");
var pageEventDefinitionByAlias = definitionManager.GetByAlias("My alias", pageEventCulture);

既存のページイベントを更新する

既存のページイベント定義を更新するには、IDでページイベントを取得し、ページイベントを編集します

Guid pageEventId = Guid.NewGuid(); // Ensure this is the ID of an existing page event

// Get by ID and culture. Will get the latest active version
IPageEventDefinition pageEvent = manager.Get(pageEventId, new CultureInfo("da"));

// Make updates to page event
pageEvent.Name = "Updated name";

// Save to update
manager.SaveAsync(pageEvent);

すべてのページイベントの取得

GetAll() メソッドを使用して、マネージャーからすべてのページ イベントを取得できます。定義が多数ある可能性があるため、このメソッドはページングをサポートします。戻り値は1ページの結果です。

    // Get All with defaults which will be first page, page size 20, latest active versions only
    ResultSet<DefinitionResult<IPageEventDefinition>> pageEvents = manager.GetAll(new CultureInfo("da"), new RetrievalParameters<IPageEventDefinition, string>());

    // Get page 2
    ResultSet<DefinitionResult<IPageEventDefinition>> page2pageEvents = manager.GetAll(new CultureInfo("da"), new RetrievalParameters<IPageEventDefinition, string>(pageNumber: 2));

    // Include inactive versions
ResultSet<DefinitionResult<IPageEventDefinition>> page1pageEvents = manager.GetAll(new CultureInfo("da"), new RetrievalParameters<IPageEventDefinition, string>(), true);

結果にアクセスするには、結果のDataPageプロパティを使用します。

IPageEventDefinition page event = page1pageEvents.DataPage.ElementAt(0);

この結果には、定義の総数と現在のページ・インデックスおよびページ・サイズを公開するプロパティも含まれます。

long totalDefinitionCount = page1pageEvents.Total;
int pageNumber = page1pageEvents.PageNumber;
int pageSize = page1pageEvents.Count;
この記事を改善するための提案がある場合は、 お知らせください!