Friday, February 24, 2012

Integrating Product Recommendations Engine

Product Recommendations are normally said to bring an increase in revenue by 5-10 % and hence are considered an important component of the website. Mostly all of them are built on the "K nearest neighbour" algorithm. In the past year I have worked with my customers to integrate either Avail, Peerius, Intelligent Offer or Rich Relevance for them. I was able to bring out the similarities in them which makes easy to find which one suits your need. I will keep the explanation on high level here. 

You will see recommendation coming up on the home page, category pages, product list pages, basket pages, order confirmation pages, product details page and even order confirmation emails or other emails sent to the customer and pages.  

The 3 broad based components for integration which are common across all.

  1. Back end data feeds to the engine
  2. User activity from the website to the engine. 
  3. Getting recommendation using the engine on the website 

Back end Data
On a daily basis, the website needs to send the product and category (taxonomy) data to the recommendations engine which in turn uses it to make recommendations. Some constraints that need to be observed on the data. Products sent should be in stock and associated with the category sent.  Try to keep the Product-Categories association as unique in the data sent as non unique data confuses the engine.  


User Activity from the website
Recommendations engine uses tags like Web Analytic Engine to collect user activity data. For eg,  Collect data when a product is added to basket or removed from the basket. Collect data about what is the user searching. Collect data about which product the user is looking at or collect data about which product the user has bought. The recommendations engine needs a good data history to generate good recommendations and hence it is advised that after integrating with the engine, it is good to hide the recommendations for about a month or two and let this data built up in the background.  If the is already live  using Coremetrics Analytics Engine and wants to use Intelligent offer for recommendation then this lead time is cut as Intelligent offer can get the data collected by Coremetrics. There are some changes that are required in tagging if you are using self hosted version of Coremetrics. 

Getting Recommendations.
1. Online
Just a simple JavaScript or JSON function to call to get recommendations. It accepts some product ids and filters in the fucntion call.  Product ids are the ones which the user is looking at or has looked at and are present in the history cookie and filters are categories or refinements based on which you would want to filter your recommendations. e.g if the user is looking at shirts then filters should be shirt category to show recommendations of shirts.
2. Offline or batch
The engine can export a batch of recommendations based on the data you export and then you can import this data in your DB, This has some performance benefits the dynamic characteristics or recommendations is lost as the engine cannot be engaged to do run time calculation based on user journey.


Suggestions for Design and Implementation.
Implement export jobs on Staging Environments to avoid load on production.
If you are using Javascript put all the script at the end of the page and trying using Ajax.
If recommendations are required on empty basket try using JSON or you will have to hack around cookies.

The main differentiator between recommendations engine is the Business Panel provide by them and the control you can have on which kind of recommendations you can display on a particular page for a particular product.  This is something that needs to be discussed and decided with the Business team. 

-AV

No comments:

Post a Comment