I want to save some information about that page that has been clicked by the user so I register a page event on processItem
pipeline for this I did below code:
public class RegisterCustomPageEvents : ProcessItemProcessor
{
public override void Process(ProcessItemArgs args)
{
foreach (TrackingField trackingParameter in (IEnumerable<TrackingField>)args.TrackingParameters)
TrackingFieldProcessor.ProcessEvents(args.Interaction, trackingParameter);
if (!Tracker.Enabled || Tracker.Current == null || !Tracker.Current.IsActive)
{
return;
}
FireCustomEvent(args);
}
private void FireCustomEvent(ProcessItemArgs args)
{
var myPageTemplateId = "{ED0B99D5-4992-429F-84FE-F8F3D902CAB5}";
if (args.Item == null || Context.Item.TemplateID.ToString() != myPageTemplateId)
{
return;
}
var ev = Tracker.MarketingDefinitions.PageEvents[Guid.Parse("{059A1829-DD32-47B6-8EA6-BEEFAC98DC6E}")];
if (ev != null)
{
var pageData = new PageEventData(ev.Alias, ev.Id);
pageData.Text = "Event";
var fullUrl = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;
pageData.CustomValues.Add("Url", fullUrl);
pageData.CustomValues.Add("PageTemplateId", args.Item.TemplateID.ToString());
pageData.CustomValues.Add("ItemVersion", args.Item.Version.Number);
pageData.ItemId = args.Item.ID.ToGuid();
try
{
Tracker.Current.CurrentPage.Register(pageData);
}
catch (Exception ex)
{
Log.Error("Unable to fire custom event", ex, this);
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<processItem>
<processor type="XXX.RegisterCustomPageEvents, XXX" />
</processItem>
</pipelines>
</sitecore>
</configuration>
My issue is that I am not able to see page events in Interactions
table. I tried to abandon the session.