Sitecore for Developers
What's new about goals in Sitecore 8
Hello Folks,Disclaimer — All Information in this Blog is using Sitecore 8 Technical Preview. So, it may change upon final releaseI recently got the opportunity to play around with Sitecore 8 and hence thought about sharing some exciting new features of Sitecore 8 Experience Platform. Since there is a lot of exciting stuff in SItecore 8, I chose to focus on specific areas of Experience Platform and the topic for this post is Goals.1. Customer Intelligence Options A new section has been added to the Goal Item (/sitecore/system/Marketing Center/Goals/) with the name Customer Intelligence Options.There are 3 fields on the sections and they are
Track as latest event
Once the goal is triggered by the contact (visitor) it appears in the Latest Events panel in the Contact tab.
Show in events
When this event is triggered by the contact (visitor) it appears in the list of Events shown in the Visits tab.
Event image
Associates an image with an event.
The below image shows the new customer intelligence section on the Goal Item[caption id="attachment_660" align="aligncenter" width="660"]
Goal Item[/caption] As you can see below that the contact card will display the Goal information if you checked the field "Track as Latest Event" on the goal[caption id="attachment_663" align="aligncenter" width="660"]
Contact Card[/caption]As you can see below that the contact card will display the Goal information if you checked the field "Show in Events" on the goal item[caption id="attachment_666" align="aligncenter" width="660"]
Contact Card 2[/caption]2. API Changes : Triggering a Goal ProgramaticallyThere also have been changes to the API for triggering goal in Sitecore 8, The below method shows an updated way to trigger a goal programatically[sourcecode language="csharp"] if (Sitecore.Analytics.Tracker.IsActive && Sitecore.Analytics.Tracker.Current.CurrentPage != null) { Sitecore.Data.Items.Item GoaltoTrigger = Sitecore.Context.Database.GetItem("{Item ID of the Goal}"); if (GoaltoTrigger != null) { Sitecore.Analytics.Data.Items.PageEventItem registerthegoal = new Sitecore.Analytics.Data.Items.PageEventItem(GoaltoTrigger); Sitecore.Analytics.Model.PageEventData eventData = Sitecore.Analytics.Tracker.Current.CurrentPage.Register(registerthegoal); eventData.Data = GoaltoTrigger["Description"]; Sitecore.Analytics.Tracker.Current.Interaction.AcceptModifications(); } }[/sourcecode]you could also create an extension method for triggering/registering a goal.[sourcecode language="csharp"] public static void TriggerGoal(string GoalName, string Description) { if (Sitecore.Analytics.Tracker.IsActive && Sitecore.Analytics.Tracker.Current.CurrentPage != null) { Sitecore.Analytics.Tracker.Current.CurrentPage.Register(GoalName, Description); } }[/sourcecode]Stay tuned for more exciting postsShould you have any questions, Please do not hesitate to comment below