private void TriggerEvent(string id, string data) { ID scId; if (!string.IsNullOrEmpty(id) && ID.TryParse(id, out scId)) { if (Tracker.IsActive == false) { Tracker.StartTracking(); } if (Tracker.Current != null && Tracker.Current.Interaction != null && Tracker.Current.Interaction.PageCount > 0) { Item defItem = Context.Database.GetItem(scId); var eventToTrigger = new PageEventData(defItem.Name, scId.Guid) { Data = data }; IPageContext desiredPage = null; for (int i = Tracker.Current.Interaction.PageCount; i > 0 && desiredPage == null; i--) { var page = Tracker.Current.Interaction.GetPage(i); if (page.Item != null && Guid.Empty.Equals(page.Item.Id) == false) { desiredPage = page; } } desiredPage?.Register(eventToTrigger); Tracker.Current.CurrentPage.Cancel(); } } }
public void RegisterSearchTerm(string term) { if (this.IsActive) { var searchPageEventId = new Guid("0C179613-2073-41AB-992E-027D03D523BF"); IPageContext page = Tracker.Current.CurrentPage; if (page.Url.Path.StartsWith($"/{Events.Constants.API_BASEPATH}/")) { page = this.GetApiPageContext(); } if (page == null) { this.logging.Warning(this.GetType(), $"Register search term - Cannot resolve page context"); return; } var pageEvent = Tracker.MarketingDefinitions.PageEvents.FirstOrDefault(p => p.Name == "Search"); //.Id == searchPageEventId); var pageEventData = new PageEventData(pageEvent.Name, pageEvent.Id); if (page != null) { pageEventData.ItemId = page.Item.Id; pageEventData.Data = term; pageEventData.DataKey = term; pageEventData.Text = term; page.Register(pageEventData); } } }
public void TrackPageEvent(string pageEventName, string data, IDictionary <string, object> customValues = null) { Assert.ArgumentNotNull(pageEventName, nameof(pageEventName)); if (!this.IsActive) { return; } var pageEventItem = Tracker.MarketingDefinitions.PageEvents.FirstOrDefault(p => p.Name.Equals(pageEventName, StringComparison.InvariantCultureIgnoreCase)); if (pageEventItem != null) { IPageContext pageContext = Tracker.Current.CurrentPage; if (pageContext.Url.Path.StartsWith($"/{Events.Constants.API_BASEPATH}/")) { pageContext = this.GetApiPageContext(); } var ped = new PageEventData(pageEventItem.Name, pageEventItem.Id); if (!string.IsNullOrWhiteSpace(data)) { ped.Data = data; } if (customValues != null) { customValues.Keys.Where(k => !ped.CustomValues.ContainsKey(k)).ToList().ForEach(key => { ped.CustomValues.Add(key, customValues[key]); }); } if (pageContext != null) { pageContext.Register(ped); } } }