Analytics & Reports
Analytics
StoreFront

Personalized Offers and Deals

Business Goal: We want to show our customers sales pages that are targeting brands and categories that they are interested in.

This can be accomplished by using 2 aspects of the platform:

  1. Ability to get the most popular navigations for a specific visitor (that is, to know which brands and navigations they clicked on the most)
  2. Ability to layer in additional biases on the fly as part of the Search API events

In the above preview you can see how a generic landing page transforms into tailored results.

By using bias and not filter we ensure that if there are not enough products in the preferred categories, the shopper will still see the remaining products.

Getting Popular Navigations For A Visitor

We will use the refinements endpoint to get the popular refinements for a specific visitor.

You can use visitorId or loginId, depending on the available customer data:

Visitor ID:
curl -H "Authorization: --clientKey--" \
    -XPOST "https://--customerId--.groupbycloud.com/wisdom/v2/recommendations/refinements/_getPopular" \
    -d '{"window":"month", "matchExact":{"and":[{"visit":{"customerData":{"visitorId":"--current visitor ID--"}}}]}}'
Login ID:
curl -H "Authorization: --clientKey--" \
    -XPOST "https://--customerId--.groupbycloud.com/wisdom/v2/recommendations/refinements/_getPopular" \
    -d '{"window":"month", "matchExact":{"and":[{"visit":{"customerData":{"loginId":"--current login ID--"}}}]}}'

The response will look like:

json
{
  "status": {
    "code": 200,
    "message": "OK",
    "additionalInfo": null
  },
  "result": [
    {
      "name": "category1",
      "values": [
        {
          "value": "Women",
          "count": 4
        }
      ]
    },
    {
      "name": "category2",
      "values": [
        {
          "value": "Women's Shoes",
          "count": 4
        }
      ]
    },
    {
      "name": "brand",
      "values": [
        {
          "value": "Nike",
          "count": 3
        },
        {
          "value": "Aldo",
          "count": 2
        },
        {
          "value": "Nine West",
          "count": 1
        }
      ]
    }
  ],
  "serverTimestamp": "2017-04-01T01:01:01+00:00"
}

Personalizing The Results

The Search API allows you to influence the results by adding additional biases at query time. The merchandiser driven biasing profile will continue to apply.

In your sales page, you will add a new query time parameter of biasing to your sales category query:

json
{
  "biasing": {
    "influence": 5,
    "augmentBiases": true,
    "biases": [
      {
        "name": "category1",
        "content": "Women",
        "strength": "Strong_Increase"
      },
      {
        "name": "category2",
        "content": "Women's Shoes",
        "strength": "Strong_Increase"
      },
      {
        "name": "brand",
        "content": "Nike",
        "strength": "Strong_Increase"
      },
      {
        "name": "brand",
        "content": "Aldo",
        "strength": "Strong_Increase"
      },
      {
        "name": "brand",
        "content": "Nine West",
        "strength": "Medium_Increase"
      }
    ]
  }
}

Note that for the navigation with the fewest clicks we apply a Medium_Increase strength.

The way that biasing works is that:

  • items that match the most biases will rise the highest
  • items that match fewer items, will be below those
  • finally, items that matched no biases - but are still within the recall set - will be returned below that.

This means that if we are sold out of all the preferred brands, the sales page will still show Women’s Shoes, or at least Women’s category items.