Wednesday, January 28, 2015

10 Days of Sitecore 8 Analytics. Day 1: Where are we now?

An intro to this series

As I prepare for a discussion around Sitecore 8 Analytics coming up in a couple weeks, I figured a concentrated blog series on the topic would help in my investigation and preparation.  Those of you that attended Symposium and now have had a chance to see the generally available release of Sitecore 8 are undoubtedly excited to dive into all the details that make this release so great and so fundamental to the future of the platform.  This post will set the stage for a detailed look into the specific analytics features of Sitecore 8.  Since analytics is pervasive now in Sitecore (think Engagement Plans, the new Path Analyzer, Multivariate Test results reports and more), I will be touching on some features that aren't directly based on analytics reports.

How did we get here?

For those of you that have followed Sitecore's analytics evolution, Sitecore 8 is an incredibly exciting stage for this platform.  It is, at the same time, a culmination of lessons learned from the Online Marketing Suite through the Digital Marketing System days, combined with the beginning of a truly new frontier in analytics capabilities and possibilities for Sitecore.  OMS and DMS introduced amazing capabilities into Sitecore.  Sitecore 8 takes the best of these features, expands on them, introduces a wide array of new features, and makes the entire system scale to previously unreachable heights and scope.

An introduction to xDB

The single feature (really the single architectural decision) that makes this all possible is xDB.  xDB is an incredibly scalable collection and reporting system.  If you are just starting out in your investigation of xDB and Sitecore 8, please take a few minutes and read the xDB Overview and Architecture document on sdn.sitecore.net.  I'll take a couple of minutes to describes some key points, but the document does a really nice job in explaining the basics.

Taking apart one of the Overview document's diagrams, let's briefly look at the main components of the system.  The tier below includes:
  1. Content Delivery, our tried and true friend.
  2. Session State, always available to our .NET application, but this is a new version for xDB.  Session State is separated between Shared and Private, basically allowing data for a "Contact" (a Visitor that can have many Visits across any number of Devices) to be efficiently collected at a Visit level and also at the Contact level.
  3. Collection, a new system leveraging MongoDB to scale the collection of analytics data to unbelievable new heights.
Visitor Data Collection and State Management

Tackling the next grouping:

Processing for xDB Reporting Database storage
  1. Processing Server (also referred to as Aggregation).  This is a new Sitecore server tasked with dealing with all that great, expansive analytics collection.  It is able to make sense of widescale collection, mapping it to the tables and structure of the SQL Server reporting database described next.  This is also where some really interesting things can happen with ties to additional datasources like CRMs, demographic data web services and much more.
  2. Reporting Database.  We can think of this as very similar to the existing Analytics / Reporting database found in DMS.  In 7.5 and 8 and beyond, this table structure is very different, modeled for the scalability of the new collection system, and tuned for the various applications that will request data and reports from it.
Lastly:
Reporting Components of xDB

  1. xDB contains a Reporting Service that accepts requests from reporting applications / API calls.  This service can sit on another Sitecore server or can be a dedicated Sitecore server.
  2. Reporting applications (like the Experience Profile which shows insights around a single Contact, or the new Sitecore 8 Dashboard of out-of-the-box analytics reports) leverage the Reporting Service and format the data it responds with.

What if I don't want to understand anything about what you just talked about?

You're in luck.  Sitecore is working with MongoDB and Microsoft Azure to make this entire stack available to you via an xDB Cloud offering.  Sitecore offers a subscription model based on the volume of data collect (specifically the number of Contacts and their interactions with your sites).  The beauty of this subscription model is that all of the components described above (with the exception of Reporting Applications that you'll want locally) is architected, maintained and scaled for you.

What do some of these new Reporting Applications look like?

For now we'll just take a high-level look at some of the reporting applications and interfaces.  Further into this series we'll do more detailed investigation into some of these, as well as discuss the possibilities that xDB unleashes in terms of connected external data, customized reporting and more.


First, the overall Sitecore 8 Launch Pad, with a couple of default reports on my dashboard:
The new Sitecore 8 Experience Platform Launch Pad
By selecting Experience Analytics, we get to the new Analytics Dashboard, with an impressive list of out-of-the-box reports and a default dashboard:
Sitecore 8 Experience Analytics Dashboard

The Experience Profile, which we'll investigate more closely in this series, shows the insight you can gain around a particular Contact important to your organization:
The Experience Profile
Lastly, the Path Analyzer shows valuable paths through our site based on goals and outcomes we've set up in Sitecore.
Sitecore 8 Path Analyzer

Setting the stage for our investigation

Hopefully this high-level introduction sets the stage for this series to take a detailed look at some of these reports, the data that drives them, and the possibilities that xDB brings us.  In the next post, we'll start setting up a campaign that follows this series.  As always, go to www.launchsitecore.net and register to get your own copy of this evaluation site in Sitecore 8.