2010-05-10

Availability and Merchandising

Two new features have been rolled out on Avail SaaS: the ability to update availability of products real-time and merchandising.

Updating the Availability
In Avail nomenclature a product available for being recommended is called valid. With the new API method setProductValidity it is possible to change the validity of a product real-time. You can change a product to being not-valid, which will cause it to not be recommended any more if you have set Only Valid  to true in your template. Also, it is possible to make a non-valid product valid and thus making it eligible for being recommended. This method will only be available through the JSON-RPC interface. 

Merchandising
It is now possible to do manual merchandising with Avail SaaS. Templates that previously have been used to filter the recommendation can now also be used to choose what products to display. Instead of a template filtering a set of recommendations, the template filters the whole product set. This gives you an very easy and flexible way to set which product to display on for example the start page, a landing page or a category page. Examples of what you can choose to display:
  • the five latest DVD releases
  • the most popular product that are on sale
  • explicitly set products, for example staff recommendation
  • top-sellers in a given category
  • and much more...
Which criteria that can be set up depends on the data uploaded to Avail SaaS. For example, to sort or filter on price, product prices data have to be uploaded. 

In the Control Panel you will be able to use two new settings that work for merchandising only:
  • Column to Sort On - sets which product data column the result should be sorted on. Examples: price, release date, sales numbers.
  • Sort Order - sets if the sorting should be ascending (lowest first) or descending (highest first).

The new API method for invoking merchandising is called getProducts. The method supports dynamic parameters and returning product meta data just as the recommendations-methods.

2010-04-27

Avail OnSite G8.2

Today we have released a new version of Avail OnSite: G8.2. This contains a set of very strong features like: 
  • A/B Testing
  • More detailed metrics
  • Improved recommendations
  • Multiple currency support
  • Auto categorize
  • and more...
For more information about the new features read the following two blog post from when the features were rolled out on Avail SaaS: 
The only feature from these two posts that is not available is the server side API which is an Avail SaaS specific feature. 
With these powerful new features we strongly recommend all customers to upgrade to G8.2 or to migrate to Avail SaaS. Let us know if you have any questions!
/Henrik Schinzel
Co-founder & CTO Avail Intelligence

2010-04-01

Metrics and Server Side API - SaaS

In approximately two weeks from now Avail will gradually begin rolling out new features on Avail SaaS. Approximately three weeks from now all customers will have received the update. The focus of the update is an overhaul of Metrics and a server side API.

Metrics
Metrics have been given an overhaul. The purpose of the redesign is to make Metrics more user friendly and transparent. Some measurements have received new names that should be easier to understand. The buttons have been moved around and grouped to make working with Metrics more streamlined.

Before logAddedToCart put a session-product only in the state added-to-cart and not clicked-on. Now logAddedToCart will put a session-product in both states, thus making the state added-to-cart a strict subset of clicked-on. This allowed removing some hard to understand measurements and giving others easier to understand names.

Grouping Templates
It is now possible to group templates into a single chart. As an example lets say that you have one template per main category on the product detail page and you want to see a unified chart for the performance of the recommendations on the product detail page. Then you select all the templates for the product detail page and check the Group Templates option which will result in a unified chart for the product detail page.

My Overview
My Overview is a new view that has been added. It is the first thing you see when you enter the Metrics area. The purpose is to give you a snapshot of the results over the selected time period.

Export Data
The Billing Info has been replaced with Export Data. This does an export of detailed metrics data. This data can readily be imported into Open Office, MS Excel and Google Spreadsheet for analysis.

Server Side API
A server side API has been added. Using JSON-RPC you can now invoke Avail from your servers. The purpose of this interface is to be able to use Avail for recommendations in order confirmation mails, call-centers, in-store kiosks and more. Due to the inherent latency of calls over the Internet, it is not advisable to use the server side API for high volume calls where low latency is critical, such as recommendations on web pages and newsletters.

Exclude Items in Shopping Cart
If this setting is checked and items added to cart is logged with logAddedToCart, items in a session's shopping cart will not be recommended to that session. To enable logging of non-recommendations added to cart, the TrackingCode argument has been made optional in logAddedToCart.

Do not hesitate to give us feedback on these new features and further suggestions.
/Henrik Schinzel
CTO Avail Intelligence

2010-02-10

New Features On Avail SaaS

We are very excited to announce a slew of important new features on Avail SaaS. We will roll out the new features to all SaaS customers over a period of two weeks starting this week.

There are three new features which we have named the "Big Ones" as we deem that these will bring large benefits for our customers. The Big Ones are:
  1. A/B Testing - Will let you easily set up A/B tests of Avail templates to find optimal settings.
  2. Template Tracking - Allows you to track a lot of metrics on individual templates.
  3. Improved Recommendations - An addition to the algorithm improves the quality of the recommendations.
I hope you enjoy the fruits of our hard labor!
/Henrik Schinzel
Co-founder & CTO Avail Intelligence
    A/B Testing - Big One 1
    A/B Testing will allow you to easily and rapidly set up A/B tests of templates. The purpose of A/B testing templates is to optimize the settings used. Example of tests that you might want to do:
    • should the price rule on the shopping cart template state that the price should be less than 10, 15 or 20?
    • should you should display three or four recommendations on the product detail page?
    • should the third recommendation shown be a product on sale or a new release?

    You can
    • Create up to five variations of a template
    • Assign a percentage to the variations that sets how much traffic the variation gets
    • Set start and end date-time
    • Edit the variations like a normal template
    When the test finishes a report with the results of the tests will be generated that you can access in the Control Panel, and if you have set an e-mail address the report will be sent to you.

    Some of the metrics available in the tests:
    • Sales
    • Conversion Rates
    • Average price purchased recommendation
    • Number of displays
    Implementation Required 
    Requires Template Tracking
    Automatic

    Template Tracking - Big One 2
    Several customers have expressed the desire to have detailed metrics in Avail. We have heard you and are happy to announce Template Tracking. This will allow tracking individual templates on metrics such as
    • Sales
    • Number of clicks over number of views
    • Number of views
    • Average price of recommendation purchased from a template
    • and more ...
    The data will be visible in the Metrics area




    with a lot of metrics to choose from
    Implementation Required
    The implementation required - assuming that metrics is already used - is to use the new methods:
    • logClickedOn(ProductId, TrackingCode)
    • logAddedToCart(ProductId, TrackingCode)
    when a recommendation is clicked on or added to cart. The TrackingCode is returned with the recommendations.

    Improved Recommendations - Big One 3
    The quality of the recommendations has been be improved. To what degree will vary from customer to customer. What has been done is a more effective noise reduction. Noise is data that makes it more difficult for a computer to correctly classify something. If you have a product that has sold really well like the book The Da Vinci Code by Dan Brown this has noisy data and causes noise as it is connected to so many different people and products. The new algorithm more effectively reduces the noise from data that is not as relevant and therefore is able to produce better recommendations.

    Implementation Required
    Automatic

    Summary of the Big Ones
    To recap the three new important features:
    • A/B Testing - Will let you easily set up A/B tests of Avail templates to find optimal settings.
    • Template Tracking - Allows you to track a lot of metrics on individual templates.
    • Improved Recommendations - An addition to the algorithm improves the quality of the recommendations.
    Auto Categorize
    Auto Categorize solves the problem of categorizing the recommendations and more importantly the fallback recommendations. If category filters are not used with recommendations requests on a product detail page and there are no real recommendations the fallback recommendations are a plain top-list with no relationship to the product currently viewed. For example, if viewing a goth metal album that no one has bought and no categories filters are used, the recommendations will be from the top list and typically be products like albums from Britney Spears and Justin Timberlake which will most likely not appeal to the goth metal crowd.


    Auto Categorize applies to recommendations based on a single product, a set of products or a user. If used, the returned recommendations and fallback recommendations will automatically be submitted to a category filtering based on the categories of the input. In the example above, if the goth metal album belongs to the categories Goth and CD the returned recommendations will be from the top-list but within the categories Goth AND CD and thus much more relevant.

    Logic
    If the input is one product
    • The returned recommendations will belong to all of the categories of the argument product.
    • An AND-relationship between the categories of the argument product.
    If the input is several products
    • The returned recommendations will belong to all of the categories of argument product 1 or all of the categories of argument product 2 and so on.
    • An AND-relationship between the categories of each argument product and an OR-relationship between these.
    If the input is a user
    • The logic of several product is applied to the purchases of the argument user.
    Implementation Required
    Automatic

    Cart Recommendations
    To optimize the quality of the shopping cart recommendations Avail now supports cart recommendations that is intended to catch cart specific behavior such as recommending a toner with a printer.

    Implementation Required
    When uploading transaction history there is a new optional column, order id. There is a new method getCartPredictions that returns shopping cart recommendations. To incrementally add more order data the method logPurchase now accepts an OrderId as optional argument.

    Maximum Number of Recommendations from a Template
    With the new release it will be possible to set the maximum number of recommendations a template returns no matter how many recommendations the subtemplates are set to return.

    The reason for this feature is that in some implementations of Avail a limitation on the number of recommendations has been hard coded in the web layer. This hampers the merchandiser in that he or she cannot readily change the number of products that are returned from a template using the Control Panel. To change the number of recommendations displayed the merchandiser needs to request resources from the techies.
    By adding this feature there is no need to implement a hard coded limitation on the number of recommendations rendered in the web layer. The merchandiser can control the number of recommendations returned without bothering the techies. Also, by adding this feature it is one less thing for the techies to do when implementing Avail if this behavior is desired.

    Complex Templates
    This feature also enables more powerful merchandising. For example, we can create a template that is set to return a maximum of three recommendations that has three subtemplates:

    • Subtemplate 1 - returns three recommendations with Price < 5, no fallback recommendations
    • Subtemplate 2 - returns three recommendation with Price < 10, no fallback recommendations
    • Subtemplate 3 - returns three recommendations with Price < 15, use fallback recommendations
    The result is a template that generates three recommendations that are as cheap as possible. This as achieved as the first subtemplate generates as many real recommendations as possible that cost less than 5. If there is not enough real recommendations that cost less than 5, real recommendation that cost less than 10 will be added. And lastly if it will add real recommendations that cost less than 15 and use fallback if necessary. This is just one example with what you can do.

    Implementation Required
    Automatic

    Category Names
    Avail now supports category names. If category names are uploaded these will be displayed in the Control Panel instead of category identifiers.

    Implementation Required 
    New upload: CategoryNames

    Find My Twinsumer
    A new method accepts a user identifier as argument and returns the user with the most similar behavioral pattern. This feature does not stand on its own but is a powerful feature to any e-commerce website, because it allows visitors to the site to quickly identify "people like me" (anonymously) and then implicitly ask these "Twinsumers" for product-related information and recommendations.
    The way a retailer can use this function is e.g. to publish the following functionality on any of their website pages. "Find My Twinsumers (people like me), and then:
    • get a list of products these Twinsumers have purchased (optional: in this category)
    • get a list of products these Twinsumers have written a review about (optional: in this category)
    • get a list of products these Twinsumers have given a rating higher than X (optional: in this category)
    • get a list of products these Twinsumers would probably also have bought, had they come to our site today (optional: in this category)
    • let me ask them a question (via anonymous email/messages that the site can distribute without disclosing personal email addresses)
    • let me send them "invites" to any community of choice like Facebook, Twitter, LinkedIn, etc (via anonymous email the retailer distributes)
    Implementation Required
    New method: getTwinsumers

    Clickstream Tracking & Recommendations
    Avail now automatically collects data on which products visitors have clicked on and enables recommendations on this clickstream data. The products clicked on by a user is collected with getTemplateClickstreamPredictions and logClickedOn. The purpose of this feature is to enable more rapid integrations.

    Implementation Required
    Requires Template Tracking.
    New method: getClickstreamPredictions

    Multiple Currencies
    Metrics now has multi currency support. With this it is possible to log purchases in different currencies. The purpose is to facilitate integrations. Note, there is no automatic currency conversion.

    Implementation Required
    New optional argument in logPurchase: logPurchase(..., [Currency], ...)

    Expanded Identifiers (AlphNumString)
    The data type for user, product and category identifiers (AlphNumString) now supports three more characters:
    • at sign (@)
    • full stop (.)
    • hyphen-minus (-)
    Implementation Required
    Automatic

    Recommendation Reinforcement - Beta
    This is a beta feature which is disabled by default and will be evaluated over next few months.
    Some products trigger customers to buy more than others. The purpose of this feature is to give a bump to the prediction score for products that have a high inherent conversion rate. This will make these high converters more likely to be recommended.
    This is especially useful for products that are not so easily found. Some products are easily found because:
    • they are prompted - on the first page, on category landing pages, on banners and so on
    • rank high in the search results
    • are famous on their own accord such as the iPod
    There typically exists a set of products that are high-converters that has not been caught by the merchandisers and thus are not prompted. But when a user stumbles over these high-converters these are more likely to trigger a sale than the average product. By giving these high-converters a bump in the predictions score, Avail will automatically promote them in the recommendations.
    Logic
    The increase of the prediction score is the ratio: the number of purchases to the number of clicks. The maximum increase in prediction score is 20%. This logic is likely to change over time.

    Implementation Required
    Requires Template Tracking
    Automatic

    2009-07-10

    Landing Page Recommendations in Avail SaaS

    Avail SaaS has a new feature, landing page recommendations. This allows e-commerce sites to create a dynamic landing page that will display products based on the search phrase used on an external search engine such as Bing or Google.
    Avail will continue to roll out functionalities from the eMarketing Suite onto Avail SaaS.

    2009-06-29

    Maintenance Release

    Avail has just released a maintenance release, G8.0.31. It is an incremental upgrade to G8.0.21 that was released at the end of last year. This release contains a set of bug fixes and set of minor new features. The upgrade is available free of charge to all existing customer using the eMarketing Suite. Contact support[at]avail.net for more information.

    Important updates:
    • The Microsoft drivers have been deprecated as these cause JRE crashes and memory leaks. JTDS drivers have been added instead.
    • New Logger that logs to standard out. Very useful during debugging and development.
    • CIB is now more memory efficient and has improved multithreading.
    • FileLogger now has rolling seven day file log.
    • Unpublic reviews do not contribute to average rating anymore.
    • New command added addBillingReport. This sets up a monthly report that sends billing info to Avail.

    Important Bug fixes:
    • Float arguments were incorrectly set to 0 before.
    • The Web Prompt has been updated to handle encodings correctly in IE and results are no longer cached in IE.
    • NTEventLog now works when running on a 64 bit JRE.
    • Before uploadCibData always reset protest limit to default value -1.
    • Windows service max memory setting was previously ignored.
    For a full list contact Avail Intelligence.

    2009-05-12

    Avail SaaS launched


    Avail is proud to announce that Avail SaaS has launched. Starting now Avail offers recommendations as a software as a service.

    For those of you who are acquainted with the eMarketing Suite we have launched the functionalities of the Navigation Predictor and the Social Search Optimizer first. More modules will be added in the near future.

    Recommendations are requested client-side on the browser using JavaScript in a solution similar to Google Analytics and other well known SaaS services. The recommendations are administrated using the Control Panel in the same manor as the local install version of the eMarketing Suite.

    Check out the details at www.avail.net/saas


    Avail SaaS is hosted on Amazon Web Services (AWS) for reliability and scalability. Hosting on Amazon offers the possibility to add a large set of machines to our cluster within minutes. Also, the solution is hosted at two physically separated data centers for reliability.

    AWS is what is referred to as a Platform as a Service (PaaS). Developing on a PaaS is fantastic, especially if you have experience with setting up physical servers. No more power outages, maxed out power, cooling that stops working, redrawing of cables, following unlabeled cables and so on and so on. At first it was a bit of a threshold and there still are some challenges, but once past this the flexibility offered with a PaaS is fantastic. With PaaS hardware architecture becomes as easy to remodel as software architecture. Also, it affects software design as it adds a new axis of freedom - CPU. Before CPU was a fairly static maximum that was core in the design. Now with a PaaS one can start up 20 powerful machines for an hour to crunch some numbers and then shut them down. For example, an e-commerce site typically has a peak after lunch and after work, in between there is a lot of unused CPU. With a PaaS machines can be added to handle the peak loads and then scaled down to the number of machines that are appropriate for load. There have been services similar to AWS before, but nothing as easy and flexible as AWS. Noteworthy competitors to AWS are MS Azure and Google App Engine.