ページイベントの変換
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、トラッカーからトリガーされた汎用イベントやページイベントを、xConnectに保存される前にカスタムイベントに変換する方法について説明します。
!notexConnectは汎用イベントとページイベントを区別しません。ページイベント定義項目は/sitecore/system/設定/分析/ページイベントに位置し、一般的なイベント定義項目は/sitecore/system/マーケティングコントロールパネル/イベントの下に位置します。
カスタムイベントモデルを作成する
示すようにカスタムイベントモデルを作成します。この例では組み込みの「Print」ページイベントを使用しています。 カスタムイベントの作成に関する詳細はxConnectのドキュメントを参照してください。
using Sitecore.XConnect; using System;
namespace Documentation { public class PrintEvent : Event { public static Guid PrintID = Guid.Parse("{CD52B756-21B4-4028-8BA5-E981B8A96F95}");
public PrintEvent(DateTime timestamp) : base(PrintID, timestamp) { }
public Orientation Orientation { get; set; } }
public enum Orientation { Unknown = 0, Landscape = 1, Potrait = 2 } }
イベント変換プロセッサを作成する
- ConvertPageEventDataToEventBaseを継承するパイプラインプロセッサを作成します。
- 示した通り CreateEvent と CanProcessPageEventData を実装します。このハンドラは Orientation が CustomValues 辞書に保存されていると仮定しています。
using Sitecore.Analytics.Model; using Sitecore.Analytics.XConnect.DataAccess.Pipelines.ConvertToXConnectEventPipeline; using Sitecore.Framework.Conditions; using Sitecore.XConnect;
namespace Documentation { public class ConvertPrintEvent : ConvertPageEventDataToEventBase { protected override bool CanProcessPageEventData(PageEventData pageEventData) { Condition.Requires(pageEventData, nameof(pageEventData)).IsNotNull();
if (pageEventData.PageEventDefinitionId == PrintEvent.PrintID) { return true; }
return false; }
// Create new print event from pageEventData // All base Event properties are mapped automatically protected override Event CreateEvent(PageEventData pageEventData) { PrintEvent printEvent = new PrintEvent(pageEventData.DateTime);
var orientation = (Orientation)pageEventData.CustomValues"Orientation"; // Store 'Orientation' as a constant somewhere and use when triggering event
printEvent.Orientation = orientation;
return printEvent; } } }
レジスタイベント変換プロセッサ
MyBrand.CustomEvents.configという新しい設定ファイルを作成し、表示通りハンドラーでパッチを当ててください。
!重要最終イベントハンドラーの前にプロセッサーを接続しなければなりません。
イベントをトリガーする
イベント変換パイプラインプロセッサが期待するカスタムデータでイベントをトリガーします:
var ev = Sitecore.Analytics.Tracker.MarketingDefinitions.PageEventsPrintEvent.PrintID;
if (ev != null) { var pageData = new Sitecore.Analytics.Data.PageEventData(ev.Alias, ev.Id);
pageData.CustomValues.Add("Orientation", Orientation.Potrait);
Sitecore.Analytics.Tracker.Current.CurrentPage.Register(pageData); }