Skip to content

Recommendation best practices

Voyado Elevate offers eight recommendation algorithms. They can be used or applied in different parts of a site. This guide provides suggestions on which Elevate recommendations would suit which part of a site. To learn more about including recommendation lists on a page, see Page configurations.

Overview

The table below shows the mapping between the recommendations and where on a site to use them. It is important to understand the mapping is a suggestion and not a restriction for POST requests. When configuring pages in the Experience app, the available algorithms are limited to TOP_PRODUCTS, PERSONAL, NEWEST_PRODUCT, and FAVORITE since they target landing pages exclusivly.

Algorithm Where to use?
ALTERNATIVES Product details page
CART Cart/Checkout page
FAVORITE Homepage or Landing page
NEWEST_PRODUCT Homepage or a Landing page (likely dedicated to new arrivals)
PERSONAL Homepage or Landing page
STYLE_WITH Product details page
TOP_PRODUCTS Homepage
UPSELL Product details page or Add-to-cart fly-out

Alternatives

The Alternatives recommendation is suitable to use on a product details page. It returns products that are visually and functionally similar to the product the visitor is viewing. The product that the visitor is viewing is declared in the productKey in the query parameter.

Example

//request-body.json
{
  "productGroup" : {
    "include": true
  },
  "recommendationLists": [
    {
      "id": "PDP-1",
      "algorithm": "ALTERNATIVES"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{{cluster-id}}.api.esales.apptus.cloud/api/v2/queries/product-page?market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&productKey=AD_0682_P_290_011" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.productPage(
  { productKey: 'AD_0682_P_290_011' },
  {
    productGroup : {
      include: true
    },
    recommendationLists: [
      {
        id: 'PDP-1',
        algorithm: 'ALTERNATIVES'
      }
    ]
  }
);

Cart

The Cart recommendation is suitable to use on a cart or a checkout page. It returns products that are likely to be bought based on the products in the visitor's current cart.

Example

//request-body.json
{
  "recommendationLists": [
    {
      "id": "CART-1",
      "algorithm": "CART"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{cluster-id}.api.esales.apptus.cloud/api/v2/queries/cart-page?cart=AD_0589_P_549_015_XS|AD_0738_P_913_002_27&market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP"  \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const res = await api.query.cartPage(
  {
    cart: ['AD_0589_P_549_015_XS', 'AD_0738_P_913_002_27']
  }, {
    recommendationLists: [{
      id: 'CART-1', algorithm: 'CART'
    }]
  }
);

Favorite

The Favorite recommendation is suitable to use on the homepage or on a landing page. It returns products based on what a visitor has added to their favorite list; not the favorite list itself. It is important to remember that this recommendation performs better when there is a visitor with a known behaviour that is identified via a customer key. For more information about identifying visitors, see Visitor identification.

Example

//request-body.json
{
  "recommendationLists": [
    {
      "id": "FAV-1",
      "algorithm": "FAVORITE"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{cluster-id}.api.esales.apptus.cloud/api/v2/queries/landing-page?market=US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&pageReference=/" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.landingPage(
  { pageReference: '/' },
  {
    recommendationLists: [
      { id: 'FAV-1', algorithm: 'FAVORITE' }
    ]
  }
);

Newest product

The Newest Product recommendation is suitable to use on a landing page dedicated for new arrivals. It returns products sorted by newness. Elevate determines newness based on the release_date attribute supplied in the data feed.

Example

//request-body.json
{ 
  "recommendationLists": [
    {
      "id": "NEW-1",
      "algorithm": "NEWEST_PRODUCT"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{cluster-id}.api.esales.apptus.cloud/api/v2/queries/landing-page?market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&pageReference=/new-arrival" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.landingPage(
  { pageReference: '/new-arrival' },
  {
    recommendationLists: [
      { id: 'NEW-1', algorithm: 'NEWEST_PRODUCT' }
    ]
  }
);

Personal

The Personal recommendation is suitable for use on the homepage or a landing page. It returns products related to what a visitor has interacted with. It is important to remember that this recommendation performs better when there is a visitor with a known behaviour that is identified via a customer key. For more information about identifying visitors, see Visitor identification.

Example

//request-body.json
{
  "recommendationLists": [
    {
      "id": "PERSONAL-1",
      "algorithm": "PERSONAL"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{cluster-id}.api.esales.apptus.cloud/api/v2/queries/landing-page?market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&pageReference=/new-arrival" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.landingPage(
  { pageReference: '/' },
  {
    recommendationLists: [
      { id: 'PERSONAL-1', algorithm: 'PERSONAL' }
    ]
  }
);

Style with

The Style with recommendation is suitable to use on a product details page. It returns products that go well together with the product currently viewed by a visitor. For example, a visitor is on the product detail page of a digital camera. The camera goes together with a certain type of accessories sich as lens, a battery, and a cable. The product currently viewed is declared in the productKey in the query parameter. The products that go together must be specified in the data feed using the style_with attribute.

Example of Style With Recommendation

Example

//request-body.json
{
  "productGroup" : {
    "include": true
  },
  "recommendationLists": [
    {
      "id": "PDP-1",
      "algorithm": "STYLE_WITH"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{{cluster-id}}.api.esales.apptus.cloud/api/v2/queries/product-page?market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&productKey=AD_0682_P_290_011" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.productPage(
  { productKey:'AD_0682_P_290_011' },
  {
    productGroup : { include: true },
    recommendationLists: [
      { id: 'PDP-1', algorithm: 'STYLE_WITH' }
    ]
  }
);

Top products

The Top products recommendation is suitable to use on the homepage. It returns the most relevant products based on all visitors' interactions, stock level, newness, and selected exposure strategy.

Example

//request-body.json
{
  "recommendationLists": [
    {
      "id": "TOP-1",
      "algorithm": "TOP_PRODUCTS"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{cluster-id}.api.esales.apptus.cloud/api/v2/queries/landing-page?market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&pageReference=/new-arrival" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.landingPage(
  { pageReference: '/' },
  {
    recommendationLists: [
      { id: 'TOP-1', algorithm: 'TOP_PRODUCTS' }
    ]
  }
);

Upsell

The Upsell recommendation is suitable to use on a product detail page or an add-to-cart fly-out. It returns recommendations that are complementary to or likely to be bought together with the viewed product, or likely to be considered by other visitors. The productKey must be supplied in the query parameter for Elevate to recommend other complementary products.

Example

//request-body.json
{
  "productGroup" : {
    "include": true
  },
  "recommendationLists": [
    {
      "id": "PDP-1",
      "algorithm": "UPSELL"
    }
  ]
}
#!/bin/bash
curl -X POST \
"https://{{cluster-id}}.api.esales.apptus.cloud/api/v2/queries/product-page?market=US&locale=en-US&sessionKey=4b116e34-0a7a-ce5d-5591-75c62f231967&customerKey=4b116e34-0a7a-ce5d-5591-75c62f231967&touchpoint=DESKTOP&productKey=AD_0682_P_290_011" \
-H 'Content-Type: application/json' \
-d @request-body.json
const api = esales({ clusterId: 'w00000000', market: 'US', locale: 'en-US', touchpoint: 'desktop' });
const results = await api.query.productPage(
  { productKey:'AD_0682_P_290_011' },
  {
    productGroup : { include: true },
    recommendationLists: [
      { id: 'PDP-1', algorithm: 'UPSELL' }
    ]
  }
);

Tips

Combine recommendations

It is possible to combine two or more recommendations if relevant. For example, ALTERNATIVES and can be combined with UPSELL on a product detail page. The homepage can include TOP_PRODUCTS and PERSONAL or FAVORITE. These combinations can be specified in the request body when sending a POST request.

Below is an example of a page configuration where the ALTERNATIVES and UPSELL recommendations are used.

  {
    "recommendationLists": [
      {
        "id": "PDP-1",
        "algorithm": "ALTERNATIVES"
      },
      {
        "id": "PDP-2",
        "algorithm": "UPSELL"
      }
    ]
  }

Targeted recommendations

Apply product rules to have a more focused selection of product recommendations. For example, when using TOP_PRODUCTS or NEWEST_PRODUCT recommendation, the recommendation can be limited to certain price range or certain categories. Product rules can be specified in the body of a page configuration.

Below is an example where the NEWEST_PRODUCT recommendation is limited to the Kitchen supplies department/category. This example is relevant to apply for a landing page that highlights new arrivals within a specific category.

  {
    "recommendationLists": [{
      "id": "rec-1",
      "algorithm": "NEWEST_PRODUCTS",
      "productRules":  "rule incl department {\"Kitchen\"}"
    }]
  }

Below is an example where the TOP_PRODUCTS recommendation is limited to products with prices up to 150 in the local currency.

  {
    "recommendationLists": [{
      "id": "rec-2",
      "algorithm": "TOP_PRODUCTS",
      "productRules":  "rule incl price [0, 150.01]"
    }]
  }
×
Copyright

This online publication is intellectual property of Voyado Lund AB. Its contents can be duplicated in part or whole, provided that a copyright label is visibly located on each copy and the copy is used in conjunction with the product described within this document.

All information found in these documents has been compiled with utmost attention to detail. However, this does not guarantee complete accuracy. Neither Voyado Lund AB nor the authors shall be held liable for possible errors or the consequences thereof.

Software and hardware descriptions cited in these documents might be registered trademarks. All trade names are subject to copyright restrictions and may be registered trademarks. Voyado Lund AB essentially adheres to the manufacturer’s spelling. Names of products and trademarks appearing in this document, with or without specific notation, are likewise subject to trademark and trade protection laws and may thus fall under copyright restrictions.

CLOSE