Showing posts with label Experience Platform. Show all posts
Showing posts with label Experience Platform. Show all posts

Saturday, February 7, 2015

10 Days of Sitecore 8 Analytics. Day 3: A Picture's Worth a Thousand Words

Main point for today

OK, I admit it.  On my recent posts I faked my picture of Abraham Lincoln in my Experience Profile.  I didn't even use PhotoShop; it was just a cheap SnagIt copy-and-paste.  But now, here's the real deal:
A true Abraham Lincoln Sitecore Experience Profile Contact
Why is this such a big deal Mike?  Two reasons:

  1. Looking into how to add a contact's picture to the Sitecore Experience Profile reminded me of how incredible the Sitecore community is.  There are great blogs going back months (from people much more talented than I am) that discuss this subject in great detail.
  2. The main purpose of this blog series was to investigate the power of xDB.  I've been around reporting requirements long enough to know that power comes from modeling whatever it is you want to model, viewing it in whatever way you want to view it.  While my adding a picture here is a tip-of-the-iceberg kind of moment, it will hopefully get the creative juices flowing (it did for me).

About that community

First and foremost, two top examples of how great the Sitecore community is, and representative of much more thorough discussions of this subject than I will have here today:
  1. Anything by Adam Conn is great.  This is a series he did back in September (which shows how far ahead of the curve he is) that does a great job explaining developing against xDB.
  2. Sitecore's great partner, Horizontal Integration, does a fantastic job of showing code samples.

My summarized steps to get Mr. Lincoln's picture in my Experience Profile:

There are much better posts around all things Mongo, development in Sitecore and xDB, etc.  This is my quick list of things that I went through as I investigated this task, using just the information from the above two blogs.

Step 1.  Learn enough Mongo to become dangerous.

As you get into xDB within Mongo, you'll gravitate to the Contacts and Interactions collections.  As you're using RoboMongo or MongoVue or your tool of choice, you'll find yourselves wanting to query the collections for your documents.  Again Adam Conn comes to the rescue with an explanation of how to use ID based queries.  Here are a few find() statements that also helped me:

db.Identifiers.find({"_id" : /extranet\\abr?/i})

In this example, my Identifiers collection has a link between my Contact ID and Abraham Lincoln's Sitecore user record.  The above uses a Regular Expression since in this case the _id field seems to be a string (as opposed to Adam's description of how to deal with identifier types in the Contacts collection).  The RegEX looks for user in the extranet Sitecore security domain, staring with "abr" and case insensitive ("/i").

db.Contacts.find({"Personal.FirstName" : "Abraham"})

Switching to a find in the Contacts collection, above is a way to find a value in an embedded document.  Contacts have a "Personal" document, with an embedded document that can include FirstName and LastName.  The Personal.FirstName syntax allows me to find a value of "Abraham" within.  This could be another use of a RegEX as used in the first example.


db.Contacts.find({_id:new BinData(3, 'zgZHZ6RszESnllHXYIuUrA==')})

Adam's blog will really explain why we need to set up a find query in this way for the Contacts collection.  The example above is just an easy copy and paste (changing out the resultant ID for your system).

Step 2.  Look at an example of a Contacts document.


{
    "_id" : LUUID("4332583d-d8df-3a5c-6382-4cb8037a15f3"),
    "System" : {
        "IntegrationLabel" : ""
    },
    "Identifiers" : {
        "IdentificationLevel" : 2,
        "Identifier" : "extranet\\mike@test.com"
    },
    "ConversionInfo" : {
        "WasConverted" : true
    },
    "Lease" : null,
    "Personal" : {
        "FirstName" : "Mike",
        "Surname" : "Casey"
    },
    "Emails" : {
        "Preferred" : "work",
        "Entries" : {
            "work" : {
                "SmtpAddress" : "mike@test.com"
            }
        }
    }
}

The above document has some entries based on some typical activity on our Launch Sitecore site.  For instance, by registering we've gathered some "Personal" values and "Emails" values.  Notice there is no Pictures section of this document.  As expected with this NoSQL strategy, the document continues to build as information is collected.

Step 3.  Understand a bit about facets

As Adam explains, the Experience Profile makes use of Contact "facets".  As of Sitecore 8, the Sitecore.Analytics.Model.Config file contains the default facets, as shown below:
Default Facets in the Sitecore 8 Sitecore.Analytics.Model.Config

Since "Picture" is already an available facet, nothing to do here.  Adam explains the process of adding new facets and leveraging those new facets in a new SPEAK-based tab on the Experience Profile.

Step 4.  Get some code to write to the Picture facet

Still getting my terminology straight here, but basically we want to add a Picture section to that original Contact document shown in step 2 for Abraham Lincoln.  Thankfully, our friends at Horizontal Integration have already done the heavy lifting here:
Horizontal Integration Code to write to the Contact's Picture
As an aside, you'll be likely looking for some assembly references to use the above, so just in case:


Now, by having a Media Library item with Abraham's picture and replacing the GetItem statement above with its GUID, we're good to go.

Since this isn't a real-world example and just an investigation, I went ahead and created a control that just runs the above code when I visit my page on my local Launch Sitecore instance.  I'm really interested in the real-world sources for this picture--social, CRM, etc.  And now I'm more interested in taking the next steps in understanding the power this type of access to xDB unleashes in Sitecore 8 projects.  I'll leave you with the new section of the Abraham Lincoln Contact document:
Abraham Lincoln Contact Document with Picture


And now we can see good 'ol Abe's smiling face when we access all the great detail of his Experience Profile (and no copy-and-paste this time around!):
Searching for Abe and seeing our new picture facet


Tuesday, February 3, 2015

10 Days of Sitecore 8 Analytics. Day 2: Insights from the Experience Profile

Introduction to today's discussion

The Experience Profile is a new Sitecore view into analytics that provides incredible insight at a visitor (Contact) level.  From pages viewed, to patterns / personas matched to campaigns triggered to goals achieved, the Experience Profile paints a full picture of your visitors' interactions with your brand.

Today we'll take a bit of a deeper dive into this Experience Profile.  For those of you on the tech side, this view shows the power of what SPEAK interfaces can become in Sitecore, and as we get to the end of this series we'll see the ability to customize these views, add tabs to the reporting interface and more.  For this post I wanted make sure that some of the simple goals, campaigns and page events in our Launch Sitecore site are ready for the Experience Profile, and ready for those deeper conversations.

A reminder of what the Experience Profile looks like and what we'll be drilling into

Experience Profile with the Contact Timeline showing

Marketing Control Panel Considerations for the timeline


Campaign

For this exercise, I set up a new Campaign in Sitecore's Marketing Control Panel (as everything now is, one click away in the Sitecore 8 Launch Pad).  To those familiar with DMS, this is the same idea as the Marketing Center, the area of the content tree dedicated to setting up marketing initiatives.  I set up a new Campaign to track called "Video Blog Campaign" (our team is working on demo and other instructional videos that we plan to have a home for soon).


Some things to note that have been added to Sitecore 8.  The Campaign Group is a drop-down selector to allow us to start considering a richer taxonomies for our campaign organization.  This will become important later as we start looking at Campaign reports.  I added a new Campaign Group (Mike Campaigns) in this Taxonomies section, and it became available in the Campaign Group drop-list as I set up the Video Blog Campaign itself:

New Taxonomies Section for Campaign Management
  

Goals and Page Events

We can keep the goals we already have in place for Launch Sitecore.  These represent simple "transactions" that we are trying to encourage our visitors to take part in, like downloading the Launch Sitecore package, visiting certain targeted pages, adding articles to a logged in user's persistent profile:
List of Goals for LaunchSitecore.net

One interesting addition to Goals is shown below:

A Goal item shown in the Content Editor
Note that a new "Experience Profile Options" section with two checkbox field are now available for Goals (they are also available for Page Events).  This gives us the option to make sure these goals / conversions are prominently displayed on our Contacts' Experience Profile Reports.

With these simple Campaigns and Goals in place (and making sure all of these items are Deployed and Published), we can now start to see Abraham Lincoln's visit history start to take shape.

Below is a section of the Timeline where we can start to chart various interaction points with our Contact:

The Timeline gives us visual cues representing Goals achieved and Campaigns triggered.  It gives us a bar graph indication of value for the various visits from our Contact.  Below the Timeline we are able to see specific Goals achieved, the nature of the Campaign that was triggered, Page Views, Value and more.

Since we had many of the Digital Marketing considerations in place with Launch Sitecore (which started on Sitecore 6.6), we were able to ready the site for new Sitecore 8 features very easily.  The public site at launchsitecore.net is now on Sitecore 8 and tracking all this great Contact data so that we can enjoy the new insights that the Experience Profile and other analytics views provide.

Monday, September 8, 2014

On the way to Sitecore Symposium

One of my very favorite events is when Bjarne Hansen—president of Sitecore North America—spends a few traditional moments at the annual sales kickoff and company celebration.  He is the single best person in the world to relay the company’s history, and he takes these moments to ask people to stand in recognition of their achievements in the order they joined Sitecore.  (Note: he is able to do this in the context of how many company celebrations you’ve attended with significant others, an amazing thing in and of itself).  “If you were at the very first company celebration…..”  Literally a handful of the great North American founders stand.  Huge applause.  2nd, 3rd, 4th, 5th celebration attendees stand in turn.  More applause as bigger chunks of the room stand.   “If you joined this last year….”.  The remainder of the room--more than half of its total attendees--stand to applause as the already standing welcome the new crew, excited about how they will help continue to grow the well-oiled machine in place.
I’m on a plane from Boston to Las Vegas and thinking about those events that I’ve had the privilege to attend, trying to get through some chapters of a MongoDB text recently purchased, and looking forward to a fantastic week at Sitecore Symposium 2014.  The tradition that Bjarne keeps is always an incredibly tangible, live-person-bar-graph way of seeing the phenomenal growth at Sitecore.  Symposium is another such event—this one having the added benefit of our incredible partners and customers joining in the fun.  And while Bjarne’s exercise drives home the growth of the fantastic people working for Sitecore the company, this event rounds out the story by adding the growth highlights within the product, partner channel and customer base that makes this amazing ecosystem that is Sitecore.  Bjarne is always clear about this achieved goal—we have the best people, the best partners, the best product and the best customers in this industry.  Period.  It would be silly to say this goal is easy and foolish to say it’s ever fully realized, but the consistency of this message drives this ecosystem to fantastic new heights every year, heights that will be very tangible in Las Vegas.
Symposium 2014 will be yet another reminder to me of how far we’ve come.  I left the original Dreamcore with a great feeling (“wow, we’ve arrived”), and looking through the session agenda this year makes it incredibly clear how much further this platform and its people have evolved.  It is truly amazing to see the breadth of what is to be covered this week and it makes me look forward to the side conversations between and after sessions that will fill gaps left by presentations I couldn’t attend.  When at Dreamcore we were certainly talking Web Content Management (which itself filled an impressive session agenda).  Now, with that WCMS engine still incredibly important, foundational and fundamental, we’re able to have the discussion about the set of layers that leverage that Rocks-solid foundation.  From mobile development, publish once / use everywhere, content-as-a-service, content marketing, testing, analytics, insights-driven personalization, EXPERIENCE….the list goes on and on.  An incredible new analytics architecture drives the next phase while holding true to time-tested features and methodologies.
The customer and partner sessions reinforce that feeling of pride I had way back at Dreamcore—there is truly an army of Sitecore-powered professionals that do amazing things with this platform.  There is no one Sitecore solution, there is only the right Sitecore solution for you or your customer.  The collection of challenges and solutions described in these sessions really brings that point home for me, and reminds me that software projects are never perfect, but they are made more perfect by the skill of this ecosystem and the breadth and flexibility of this platform.
With the sneak-peak of Sitecore 8 (look at all of those tiles and applications in this platform!), I’m continually blown away at how much this system can do.  Sitecore 8 really drives the point home of how powerful it is to have all this under one hood, one set of user interfaces, one incredibly consistent underlying structure and model.  Oh, and to top it off, Sitecore Experience Platform and Commerce—a bond with obvious and far reaching potential—is now being realized.  The scalability of Sitecore search and content/product modeling with the ability to test and optimize and present in the right place, at the right time, coupled with the amazingly granular insights that drive this continuous optimization.  Wow.
In my own job, I get to support the best presales engineering team in the biz.  We challenge ourselves with keeping ahead of this growth, keeping on top of an ever-evolving product and technological landscape.  Check out Chris Castle’s and Brandon Royal’s session as they discuss their own experiences moving Launch Sitecore to Sitecore 7.5/8 and a cloud-powered architecture.  We are excited by the challenging level of expertise that you expect and deserve from us and are looking forward to the heights our combined expertise and the Sitecore Experience Platform will take us this year.  We look forward to working closely with all of you as together we unlock the potential of this platform and stand up together in celebration of all the successful Sitecore solutions ahead.
As Bjarne reminds us, more than anything, it’s the people.  It’s the ecosystem at this event (and those at home still ferociously working the project) that makes me incredibly proud to represent this platform and this company.  Software projects are people projects that succeed and fail with the level of skill, resourcefulness, drive and teamwork of the people that undertake them.  I am truly honored to be among those of you that will be in this impressive Symposium audience, and those of you that work to drive successful Sitecore projects every day.  Please seek out as many of your Sitecore employee hosts as you can at this great event (there are lots that have just joined this year, but we’re all easy to find in our purple shirts).  Say hello and let’s talk about how we can continue on this great journey together.

Thursday, January 30, 2014

The Sitecore Fitbit Project

On the second floor of the beautifully renovated mill buildings in downtown Newmarket, NH, a secret project has just concluded with the promise to change the world of digital marketing forever.  A small but growing software company set up shop just near Popper's Restaurant and just above Bloom'n Cow Ice Cream (meaning that many a brainstorming session was accompanied by beer, appetizers and gelato, depending on the time of day).  The four founding members of this startup decided that they were destined to rid the world of analytics confusion forever.

Over an amazing set of Oreo Coffee 3-scoop cones, the group tossed around the terms and concepts that had caused such inaction at the companies they left to launch this thing.  Big Data be damned. CLOUDy digital marketing strategies.  Consultant scare tactics.  Not at this new place.  There was going to be agreement--now--about the key metrics that would define success.  After all, there were only four of them.  How hard could it be for them to come to agreement about what success would look like for their company's built-from-the-ground-up marketing strategies?

Page Views, Time Spent on Page, Conversions, Bounce Rate, Average Visit Duration, Loyalty, Page Depth.  Already frustrated, the team decided to grab another beer and start again.  None of this felt right.  All these metrics represented a confusing mixture of commonly accepted values and certainly could provide great insight into their digital strategy.  But it felt dated too, very Web Page-centric.  After all, this company was launching their site, but they were talking much more about consistency of message, broadcasting messages through channels, speaking to their customers in short insightful sentences exactly when they were listening instead of dropping their book in Times Square and hoping the guy that tripped over it decides it's worth reading.

One of the founders slammed down his mug.  Looking at his wrist, he smiled and told the group confidently that he had it.  His Fitbit had just buzzed (an unfortunate miscalculation convinced his Fitbit that swinging a beer mug was good for his health).  He mumbled something about a single view of the truth, paid the check and told the team they had some work to do back at the office.

And so the Sitecore Fitbit project started.  The team had already decided that the Sitecore experience platform was what was needed at the core of their entire content and digital marketing strategy.  This team did their homework.  While the analyst reports initially led them to Sitecore, they put the company and the product to the test before this software purchase, and they hit it from the various angles these four professionals represented.  From their most technical, data-integration requirements to the ability to model their digital marketing dreams, Sitecore, in their opinion, had it all.

 (As a shameless plug to the N. American Sales Engineering team, they noted the use of Launch Sitecore as key to their evaluation).

The Fitbit idea added some fun to this.  Now, once the team decided on the key metrics defining success, they could allow Fitbit to be the ultra-simple feedback mechanism, the Pavlovian nudge to keep them on track towards their goals.  Gentle hourly pulses as things were moving along smoothly.  Fast shakes when things needed attention (either for crazy success or troubling dips).  Literally the heartbeat of the business on the four founders' wrists.  (Todo: have to find away to reduce the analytics noise from the hoisting of beer mugs).

The founder that had the AHA! moment opened the Fitbit API site on his laptop and projected to the group.  He started expounding on his single view of the truth statement, gathering agreement in the room that one of the main problems they'd all seen in the past was that, as a company grows, the charts and tables and numbers and metrics grow exponentially as well.  Wouldn't it be great if the feedback mechanism were much more simple, and the thresholds were defined so everyone agreed about the boundaries on both sides of the graph that would drive the right cadence of attention, discussion, strategy review, planning.

With the Fitbit app registered, now it was time to leverage Sitecore's analytics, publishing, reporting and data integration capabilities.  One of the great things that a team member remembered from their evaluation was that Sitecore already appreciated this concept of Value.  An Engagement Value scoring concept already exists in Sitecore.  This is the perfect abstraction that the group was looking for, and now it was time to specifically map their digital marketing goals to this concept.  While a single scoring mechanism like an Engagement Value could become the interface to Fitbit, it only needed to abstract--not to ignore or make irrelevant--the significant data points that lead to it.

The only real mantra for this company was an absolute, unrelenting commitment to their customer.  They commonly corrected each other whenever their conversations slipped to their own hopes and dreams.  Instead, the conversation was always (awkwardly sometimes) required to be spoken in the voice of their customer.  While the exercise sometimes became frustrating, the team knew that speaking in this customer voice would always lead them to ensure that it was the customer finding value from the company, and not the other way around.

So now it became a quest to define the thresholds, events and actions that would identify when their customers received value from the company.  The team had seen the capability they will have from Sitecore's analytics engine to gather scores of discreet metrics, dimensions, measures.  Now they saw that they they could abstract those discreet metrics into higher level categories that everyone could understand and communicate.  They could meet regularly and discuss the averages in these categories that for them would define ongoing success.  And their Fitbit on their wrist would congratulate them or warn them when things were happening on either side of these bounds.

An initial look back at the Sitecore Analytics offerings provided the group with the confidence that they really had everything they need.  A quick look at the Measures available in the Enagement Intelligence Analytics OLAP cube showed them all the usual suspects:
View of Measures within Sitecore's DataMart

Looking into the dimensions that could drive these calculations was even more telling--they would be able to look at these statistics for particular campaigns, for particular devices, for specific business accessing their content, in specific regions of the world and the country.  The DataMart was in a standard format, so they immediately started playing with the the MS Excel Pivot tables that would drive the deep analysis of the digital business.

But for now, it was back to the Fitbit app.  All of this great data needed to role up to events that would buzz wrists and lead to congratulatory beer raises or late night strategy tweaking sessions.  As the team started diving deeper, they realized that Sitecore had the key ingredients here as well.  Patterns would allow them to clearly define an audience segment they could cater to specifically.  Goals would allow them to define discreet events when their audience was gaining value within their digital campaigns.  Engagement Plans would allow the company to map the paths, and treat their customers to one-on-one digital experiences depending on the direction they took through that map.

With ideas a buzzin' (but wrists as of yet not), the team settled in on their first metric for Fitbit.  Average Engagement Value Per Day.  Simple.  But really powerful underneath.  Lots of work still to do to create an environment and a modeling of discreet Goals, audience Patterns and Engagement Plans that will drive this key metric for the business and gain consensus between the four founders that the digital strategy is on the right path.  Are customers finding information in the right place at the right time?  Are they talking about the company in a positive way on social channels?  Are they taking advantage of promotions and bringing their friends into the community?  Are they responding to mobile and email campaigns?

When customers are finding the value from the company's digital offering, a simple pulse hourly on the Fitbit will tell them they're on track.  And when that thing nearly shakes off the wrist, time to celebrate!

(So my startup software company is fake.  Yours, however is not ;)