One Month with Sitecore 7.5 Part 2: The Experience Profile and Experience Database
It’s been just over a month since Sitecore announced the forthcoming Sitecore 7.5 and the Experience Database (xDB). In Part 1 of this series, you would have had to sit through an hour and a half Google Hangout recording of me discussing Sitecore 7.5, bad jokes and all. Starting in Part 2, I'll be providing the information to you in more digestible blog posts. Our first morsel is the core of 7.5 new features -- the Experience Profile (aka the "contact") and the Experience Database (xDB) itself.
- Part 1: Milwaukee Sitecore Developer's Meetup Presentation (video)
- Part 2: The Experience Profile and Experience Database
- Part 3: xDB Setup, Contact Identification and Shared Sessions
- Part 4: xDB Deployment, On Premise vs Cloud
- Part 5: Persisting Contact Data to xDB
- Part 6: Extending Report Data via Aggregation
Big Data Big Data Big Data
The Experience Database is a significant rearchitecture of the Digital Marketing System, allowing you to collect analytics data across geographies, and aggregate it for reporting. It does this by boldly embracing MongoDB NoSQL database technology to allow massive scalability for your big data.
“Big data?” Oh boy, here we go….
The Experience Database
The technology and architecture behind the xDB is pretty impressive. It allows for decentralized data collection, and introduces the concept of a Contact to Sitecore analytics data. A contact is just what you would think it to be -- a unique individual. Previously in DMS you were limited to a Visitor, which is basically an individual on a specific device. A cookie, really. The Experience Database provides data structures and APIs to allow you to track an individual across devices, provided you can identify him/her by some unique ID such as email address (this is key, otherwise you just end up with a bunch of anonymous contacts!).
The basic process for analytics data collection and reporting can go something like this:- A user accesses your site from a desktop browser. Global load balancing via DNS directs the user to a particular data center.
- As the user interacts with your site, page views, events, and other analytics data is stored in session. Sitecore 7.5 includes a MongoDB session provider so that session state can be easily shared between servers in a web farm. This also means that you won’t lose analytics data if an application pool recycles.
- In the course of interacting with the site, if you are able to identify the user (e.g. via email input or login), data about the visit can be associated with a known contact.
- The user can also access your site from other devices, and once identified, share session data between the devices in what Sitecore calls Shared Session.
- When the user’s session expires, contact and visit data is flushed to the Experience Database. This can be a local MongoDB server, or can be hosted by Sitecore via a new Experience Database cloud offering.
(Wow, we’re talking about “The Cloud” too?)
- A new processing service aggregates data from the Experience Database into a Reporting Database. The Reporting Database is good, old fashioned SQL Server, with a schema optimized for data reporting and analysis.
- Applications such as Engagement Analytics, the Insight Dashboard, and a new Experience Profile contact report read data from the Reporting Database and Experience Database as needed.
Here's another view of the new analytics data flow. If you'd like a lovely animated walk-through of this, you can jump right to that section of my Milwaukee Developer Meetup presentation.
The Experience Profile
The Experience Profile is a report on an individual contact, with data on visits, profiles, and all kinds of other details.
In B2B and customer service scenarios, where you are having direct conversations with customers, it looks to be a very powerful report with information to aid in the selling or customer service process. As we will see, it is also possible to extend the collected data with either additional website activity, or external data from your CRM. In B2C scenarios, the report itself is less useful, but certainly shows the possibilities that you will have for personalization and other marketing automation based on the complete picture you will have of the customer.
For short, Sitecore is calling the Experience Profile... the xFile.
That's it for Part 2 of my series on Sitecore 7.5. In Part 3, I'll be discussing setup and use of the xDB, how to identify contacts, and how to make use of Shared Sessions.
-Nick