7

I'm attempting to grasp how to access analytics/mongodb data when in a CM/CD setup.

If I'm a content author do I do all my report building/personas/personalizations/analytic reviews on the CM instance or will I have to perform some of those tasks on the CD directly?

The part I'm not grasping right now is... CM and CD have their respective DB Instances and other than workflows & publishing tasks to transfer data... how does CD send analytics info back to CD, if at all? Is it out of the box or do I have to configure it?

Most of my experience surrounds the main Sitecore system and I am not very well versed in the Analytical/xDB portion. Yet.

| improve this question | | | | |
13

Normally analytics data are stored in the MongoDb on session end. Then, with Sitecore Aggregators, the data is flushed into the Sitecore Reporting database at a defined interval. If not mistaken, the default value is each minute.

Your CD server should have access to the MongoDB analytics collections so that the tracker can store the value into MongoDB and the CM have access to the Sitecore Reporting database so that the reporting can be available on the Experience Analytics and Profile.

One thing to note, I've seen that the Experience Profile takes some data directly from MongoDB. So, CM Servers should have access to both Sitecore Reporting Database and the MongoDB Analytics collection.

Content Authors will only require access to the CM server to be able to perform the different reporting required. Items such as profile cards, pattern cards, personas etc, that they will create will automatically get published to the target database.

Point to note here is since CM and CD make use of the same MongoDB Analytics collection, you need to disable the Analytics Tracker on CM Frontal Server so that it doesn't interfere with the real analytics data.

The below image show how analytics works

enter image description here

| improve this answer | | | | |
  • Sitecore Analytics database you mean Reporting database right? – Harsh Baid Jun 21 '17 at 21:35
  • doc.sitecore.net/sitecore_experience_platform/… - The Sitecore Experience Database (xDB) uses two database systems (SQL Server and MongoDB). MongoDB collection database - stores all experience data and SQL Server reporting database - stores aggregated reporting data – Harsh Baid Jun 21 '17 at 21:36
  • @HarshBaid Yes it is the reporting database. Sitecore by default creates it as [instanceName]_Analytics – Hishaam Namooya Jun 21 '17 at 21:37
  • 1
    Right. Even the Sitecore documentation is confusing everyone on this by referring it as Sitecore_Analytics and Sitecore_Reporting in this link doc.sitecore.net/sitecore_experience_platform/…, however, ignore the file naming from the install package and let us refer to it as Reporting database to keep nomenclature correct. – Harsh Baid Jun 21 '17 at 21:42
  • @HarshBaid just updated the answer – Hishaam Namooya Jun 21 '17 at 21:44
8

Your personas, and personalizations are stored either on as items in the Master database or as part of an item (personlization rules for renderings) just like any other content item in Sitecore. You will need to publish the items (and run through workflow if it's applied to the item) for them to be active/present on the content delivery instances. You should never manually change items in content delivery (or the associated database) as it could be removed/changed on the next publish.

When a user interacts with your website, the xDB collects all contact and interaction data. The data flows through the xDB system in the following sequence:

  1. A contact decides to interact with a website.
  2. During the session, details of the contact, the interaction, and the device are stored in either a private or shared session state. On session end, Sitecore flushes this data to the collection database and schedules it for processing.
  3. The processing layer reduces and groups interaction (online visit) data and stores it in the reporting database for use by the reporting layer. This is known as aggregation. Data is also aggregated by the processing layer for use by the segmentation index.
  4. The Reporting Service queries the reporting database to fetch reporting data for use in applications such as Experience Analytics (xAnalytics)
| improve this answer | | | | |
  • Thank you @PatrickBarron for taking the time to answer my question. I appreciate your input. – OldMan Jun 22 '17 at 10:17
3

I think that official Sitecore documentation is very good starting point to get familiar with xDB and reporting architectures. Once you are familiar with it, you are more than welcome to ask more specific questions for further details.

  1. xDB architecture overview describes general concepts, dataflow between CD, collection and processing servers.
  2. Sitecore reporting architecture illustrates how data processing is done and lists some of Sitecore applications that take advantage of that.

If you're looking for setup guides, please see Morten's answer.

| improve this answer | | | | |
  • Thank you @grg I'll give these a read to familiarize myself more with the inner workings. – OldMan Jun 22 '17 at 10:20
2

It is of key importance that you have setup the CD and CM in the correct manner using the following 2 guides: https://doc.sitecore.net/sitecore_experience_platform/setting_up_and_maintaining/xdb/configuring_servers/configure_a_content_management_server

https://doc.sitecore.net/sitecore_experience_platform/setting_up_and_maintaining/xdb/configuring_servers/configure_a_content_delivery_server

When setup correctly the CM and CD shared the same MongoDB and also shares the Analytics (Reporting) database on the SQL server. The CM has access to the master and core database and the CD has access to the web and core datasbse.

It is also of key importance that xDB is setup correctly and especially Analytics.ClusterName needs to be configured to point to the CD servers public url and the CM server needs to be able to reach the CD server url. See this post for more info on Analytics.ClusterName: https://blog.roeermose.com/post/how-important-is-analyticsclustername-for-sitecore-xdb

The CD server should be setup as the main tracker for xDB and the CM server uses /sitecore/AutomationStates.ashx on the CD server for goal registration on e.g. engagement plans and EXM.

So to sum up your question you do all the content setup on the CM master database and then publish the content to the CD web database.

| improve this answer | | | | |
  • Thank you @MortenRøermose. I appreciate you taking the time to outline everything so well. I will give these a read. Very helpful. – OldMan Jun 22 '17 at 10:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.