Exemplo n.º 1
0
        public static bool TriggerGoal(ID goalID)
        {
            if (goalID == (ID)null)
            {
                Log.Warn("GoalID is empty", typeof(AnalyticsHelper));
                return false;
            }

            if (!Tracker.IsActive)
            {
                Tracker.StartTracking();
            }

            if (Tracker.Current == null || Tracker.Current.Interaction == null || Tracker.Current.Interaction.CurrentPage == null)
            {
                Log.Warn("Tracker.Current == null || Tracker.Current.Interaction.CurrentPage == null", typeof(AnalyticsHelper));
                return false;
            }

            var goalItem = Sitecore.Context.Database.GetItem(goalID);
            if (goalItem == null)
            {
                Log.Warn("Goal Item is empty from ID: " + goalID, typeof(AnalyticsHelper));
                return false;
            }

            var goal = new PageEventItem(goalItem);
            Tracker.Current.Interaction.CurrentPage.Register(goal);
            return true;
        }
Exemplo n.º 2
0
        /// <summary>
        ///   Analytics Helper for checking Marketing related features e.g. goals, events
        /// </summary>
        /// <param name="goalID">Id of the goal</param>
        /// <returns>True passed checking or False invalid</returns>
        public static bool TriggerGoal(ID goalID)
        {
            if (goalID == (ID)null)
            {
                Log.Warn("GoalID is empty", typeof(AnalyticsHelper));
                return(false);
            }

            if (!Tracker.IsActive)
            {
                Tracker.StartTracking();
            }

            if (Tracker.Current == null || Tracker.Current.Interaction == null || Tracker.Current.Interaction.CurrentPage == null)
            {
                Log.Warn("Tracker.Current == null || Tracker.Current.Interaction.CurrentPage == null", typeof(AnalyticsHelper));
                return(false);
            }

            var goalItem = Context.Database.GetItem(goalID);

            if (goalItem == null)
            {
                Log.Warn("Goal Item is empty from ID: " + goalID, typeof(AnalyticsHelper));
                return(false);
            }

            var goal = new PageEventItem(goalItem);

            Tracker.Current.Interaction.CurrentPage.Register(goal);
            return(true);
        }
        public virtual void TrackPageEvent(ID pageEventItemId, string text = null, string data = null, string dataKey = null, int?value = null)
        {
            Assert.ArgumentNotNull(pageEventItemId, nameof(pageEventItemId));
            if (!this.IsActive)
            {
                return;
            }

            var item = Context.Database.GetItem(pageEventItemId);

            Assert.IsNotNull(item, $"Cannot find page event: {pageEventItemId}");
            var pageEventItem = new PageEventItem(item);
            var eventData     = Tracker.Current.CurrentPage.Register(pageEventItem);

            if (data != null)
            {
                eventData.Data = data;
            }
            if (dataKey != null)
            {
                eventData.DataKey = dataKey;
            }
            if (text != null)
            {
                eventData.Text = text;
            }
            if (value != null)
            {
                eventData.Value = value.Value;
            }
        }
Exemplo n.º 4
0
        public virtual void TrackPageEvent(ID pageEventItemId)
        {
            Assert.ArgumentNotNull(pageEventItemId, nameof(pageEventItemId));
              var item = Sitecore.Context.Database.GetItem(pageEventItemId);
              Assert.IsNotNull(item, $"Cannot find page event: {pageEventItemId}");
              Assert.IsNotNull(Tracker.Current, "Analytics tracker isn't initialized");

              var pageEventItem = new PageEventItem(item);
              Tracker.Current.CurrentPage.Register(pageEventItem);
        }
Exemplo n.º 5
0
 public virtual void TrackPageEvent(ID pageEventItemId)
 {
   Assert.ArgumentNotNull(pageEventItemId, nameof(pageEventItemId));
   var item = Sitecore.Context.Database.GetItem(pageEventItemId);
   Assert.IsNotNull(item, $"Cannot find page event: {pageEventItemId}");
   if (Tracker.Current != null && Tracker.Current.IsActive)
   {
     var pageEventItem = new PageEventItem(item);
     Tracker.Current.CurrentPage.Register(pageEventItem);
   }
 }
Exemplo n.º 6
0
        public virtual void TrackPageEvent(ID pageEventItemId)
        {
            Assert.ArgumentNotNull(pageEventItemId, nameof(pageEventItemId));
            var item = Sitecore.Context.Database.GetItem(pageEventItemId);

            Assert.IsNotNull(item, $"Cannot find page event: {pageEventItemId}");
            if (this.IsActive)
            {
                var pageEventItem = new PageEventItem(item);
                Tracker.Current.CurrentPage.Register(pageEventItem);
            }
        }
        private void TriggerGoal(ID _goalId)
        {
            var goal      = Sitecore.Context.Database.GetItem(_goalId);
            var page      = Tracker.Current.Session.Interaction.PreviousPage;
            var pageEvent = new PageEventItem(goal);
            var data      = page.Register(pageEvent);

            data.Data    = goal["Description"];
            data.ItemId  = goal.ID.Guid;
            data.DataKey = goal.Paths.Path;
            Tracker.Current.Interaction.AcceptModifications();
        }
		protected override void DoRender(System.Web.UI.HtmlTextWriter output)
		{
			if (Sitecore.Analytics.Tracker.IsActive && Sitecore.Analytics.Tracker.CurrentPage != null)
			{
				var goalItem = this.GetItem();
				if (goalItem != null)
				{
					PageEventItem goal = new PageEventItem(goalItem);
					VisitorDataSet.PageEventsRow pageEventsRow = Sitecore.Analytics.Tracker.CurrentPage.Register(goal);
					pageEventsRow.Data = goalItem.TemplateName + " triggered from AchieveGoal";
					Sitecore.Analytics.Tracker.Submit();
				}
			}
		}
Exemplo n.º 9
0
        public ActionResult TriggerEvent(string eventName, string data, bool shouldUpdate = false)
        {
            if (!Tracker.IsActive || Tracker.Current == null)
            {
                Tracker.StartTracking();
            }

            if (Tracker.Current == null)
            {
                return(Json(new { Success = false, Error = "Can't activate tracker" }));
            }

            if (string.IsNullOrEmpty(eventName))
            {
                return(Json(new { Success = false, Error = "Event not set" }));
            }

            var eventsRoot = Sitecore.Context.Database.GetItem(AnalyticsConstants.Events.EventLocation);
            var eventItem  = eventsRoot.Axes.GetDescendants().FirstOrDefault(x => x.Name.Equals(eventName, StringComparison.InvariantCultureIgnoreCase));

            if (eventItem == null)
            {
                return(Json(new { Success = false, Error = "Event not found" }));
            }

            var page = Tracker.Current.Session.Interaction.PreviousPage;

            if (page == null)
            {
                return(Json(new { Success = false, Error = "Page is null" }));
            }

            var registerTheEvent = new PageEventItem(eventItem);
            var eventData        = page.Register(registerTheEvent);

            eventData.Data    = data;
            eventData.ItemId  = eventItem.ID.Guid;
            eventData.DataKey = eventItem.Paths.Path;
            Tracker.Current.Interaction.AcceptModifications();

            Tracker.Current.CurrentPage.Cancel();

            CheckForGoogleClientId(eventName, data, shouldUpdate);

            return(Json(new { Success = true }));
        }
Exemplo n.º 10
0
        public ActionResult TriggerGoal(string goal)
        {
            if (!Tracker.IsActive || Tracker.Current == null)
            {
                Tracker.StartTracking();
            }

            if (Tracker.Current == null)
            {
                return(Json(new { Success = false, Error = "Can't activate tracker" }));
            }

            if (string.IsNullOrEmpty(goal))
            {
                return(Json(new { Success = false, Error = "Goal not set" }));
            }

            var goalRootItem = Sitecore.Context.Database.GetItem(AnalyticsConstants.Goals.DefaultGoalLocation);
            var goalItem     = goalRootItem.Axes.GetDescendants().FirstOrDefault(x => x.Name.Equals(goal, StringComparison.InvariantCultureIgnoreCase));

            if (goalItem == null)
            {
                return(Json(new { Success = false, Error = "Goal not found" }));
            }

            var page = Tracker.Current.Session.Interaction.PreviousPage;

            if (page == null)
            {
                return(Json(new { Success = false, Error = "Page is null" }));
            }

            var registerTheGoal = new PageEventItem(goalItem);
            var eventData       = page.Register(registerTheGoal);

            eventData.Data    = goalItem["Description"];
            eventData.ItemId  = goalItem.ID.Guid;
            eventData.DataKey = goalItem.Paths.Path;
            Tracker.Current.Interaction.AcceptModifications();

            Tracker.Current.CurrentPage.Cancel();

            return(Json(new { Success = true }));
        }
Exemplo n.º 11
0
 public override void ValidateLinks(LinksValidationResult result)
 {
     foreach (string targetPath in CampaignIds)
     {
         CampaignItem campaignItem = null;
         ID           result1;
         if (ID.TryParse(targetPath, out result1))
         {
             campaignItem = Analytics.Tracker.DefinitionItems.Campaigns[result1];
         }
         if (campaignItem == null)
         {
             result.AddBrokenLink(targetPath);
         }
         else
         {
             result.AddValidLink(campaignItem.InnerItem, campaignItem.InnerItem.Paths.Path);
         }
     }
     foreach (PageEventData pageEventData in Events)
     {
         PageEventItem pageEventItem = null;
         if (pageEventData.PageEventDefinitionId != Guid.Empty)
         {
             pageEventItem = Analytics.Tracker.DefinitionItems.Goals[pageEventData.PageEventDefinitionId] ?? Analytics.Tracker.DefinitionItems.PageEvents[pageEventData.PageEventDefinitionId];
         }
         if (pageEventItem == null && pageEventData.Name != null)
         {
             pageEventItem = Analytics.Tracker.DefinitionItems.Goals[pageEventData.Name] ?? Analytics.Tracker.DefinitionItems.PageEvents[pageEventData.Name];
         }
         if (pageEventItem == null)
         {
             result.AddBrokenLink(FileUtil.MakePath(Analytics.Tracker.DefinitionItems.Goals.Path, pageEventData.Name, '/'));
         }
         else
         {
             result.AddValidLink(pageEventItem.InnerItem, pageEventItem.InnerItem.Paths.Path);
         }
     }
     foreach (ContentProfile contentProfile in Profiles.Where(p => p.SaveToField))
     {
         result.AddValidLink(contentProfile.Definition.InnerItem, contentProfile.Definition.InnerItem.Paths.Path);
     }
 }
    public PageEventData RegisterGoal(string goalName, string pageUrl)
    {

      if (!this.IsTracking())
        return null;

      IPageContext pageContext = Sitecore.Analytics.Tracker.Current.Interaction.GetPages().LastOrDefault(page => page.Url.Path.Equals(pageUrl));

      if (pageContext == null)
      {
        Log.Warn($"Page {pageUrl} does not exist", typeof(EmotionAnalyticsService));
        return null;
      }

      Item goalItem = this.emotionGoals.FirstOrDefault(goal => goal.Name.Equals(goalName));

      if (goalItem == null)
      {
        Log.Warn($"Goal {goalName} does not exist", typeof(EmotionAnalyticsService));
        return null;
      }

      PageEventItem pageEvent = new PageEventItem(goalItem);

      return pageContext.Register(pageEvent);

    }