/// <summary> /// Places the vote into Analytics. /// </summary> /// <param name="optionItem">The option item.</param> public static void PlaceVote(PollOptionItem optionItem) { // //cancel pipeline handler (for CurrentPage) //Tracker.CurrentPage.Cancel(); // //Submit analytics tracking for poll item SubmitPollTracking(optionItem.Poll.InnerItem, optionItem.InnerItem); // //event trigger on new poll option selected var peData = new PageEventData("Poll"); string text = string.Format("Select {0} ({2}) in poll {1}", optionItem.Title, optionItem.Poll.Name, optionItem.Index); string data = string.Concat(new object[] { optionItem.Poll.Name, "|", optionItem.Title, "|", optionItem.Index }); peData.Data = data; peData.Text = text; peData.DataKey = optionItem.Poll.Name; var row = Tracker.CurrentPage.Register(peData); row.DataCode = optionItem.Index; // //submit immediatelly SubmitAnalyticsImmediatelly(); }
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); } } }
/// <summary> /// Triggers the goal like Brochure Request. This method is to be used for PDF prochure printing. /// Actions should be configured in Sitecore. Associated RuleActions should be created in Rules folder of this project. /// </summary> /// <param name="goalName">Name of the goal.</param> /// <returns></returns> public static string PrintGoal(string goalName) { PageEventData eventData = new PageEventData(goalName); VisitorDataSet.PageEventsRow pageEventsRow = Sitecore.Analytics.Tracker.CurrentPage.Register(eventData); Sitecore.Analytics.Tracker.Submit(); return goalName; }
private void CreateGoalAnalytic() { var goal = new PageEventData("Newsletter signup"); var currentPage = Tracker.Current.CurrentPage; currentPage.Register(goal); }
protected override Event CreateEvent(PageEventData pageEventData) { VisitedCategoryPageEvent pageEvent = new VisitedCategoryPageEvent(pageEventData.DateTime); this.TranslateEvent(pageEventData, pageEvent); return(pageEvent); }
protected override Event CreateEvent(PageEventData pageEventData) { VisitedProductDetailsPageEvent pageEvent = new VisitedProductDetailsPageEvent(pageEventData.DateTime); this.TranslateEvent(pageEventData, pageEvent); return(pageEvent); }
public override void Process(SearchAnalyticsArgs args) { if (string.IsNullOrWhiteSpace(args.SearchParameters.Keyword)) { return; } if (!Tracker.IsActive) { if (!Tracker.Enabled) { return; } Tracker.StartTracking(); } var keywords = args.SearchParameters.Keyword; var pageEventData = new PageEventData("Search", AnalyticsIds.SearchEvent.Guid) { ItemId = args.TabItem.ID.Guid, Data = keywords, DataKey = keywords, Text = keywords }; var interaction = Tracker.Current?.Session?.Interaction; if (interaction != null) { interaction.CurrentPage.Register(pageEventData); } }
private static void TriggerEvent(HttpContext context) { try { string jsonData = context.Request["jsonData"]; var clientEventData = JsonConvert.DeserializeObject <ClientEventData>(jsonData); if (clientEventData == null) { return; } if (string.IsNullOrEmpty(clientEventData.EventName)) { return; } if (!Tracker.Enabled) { return; } if (!Tracker.IsActive || Tracker.Current == null) { Tracker.StartTracking(); // init tracker without tracking the endpoint as a page } if (Tracker.Current == null || Tracker.Current.CurrentPage == null) { return; } if (!string.IsNullOrEmpty(clientEventData.PageEventId)) { var eventData = new PageEventData(clientEventData.EventName, Guid.Parse(clientEventData.PageEventId)) { Text = !string.IsNullOrEmpty(clientEventData.Text) ? clientEventData.Text : string.Empty, DataKey = !string.IsNullOrEmpty(clientEventData.Text) ? clientEventData.Text : string.Empty, Data = !string.IsNullOrEmpty(clientEventData.Data) ? clientEventData.Data : string.Empty, }; Tracker.Current.CurrentPage.Register(eventData); return; } else if (string.IsNullOrEmpty(clientEventData.Text)) { Tracker.Current.CurrentPage.Register(clientEventData.EventName, string.Empty); return; } else { if (string.IsNullOrEmpty(clientEventData.Datakey) || string.IsNullOrEmpty(clientEventData.Data)) { Tracker.Current.CurrentPage.Register(clientEventData.EventName, clientEventData.Text); return; } } } catch (Exception exception) { Log.Error(string.Concat("Sitecore.Scientist.Analytics.ClientEventTracker.TriggerEvent: error in event triggering. requestUrl: ", context.Request.Url.AbsolutePath), exception, typeof(ClientEventTracker)); } }
protected override Event CreateEvent(PageEventData pageEventData) { VisitorOrderCreatedGoal @event = new VisitorOrderCreatedGoal(pageEventData.DateTime); this.TranslateEvent(pageEventData, @event); return(@event); }
/// <summary> /// Add to shopping cart event. /// </summary> /// <param name="productCode">The product code.</param> /// <param name="productName">Name of the product.</param> /// <param name="quantity">The quantity.</param> /// <param name="price">The price.</param> public virtual void AddToShoppingCart(string productCode, string productName, uint quantity, decimal price) { Assert.ArgumentNotNull(productName, "productName"); Assert.ArgumentNotNull(productCode, "productCode"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve<AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventAddToShoppingCart); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventAddToShoppingCart; } string text = description.FormatWith(new { Quantity = quantity, ProductName = productName, Price = price }); ListString data = new ListString { productName, quantity.ToString(CultureInfo.InvariantCulture), price.ToString(CultureInfo.InvariantCulture), productCode.ToString(CultureInfo.InvariantCulture) }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventAddToShoppingCart) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
protected new void TranslateEvent(PageEventData pageEventData, VisitorOrderCreatedGoal @event) { @event.ExternalId = pageEventData.CustomValues["ExternalId"] as string; @event.ShopName = pageEventData.CustomValues["ShopName"] as string; @event.SitecoreUserName = pageEventData.CustomValues["UserName"] as string; @event.SitecoreCustomerName = pageEventData.CustomValues["Name"] as string; string str = JsonConvert.SerializeObject((object)(pageEventData.CustomValues["Total"] as global::Sitecore.Commerce.Entities.Prices.Total)); @event.Total = JsonConvert.DeserializeObject <global::Sitecore.Commerce.CustomModels.Models.Total>(str); @event.IsOfflineOrder = pageEventData.CustomValues["Total"] as bool?; if (!pageEventData.CustomValues.ContainsKey("Order")) { return; } global::Sitecore.Commerce.Entities.Orders.Order customValue = (global::Sitecore.Commerce.Entities.Orders.Order)pageEventData.CustomValues["Order"]; global::Sitecore.Commerce.CustomModels.Models.Order order = JsonConvert.DeserializeObject <global::Sitecore.Commerce.CustomModels.Models.Order>(JsonConvert.SerializeObject((object)customValue)); if (order == null) { return; } order.CartLines = global::Sitecore.Commerce.Entities.Carts.CartLine.ToPocoLines(customValue.Lines); var personalizationIds = pageEventData.CustomValues["PersonalizationIds"] as Dictionary <string, string>; foreach (var line in order.CartLines) { if (personalizationIds.ContainsKey(line.ExternalCartLineId)) { @event.CustomValues.Add($"PersonalizationId|{line.ExternalCartLineId}", personalizationIds[line.ExternalCartLineId]); } } @event.Order = order; }
public ActionResult Redirect(string goal, string u) { var url = System.Web.HttpUtility.UrlDecode(u); try { if (Tracker.Current == null) { Tracker.Initialize(); } var goalItem = Sitecore.Context.Database.GetItem(new Sitecore.Data.ID(goal)); Assert.IsNotNull(Tracker.Current, "Tracker.Current"); Assert.IsNotNull(Tracker.Current.Session, "Tracker.Current.Session"); var interaction = Tracker.Current.Session.Interaction; Assert.IsNotNull(interaction, "Tracker.Current.Session.Interaction"); Assert.IsNotNull(interaction.CurrentPage, "Tracker.Current.Session.Interaction.CurrentPage"); var pageEventData = new PageEventData(goalItem.Name, goalItem.ID.ToGuid()) { Data = url, Text = "Goal Set By Redirection Rule" }; interaction.CurrentPage.Register(pageEventData); } catch (Exception ex) { Sitecore.Diagnostics.Log.Error("Error when tracking goal for redirect.", ex, this); } return(Redirect(url)); }
public static MediaEventData Parse(PageEventData pageEvent) { if (pageEvent == null || string.IsNullOrEmpty(pageEvent.Data)) { return(null); } string[] data = pageEvent.Data.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries); if (data.Length < 2) { return(null); } int length; int.TryParse(data[1], out length); return(new MediaEventData { MediaId = pageEvent.DataKey, MediaName = data[0], MediaLength = length, EventParameter = data.Length >= 3 ? data[2] : string.Empty }); }
/// <summary> /// Checkouts the delivery next. /// </summary> /// <param name="deliveryAlternativeOption">The delivery alternative option.</param> /// <param name="notificationOption">The notification option.</param> /// <param name="notificationText">The notification text.</param> public virtual void DeliveryNext(string deliveryAlternativeOption, string notificationOption, string notificationText) { Assert.ArgumentNotNull(deliveryAlternativeOption, "deliveryAlternativeOption"); Assert.ArgumentNotNull(notificationOption, "notificationOption"); Assert.ArgumentNotNull(notificationText, "notificationText"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve<AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventCheckoutDeliveryNext); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventCheckoutDeliveryNext; } string text = description.FormatWith(new { DeliveryAlternativeOption = deliveryAlternativeOption, NotificationOption = notificationOption, NotificationText = notificationText }); ListString data = new ListString { deliveryAlternativeOption, notificationOption, notificationText }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventCheckoutDeliveryNext) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
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(); } } }
protected override string ExtractDimensionKey(PageEventData pageEvent) { Assert.IsNotNull(pageEvent, "pageEvent"); var redirectItem = Sitecore.Data.Database.GetDatabase("master").GetItem(pageEvent.ItemId.ToString()); return redirectItem.Paths.ContentPath; }
public override IEnumerable <string> ExtractDimensionKeys(PageEventData pageEvent) { Assert.IsNotNull(pageEvent, "pageEvent"); var redirectItem = Sitecore.Data.Database.GetDatabase("master").GetItem(pageEvent.ItemId.ToString()); yield return(redirectItem.Paths.ContentPath); }
protected override string ExtractDimensionKey(PageEventData pageEvent) { Assert.IsNotNull(pageEvent, "pageEvent"); var redirectItem = Sitecore.Data.Database.GetDatabase("web").GetItem(pageEvent.ItemId.ToString()); return(redirectItem.Paths.ContentPath); }
private void Trigger(TrackingEventData data, HttpContext context) { if (data == null) { BadRequest("Please provide valid data.", context); return; } if (Guid.TryParse(data.Id, out var id)) { try { IEventDefinition evt; switch (data.Type) { case "outcome": TriggerOutcome(Tracker.MarketingDefinitions.Outcomes[id], data, context); return; default: evt = Tracker.MarketingDefinitions.PageEvents[id]; break; } if (evt == null) { BadRequest("Please provide a valid EventId", context); return; } PageEventData pageData = new PageEventData(evt.Alias, evt.Id) { Data = data?.Data, Text = data?.Text, }; if (Guid.TryParse(data.ItemId, out Guid itemId)) { pageData.ItemId = itemId; } Tracker.Current.CurrentPage.Register(pageData); } catch (Exception ex) { BadRequest($"An error occurred: {ex.Message}", context); return; } } else { BadRequest("Please provide a valid EventId", context); return; } }
protected new void TranslateEvent(PageEventData pageEventData, VisitedCategoryPageEvent pageEvent) { pageEvent.ShopName = pageEventData.CustomValues["ShopName"] as string; pageEvent.CategoryId = pageEventData.CustomValues["CategoryId"] as string; pageEvent.CategoryName = pageEventData.CustomValues["CategoryName"] as string; if (pageEventData.CustomValues.ContainsKey("PersonalizationId")) { pageEvent.CustomValues.Add("PersonalizationId", pageEventData.CustomValues["PersonalizationId"].ToString()); } }
private Goal Create(PageEventData pageEventData) { return(new Goal { IsCurrentVisit = true, Date = pageEventData.DateTime, EngagementValue = pageEventData.Value, Title = pageEventData.Name }); }
private Goal Create(PageEventData pageEventData) { return new Goal { IsCurrentVisit = true, Date = pageEventData.DateTime, EngagementValue = pageEventData.Value, Title = pageEventData.Name }; }
private PageEvent Create(PageEventData pageEventData) { return new PageEvent { IsCurrentVisit = true, Date = pageEventData.DateTime, EngagementValue = pageEventData.Value, Title = pageEventData.Name, Data = pageEventData.Text }; }
private PageEvent Create(PageEventData pageEventData) { return(new PageEvent { IsCurrentVisit = true, Date = pageEventData.DateTime, EngagementValue = pageEventData.Value, Title = pageEventData.Name, Data = pageEventData.Text }); }
/// <summary> /// Searches the specified page. /// </summary> /// <param name="query">The query.</param> /// <param name="hits">The number of hits.</param> public virtual void Search(string query, int hits) { Assert.ArgumentNotNull(query, "query"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); if (hits == 0) { string description = analyticsHelper.GetPageEventDescription(EventConstants.EventNoSearchHitsFound); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventNoSearchHitsFound; } string text = description.FormatWith(new { Query = query }); if (Tracker.Current.CurrentPage != null) { var pageEventData = new PageEventData(EventConstants.EventNoSearchHitsFound) { Text = text, Data = query }; Tracker.Current.CurrentPage.Register(pageEventData); } } else { string description = analyticsHelper.GetPageEventDescription(EventConstants.EventSearch); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventSearch; } string text = description.FormatWith(new { Query = query }); if (Tracker.Current.CurrentPage != null) { var pageEventData = new PageEventData(EventConstants.EventSearch) { Text = text, Data = query }; Tracker.Current.CurrentPage.Register(pageEventData); } } }
protected new void TranslateEvent(PageEventData pageEventData, VisitedProductDetailsPageEvent pageEvent) { pageEvent.ShopName = pageEventData.CustomValues["ShopName"] as string; pageEvent.ProductId = pageEventData.CustomValues["Product"] as string; pageEvent.ProductName = pageEventData.CustomValues["ProductName"] as string; pageEvent.ParentCategoryId = pageEventData.CustomValues["ParentCategoryId"] as string; pageEvent.ParentCategoryName = pageEventData.CustomValues["ParentCategoryName"] as string; pageEvent.CurrencyCode = pageEventData.CustomValues["Currency"] as string; if (pageEventData.CustomValues.ContainsKey("PersonalizationId")) { pageEvent.CustomValues.Add("PersonalizationId", pageEventData.CustomValues["PersonalizationId"].ToString()); } pageEvent.Amount = new Decimal?(System.Convert.ToDecimal(pageEventData.CustomValues["Amount"], (IFormatProvider)CultureInfo.InvariantCulture)); }
/// <summary> /// Trigger an event or a goal. /// </summary> /// <param name="eventData"> /// The page event data. /// </param> protected virtual void TriggerEvent(PageEventData eventData) { if (Settings.Analytics.Enabled) { if (!Tracker.IsActive) { Tracker.StartTracking(); } if (Tracker.Current.CurrentPage != null) { Tracker.Current.CurrentPage.Register(eventData); } } }
/// <summary> /// Trigger an event or a goal. /// </summary> /// <param name="eventData"> /// The page event data. /// </param> protected virtual void TriggerEvent(PageEventData eventData) { if (Sitecore.Configuration.Settings.GetBoolSetting("Xdb.Enabled", false)) { if (!Tracker.IsActive) { Tracker.StartTracking(); } if (Tracker.Current.CurrentPage != null) { Tracker.Current.CurrentPage.Register(eventData); } } }
public override void Execute(ID formId, AdaptedResultList adaptedFields, ActionCallContext actionCallContext = null, params object[] data) { _log = Sitecore.Diagnostics.LoggerFactory.GetLogger("LogFileAppender"); var name = adaptedFields.GetEntryByName("Name"); var email = adaptedFields.GetEntryByName("Email"); var comment = adaptedFields.GetEntryByName("Comment"); _log.Info("Writing comment to database"); HttpContext.Current.Session["Email"] = email; var goal = new PageEventData("My Custom Goal", Guid.Parse("{47FF654B-76B2-49EF-A6AA-C61AE6093768}")); Tracker.Current.CurrentPage.Register(goal); var contact = Tracker.Current?.Contact; if (contact != null) { var commentCounterTag = contact.Tags.Find("CommentCounter"); if (commentCounterTag == null) { contact.Tags.Set("CommentCounter", "1"); } else { int originalValue = 0; int newValue = 0; var counter = commentCounterTag.Values.FirstOrDefault(); if (counter != null) { if (Int32.TryParse(counter.Value, out originalValue)) { newValue = originalValue + 1; contact.Tags.Remove("CommentCounter", originalValue.ToString()); contact.Tags.Set("CommentCounter", newValue.ToString()); } } if (originalValue < 10 && newValue >= 10) { contact.Extensions.SimpleValues["ContributionLevel"] = "Fanboy"; } } } }
/// <summary> /// Searches the specified page. /// </summary> /// <param name="query">The query.</param> /// <param name="hits">The number of hits.</param> public virtual void Search(string query, int hits) { Assert.ArgumentNotNull(query, "query"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve<AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); if (hits == 0) { string description = analyticsHelper.GetPageEventDescription(EventConstants.EventNoSearchHitsFound); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventNoSearchHitsFound; } string text = description.FormatWith(new { Query = query }); if (Tracker.Current.CurrentPage != null) { var pageEventData = new PageEventData(EventConstants.EventNoSearchHitsFound) { Text = text, Data = query }; Tracker.Current.CurrentPage.Register(pageEventData); } } else { string description = analyticsHelper.GetPageEventDescription(EventConstants.EventSearch); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventSearch; } string text = description.FormatWith(new { Query = query }); if (Tracker.Current.CurrentPage != null) { var pageEventData = new PageEventData(EventConstants.EventSearch) { Text = text, Data = query }; Tracker.Current.CurrentPage.Register(pageEventData); } } }
protected override void TriggerEvent(PageEventData eventData) { var analyticsEnabled = Configuration.Settings.AnalyticsEnabled; if (!analyticsEnabled) { return; } if (!Tracker.IsActive) { Tracker.StartTracking(); } if (Tracker.Current.CurrentPage == null) { return; } ((IPageContext)Tracker.Current.CurrentPage).Register(eventData); }
/// <summary> /// User login succeded. /// </summary> /// <param name="userName">Name of the user.</param> public virtual void UserLoginSucceded(string userName) { Assert.ArgumentNotNull(userName, "userName"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventUserLoginSucceded); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventUserLoginSucceded; } string text = description.FormatWith(new { Username = userName, }); ListString data = new ListString { userName }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventUserLoginSucceded) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Checkouts the delivery next. /// </summary> /// <param name="deliveryAlternativeOption">The delivery alternative option.</param> /// <param name="notificationOption">The notification option.</param> /// <param name="notificationText">The notification text.</param> public virtual void DeliveryNext(string deliveryAlternativeOption, string notificationOption, string notificationText) { Assert.ArgumentNotNull(deliveryAlternativeOption, "deliveryAlternativeOption"); Assert.ArgumentNotNull(notificationOption, "notificationOption"); Assert.ArgumentNotNull(notificationText, "notificationText"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventCheckoutDeliveryNext); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventCheckoutDeliveryNext; } string text = description.FormatWith(new { DeliveryAlternativeOption = deliveryAlternativeOption, NotificationOption = notificationOption, NotificationText = notificationText }); ListString data = new ListString { deliveryAlternativeOption, notificationOption, notificationText }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventCheckoutDeliveryNext) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Shopping Cart Emptied event. /// </summary> /// <param name="shoppingCartContent">Content of the shopping cart.</param> /// <param name="itemsInShoppingCart">The items in shopping cart.</param> public virtual void ShoppingCartEmptied(string shoppingCartContent, uint itemsInShoppingCart) { Assert.ArgumentNotNull(shoppingCartContent, "shoppingCartContent"); Assert.ArgumentNotNull(itemsInShoppingCart, "itemsInShoppingCart"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventShoppingCartEmptied); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventShoppingCartEmptied; } string text = description.FormatWith(new { Amount = itemsInShoppingCart, ShoppingCartContent = shoppingCartContent }); ListString data = new ListString { itemsInShoppingCart.ToString(CultureInfo.InvariantCulture), shoppingCartContent }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventShoppingCartEmptied) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Add to shopping cart event. /// </summary> /// <param name="productCode">The product code.</param> /// <param name="productName">Name of the product.</param> /// <param name="quantity">The quantity.</param> /// <param name="price">The price.</param> public virtual void AddToShoppingCart(string productCode, string productName, uint quantity, decimal price) { Assert.ArgumentNotNull(productName, "productName"); Assert.ArgumentNotNull(productCode, "productCode"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventAddToShoppingCart); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventAddToShoppingCart; } string text = description.FormatWith(new { Quantity = quantity, ProductName = productName, Price = price }); ListString data = new ListString { productName, quantity.ToString(CultureInfo.InvariantCulture), price.ToString(CultureInfo.InvariantCulture), productCode.ToString(CultureInfo.InvariantCulture) }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventAddToShoppingCart) { Text = text, Data = data.ToString() }; currentPage.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); } } }
/// <summary> /// Checkout delivery alternative changed. /// </summary> /// <param name="optionTitle">The option title.</param> /// <param name="optionCode">The option code.</param> public virtual void PaymentMethodSelected(string optionTitle, string optionCode) { Assert.ArgumentNotNull(optionTitle, "optionTitle"); Assert.ArgumentNotNull(optionCode, "optionCode"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve <AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventCheckoutPaymentMethodSelected); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventCheckoutPaymentMethodSelected; } string text = description.FormatWith(new { Option = optionTitle, }); ListString data = new ListString { optionCode, optionTitle }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventCheckoutPaymentMethodSelected) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Places the vote into Analytics. /// </summary> /// <param name="optionItem">The option item.</param> public static void PlaceVote(PollOptionItem optionItem) { // //cancel pipeline handler (for CurrentPage) //Tracker.CurrentPage.Cancel(); // //Submit analytics tracking for poll item SubmitPollTracking(optionItem.Poll.InnerItem, optionItem.InnerItem); // //event trigger on new poll option selected var peData = new PageEventData("Poll"); string text = string.Format("Select {0} ({2}) in poll {1}", optionItem.Title, optionItem.Poll.Name, optionItem.Index); string data = string.Concat(new object[] { optionItem.Poll.Name, "|", optionItem.Title, "|", optionItem.Index }); peData.Data = data; peData.Text = text; peData.DataKey = optionItem.Poll.Name; var row = Tracker.CurrentPage.Register(peData); row.DataCode = optionItem.Index; // //submit immediatelly SubmitAnalyticsImmediatelly(); }
protected override bool Filter(PageEventData pageEvent) { Assert.IsNotNull(pageEvent, "pageEvent"); return pageEvent.PageEventDefinitionId.Equals(this.redirectEventId); }
/// <summary> /// Rates the page. /// </summary> /* private void RatePage() { Item item = Sitecore.Context.Item; if (item != null) { lock (Locking) { string key = "rate_" + item.ID; if (Session[key] != null) { VoteMembers voteMembers = Session[key] as VoteMembers; if (voteMembers != null && !voteMembers.AlreadyVoted) { NicamHelper.VoteForPage(voteMembers.ID, voteMembers.Voce, voteMembers.Mark); voteMembers.AlreadyVoted = true; } } } } }*/ /// <summary> /// Tracks the generic personalization spot. /// </summary> private void TrackGenericPersonalizationSpot() { char[] symbols = { ',' }; string spotItemId = NicamHelper.SafeRequest("GenericPersonalizationSpotId").TrimEnd(symbols); Item spotItem = Sitecore.Context.Database.Items[spotItemId]; //Perform tracking of spot item TrackingFieldProcessor processor = new TrackingFieldProcessor(); processor.Process(spotItem); string gpSpotEvent = NicamHelper.SafeRequest("GenericPersonalizationSpotGoal").TrimEnd(symbols); gpSpotEvent = gpSpotEvent.Replace('+', ' '); gpSpotEvent = gpSpotEvent.Replace("%2b", " "); if (gpSpotEvent != string.Empty) { var pedata = new PageEventData(gpSpotEvent); Tracker.CurrentPage.Register(pedata); } string redirectUrl = NicamHelper.SafeRequest("GenericPersonalizationSpotRedirectUrl").TrimEnd(symbols); Response.Redirect(redirectUrl); }
protected override string ExtractDimensionKey(PageEventData pageEvent) { return "(None)"; }
protected override bool Filter(PageEventData pageEventData) { return pageEventData.IsGoal; }
/// <summary> /// Shoppings the cart item updated. /// </summary> /// <param name="productCode">The product code.</param> /// <param name="productName">Name of the product.</param> /// <param name="amount">The products amount.</param> public virtual void ShoppingCartItemUpdated(string productCode, string productName, uint amount) { Assert.ArgumentNotNull(productCode, "shoppingCartContent"); Assert.ArgumentNotNull(productName, "itemsInShoppingCart"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve<AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventShoppingCartItemUpdated); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventShoppingCartItemUpdated; } string text = description.FormatWith(new { ProductName = productName, Amount = amount }); ListString data = new ListString { productCode, productName, amount.ToString(CultureInfo.InvariantCulture) }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventShoppingCartItemUpdated) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
private static void TriggerEvent(HttpContext context) { try { var query = context.Request.QueryString; var eventName = query["eventName"]; var text = query["text"]; var key = query["key"]; var data = query["data"]; var integer = query["integer"]; if (string.IsNullOrEmpty(eventName)) { return; } if (!Tracker.Enabled) { return; } if (!Tracker.IsActive || Tracker.Current == null) { Tracker.StartTracking(); } if (Tracker.Current == null || Tracker.Current.Interaction == null) { return; } if (Tracker.Current.Interaction.PreviousPage == null) { return; } if (string.IsNullOrEmpty(text)) { Tracker.Current.Interaction.PreviousPage.Register(eventName, string.Empty); } else { if (string.IsNullOrEmpty(key) || string.IsNullOrEmpty(data)) { Tracker.Current.Interaction.PreviousPage.Register(eventName, text); return; } var eventData = new PageEventData(eventName) { DataKey = key, Data = data, Text = text }; Tracker.Current.Interaction.PreviousPage.Register(eventData); return; } } catch (Exception exception) { Log.Error(string.Concat("Sitecore.SharedSource.ClientEventTracker.TriggerEvent: error in event triggering. requestUrl: ", context.Request.Url.AbsolutePath), exception, typeof(ClientEventTracker)); } }
/// <summary> /// User login succeded. /// </summary> /// <param name="userName">Name of the user.</param> public virtual void UserLoginSucceded(string userName) { Assert.ArgumentNotNull(userName, "userName"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve<AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventUserLoginSucceded); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventUserLoginSucceded; } string text = description.FormatWith(new { Username = userName, }); ListString data = new ListString { userName }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventUserLoginSucceded) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
/// <summary> /// Checkout delivery alternative changed. /// </summary> /// <param name="optionTitle">The option title.</param> /// <param name="optionCode">The option code.</param> public virtual void PaymentMethodSelected(string optionTitle, string optionCode) { Assert.ArgumentNotNull(optionTitle, "optionTitle"); Assert.ArgumentNotNull(optionCode, "optionCode"); if (!Tracker.IsActive) { return; } AnalyticsHelper analyticsHelper = Context.Entity.Resolve<AnalyticsHelper>(); Assert.IsNotNull(analyticsHelper, "analyticsHelper"); string description = analyticsHelper.GetPageEventDescription(EventConstants.EventCheckoutPaymentMethodSelected); if (string.IsNullOrEmpty(description)) { description = EventConstants.EventCheckoutPaymentMethodSelected; } string text = description.FormatWith(new { Option = optionTitle, }); ListString data = new ListString { optionCode, optionTitle }; var currentPage = Tracker.Current.CurrentPage; if (currentPage == null) { return; } var pageEventData = new PageEventData(EventConstants.EventCheckoutPaymentMethodSelected) { Text = text, Data = data.ToString() }; currentPage.Register(pageEventData); }
protected override string ExtractDimensionKey(PageEventData pageEvent) { return "" + pageEvent.PageEventDefinitionId; }