2010-11-23

One Method to Rule Them All - SaaS & OnSite G8.5

With this release the method getRecommendations is introduced. This method will replace all current recommendation methods. Before this release the programmatic API method used defined what input could be used and the type for recommendation generated. With getRecommendations the input used and the type of recommendation generated is set in the Control Panel.



Why a new Method?
The first purpose is to empower non-techies such as e-commerce managers and marketing people to easily change the type of recommendation without having to rely on techies to do this. A safe bet is that this is something that will be appreciated by the person wanting the changes and techies alike.

The second purpose is to allow a more flexible set up of recommendations which gives merchandisers a larger degree of freedom to customize the recommendations to the need of a particular site.

The third purpose is to make it easier for new customers to integrate Avail and for existing customers that want to implement recommendations in new areas as there is only one recommendation method.

The forth purpose is to prepare for upcoming features that we are working on but not quite ready to announce.
Input
The new method getRecommendations takes multiple inputs. The available inputs to base recommendations on are:
  • Phrase - A search phrase used on the internal or an external search engine.
  • SessionId - The session id of the current session.
  • ProductId - A single product identifier. Typically the a product on a product detail page.
  • ProductIds - A set of product identifiers. For example a wish-list or a feed from the Facebook App My Bookshelf.
  • UserId - A user identifier of a logged-in or identified user.
When implementing getRecommendations make sure that you use all available inputs. This will allow non-technical people to readily change the input using the Control Panel. 

Output
Screenshot
As mentioned the output will be controlled from the Control Panel. On the template level you will be able to set if the output will be products or people. If the chosen output is products, then you will be able to chose if the recommendations should be based on:
  • Visitors’ Clicks and Purchases
  • Visitors’ Searches
  • Manual Rules
 On the subtemplate two new drop-downs will let you set the type of recommendation. Using the two drop-downs a sentence is created that we hope in everyday words explains the type of  recommendation made. Example of sentences that are formed:
  • People who bought the products you have viewed also bought
  • People who searched on-site selected

Screenshot
Old Recommendation Methods
Old recommendation methods such as getProductPredictions and getRelatedActions will be deprecated. This means that they will continue to work for some time, but all new code with recommendation-requests should be done with getRecommendations. Eventually a transition has to be made as the old methods will stop working. No date for when the old recommendations methods will stop working has been set but this will be announced and communicated well ahead of time so that everyone can do the transition in a orderly manner.


Other Minor Features
With this release it will be possible to apply a dynamic parameter to all subtemplates in a template instead of just one subtemplate.

Also, for those using Avail to return presentation data the float output has been changed to always be at least two decimals. This will result in whole number or one decimal prices being presented as 25.00 and 36.70 instead of 25.0 and 36.7.

A new method has been added: logRemovedFromCart. This method removes a product added to cart with method logAddedToCart as stored in Avail. This is useful when doing recommendations with getRecommendations based on the content of the cart which is derived from the argument session id. It will also affect the products filtered with the template setting Exclude Added to Cart.



Avail OnSite G8.5
OnSite G8.5 will include getRecommendations and the features mentioned in the following posts:
More powerful Recommendations
HTML Control Panel


2010-11-22

Code to handle availability problems

We have devised a solution to handle the event of Avail SaaS not being available. 
Before the Avail script tag add a row that declares a empty Emark object:
<script type="text/javascript">var Emark;</script>
Add an if-then statement before the Avail-specific code that checks if the object is available: 
if(Emark){
//Avail Code
}





Full page sample:
<html>
<head>
<script type="text/javascript">var Emark;</script>
<script type="text/javascript" id="thescript" charset="UTF-8" src="http://service.avail.net/2009-02-13/dynamic/XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX/emark.js"></script>
<script type="text/javascript">
function populatePredictions(){
if(Emark){
var emark = new Emark(false);
var recs = emark.getProductsPredictions(['0208931'], 'GETRELATED_DEFAULT');
emark.commit(function() { 
document.getElementById("prodRecsDisplay").innerHTML += "Recs: " + recs; 
});
}
}
</script>
</head>

<body onload="populatePredictions();">
<h3>Sample Page</h3>

<b>Recommendations</b>
<div id="prodRecsDisplay"></div>

</body>
</html>

2010-11-02

More powerful Recommendations - SaaS

Avail RnD has been hard at work and is now ready to release a new powerful algorithm for deriving recommendations. The new algorithm works on the click data collected from users. For now it will be released on Avail SaaS and on Avail OnSite in a couple of weeks. 

Sequences
To improve the quality of the recommendations sequences are taken into account. A concrete example of when using sequences is beneficial this is that if you are contemplating buying a bike, a water bottle might appeal to you. It is less likely that if you are shopping for a water bottle that you might buy a bike on the spur of the moment. 

Self Improving
The new algorithm is self learning and tweaks itself based on how users respond to the recommendations thus adjusting itself to vertical specific behavior. This is all automatic and you do not have do a thing.

Selecting Data Sets
To empower advanced users a new drop-down in the Control Panel lets you choose which data set you base the recommendations on.

Avail works with three data sets:
  • viewed - products clicked on during a visit
  • bought-together - products bought at the same time
  • bought  - products bought by a user over time
To see how this could be of use, consider the recommendations based on the content of the shopping cart using the method getCartPredictions. The template has a maximum of three recommendations and two subtemplates: 
  • Subtemplate 1 - returns 3 recommendations, no fallback
  • Subtemplate 2 - returns 3 recommendations based on the data set viewed with fallback recommendations
The effect of the above is that you will always have three recommendations. First Avail will generate as many real recommendations as possible based on the bought-together data set. If there was not enough recommendations, get recommendations from the viewed data set and if still not enough append fallback recommendations. 

The HTML Control Panel Live - SaaS

The HTML version of the Control Panel is live! The HTML Control Panel will work for all customers on Avail SaaS. In a couple of weeks we will release an Avail OnSite version that supports the HTML Control Panel. 

To access the new Control Panel go to https://admin.avail.net. Starting this Thursday you will be prompted to use the HTML version when opening the old Java Web Start version of the Control Panel.

Supported browsers for the HTML Control Panel are Firefox 3.5+, Chrome 6+, IE 8+ and Safari 4+.
Metrics Area

Editing a subtemplate
In the new version we have tried to simplify several common tasks. Some examples of changes we have made: 
  • In the Metrics areas you now have forwards and backwards buttons that allows moving the dates for the graph forward and backward in time much more easily than before
  • The "Get Graph" button has been removed and the graph is updated with every change you make
  • When hovering with the mouse over the graph the values of the different graphs are rendered as numbers
  • We have moved the test tab from the subtemplates up to a separate tab and redesigned the test area
  • When hovering with the mouse over a template name you can see an overview of the template settings without having to open the template
  • and much more...
Let us know what you think. Your opinion matters to us. 

Henrik Schinzel
CTO Avail Intelligence