Sitecore – Measure Personalization Performance

Has anyone ever wanted to know whether the implementation of a personalization section is working properly? Nowadays, everyone has a personalized profile. By that, I mean, if you go on Netflix or Amazon, every user has their own profile with personalized content. Example, if I recently bought or view products about Music, Amazon will recommend me to check other products which are meant for music.

But how to know if this is driving more sales on the site? It may be that without personalization, you could have the same amount of sales. This is where A/B testing of Personalization on the live site comes into play. For this article, I will be only writing about the concept and hopefully, in the next coming days, I can provide how to achieve this.

Concept

Between a month or 2, you can activate an A/B testing phase. During this phase, you will need to set a flag on the user whether the user should see personalized content or not. You can set it randomly but from my point of view, it should be 50-50, i.e, 50% of users are personalized (Variant A) and 50% are non-personalized (Variant B).

The flag should be set when Sitecore creates the contact id. You can use the Contact Facet and add Variant A or Variant B. Once you have the variant set, from your rules, you will need to have a condition. The condition is responsible to see whether the contact has the Variant A or B in the custom facet.

If the Variant A is present, you will need to execute the rule which are meant to push personalized content else if Variant B is present, push content which are not personalized (random content). The random contents can be based on most recent or most like contents.

Below is the flow of the concept.

Once you have the flow setup, you will need to know the behavior of the visitors, whether, personalized content is more productive than non-personalized content. To do so, you can have custom events set on the products for example. If the products are personalized, add an event, let say, “personalized-content” while if non-personalized, add an event named “non-personalized-content“. Based on those events which will be registered in the xDB, you can at the end generate reports and analyze it to see which of those 2 is performing better.