Analytics is one of the basic pillar of Sitecore and any website that is on Sitecore but not implementing Analytics is simply overspending.
I remember when I started working on Sitecore, I used to wonder why would anyone in their sane mind pay so much for Sitecore just to host a website. I knew Sitecore provided some content management features that all CMS systems provide but it was about a year into Sitecore that I was really hit with all the features that Sitecore Analytics provide and all the door that it opens.
As a beginner, I just knew that websites can track data using cookies and other stuff but that all was on client side. I was not aware of all the stuff that can be done on the server side. As an initial impression, I saw Sitecore Analytics as a dashboard to check out how many users visited a certain webpage on your site.
In one of my side project, I had towork on Personalization in Sitecore. This is when I understood the importance and potential of Analytics in Sitecore. Not only I learnt how personalized in Sitecore, I also got the understanding about how the User Interactions are handled and stored in Sitecore. In this Blog post, I will briefly discuss how Analytics in Sitecore works.
Note: This is based on my experience on Sitecore 8.2
Whenever a user requests for a webpage in Sitecore, the following steps proceeed:
- Request is sent to browser.
- Browser passes on the request to Sitecore Experience Platform.
- Sitecore Experience Platform, based on the data saved in cookies, checks Analytics Database(Mongo DB in this case) if the User has visited the website before.
- In case user has visited the website before, Sitecore XP moves to personalization engine to check if the current user has any applicable rules(These rules can vary from basic stuff like webpage visited to complicated rules like goals triggered and Engagement value exceeding)
- In case a rule is applicable, Sitecore XP applies the conditions related to the rule and displays the personalized content to the user.
- This whole data is also sent to SQL database on specific intervals in order to be available for Dashboards and reports.