public void AddEvent(int x, int y, int width) { PageEventDefinitionManager manager = (PageEventDefinitionManager)ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager <IPageEventDefinition>(); CultureInfo eventCulture = new CultureInfo("en"); var pageEventDefinition = manager.GetByAlias("Heatmap", eventCulture); if (pageEventDefinition == null) { // define Guid pageEventId = Guid.NewGuid(); // Page event ID CultureInfo pageEventCulture = new CultureInfo("en"); // Page event culture string pageEventName = "Heatmap"; // Page event name DateTime creationDate = DateTime.UtcNow; // Page event creation date string createdBy = "sitecore\admin"; // Page event creator pageEventDefinition = new PageEventDefinition(pageEventId, "Heatmap", pageEventCulture, pageEventName, creationDate, createdBy); pageEventDefinition.ShowInXfileAsLatestEvent = true; pageEventDefinition.ShowInXfileEventsList = true; pageEventDefinition.EngagementValuePoints = 20; //save ServiceLocator.ServiceProvider.GetDefinitionManagerFactory().GetDefinitionManager <IPageEventDefinition>(); manager.SaveAsync(pageEventDefinition, true); } //pageEventDefinition. //Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterPageEvent(pageEventDefinition); //var goalId = "63B813A6-C209-4870-A4A8-7CB07BBAB266"; // ID of goal //var goalDefinition = Sitecore.Analytics.Tracker.MarketingDefinitions.Goals[goalId]; //Sitecore.Analytics.Tracker.Current.CurrentPage.RegisterGoal(goalDefinition); PageEventData pageEvent = new PageEventData("Heatmap") { Text = "test", Data = "test data" }; Sitecore.Analytics.Tracker.Current.CurrentPage.Register(pageEvent); var pageEventData = new PageEventData(pageEventDefinition.Alias, pageEventDefinition.Id) { Data = "xyw", Text = "Sitecore installation guide", // Not mandatory }; Tracker.Current.CurrentPage.Register(pageEventData); //var ev = Sitecore.Analytics.Tracker.MarketingDefinitions.PageEvents[HeatmapEvent.HeatmapId]; //if (ev != null) //{ // var pageData = new Sitecore.Analytics.Data.PageEventData(ev.Alias, ev.Id); // pageData.CustomValues.Add("X", x); // pageData.CustomValues.Add("Y", y); // pageData.CustomValues.Add("Width", width); // Sitecore.Analytics.Tracker.Current.CurrentPage.Register(pageData); //} }
/// <summary> /// Sets the Goal Met /// </summary> /// <param name="currentItem"></param> /// <param name="linkedItem"></param> /// <param name="goalItem"></param> /// <param name="visitId"></param> /// <param name="visitorId"></param> /// <returns></returns> public bool SetGoalMet(Item currentItem, Item linkedItem, Item goalItem, Guid visitId, Guid visitorId) { try { using (AnalyticsDataContext AnalyticsDataContext = new AnalyticsDataContext(ConfigurationManager.ConnectionStrings["analytics"].ConnectionString)) { //check to see if page exists Page currentPage = AnalyticsDataContext.Pages.Where(x => x.ItemId == currentItem.ID.Guid && x.VisitId == visitId).FirstOrDefault(); if (currentPage == null) { Logger.Error("Page Statistics Context - Could not retrieve page"); return(false); } PageEventDefinition pageEventDefinition = AnalyticsDataContext.PageEventDefinitions.Where(x => x.Name == goalItem.Name).FirstOrDefault(); if (pageEventDefinition == null) { Logger.Error("Page Statistics Context - Could not retrieve page event definition: " + goalItem.Name); return(false); } //verify there is not already a page event PageEvent existantPageEvent = AnalyticsDataContext.PageEvents. Where(x => x.VisitId == visitId && x.PageId == currentPage.PageId && x.PageEventDefinitionId == pageEventDefinition.PageEventDefinitionId && x.ItemId == linkedItem.ID.Guid).FirstOrDefault(); if (existantPageEvent != null) { Logger.Warn("Page Statistics Context - Page event already exists"); return(false); } //insert page event try { Guid pageEventId = Guid.NewGuid(); PageEvent pageEvent = new PageEvent(); pageEvent.PageEventId = pageEventId; pageEvent.VisitId = visitId; pageEvent.VisitorId = visitorId; pageEvent.PageEventDefinitionId = pageEventDefinition.PageEventDefinitionId; pageEvent.PageEventDefinition = pageEventDefinition; pageEvent.PageId = currentPage.PageId; pageEvent.Page = currentPage; pageEvent.ItemId = linkedItem.ID.Guid; pageEvent.IntegrationId = Guid.Empty; pageEvent.DataKey = linkedItem.Paths.FullPath; pageEvent.DateTime = DateTime.Now.ToUniversalTime(); pageEvent.DataCode = 0; pageEvent.CustomSorting = 0; pageEvent.IntegrationLabel = string.Empty; pageEvent.Data = string.Empty; pageEvent.Timestamp = 634891148665341607; pageEvent.Text = string.Empty; AnalyticsDataContext.PageEvents.InsertOnSubmit(pageEvent); AnalyticsDataContext.SubmitChanges(); } catch (Exception ex) { Logger.Error("Page Statistics Context - Could not create page record"); Logger.Error(ex.Message); Logger.Error(ex.InnerException); } } } catch (Exception e) { Logger.Error("Page Statistics Context - Could not set goal met"); Logger.Error(e.Message); Logger.Error(e.InnerException); } return(false); }