Skip to content

Recommendations

Personalized recommendations is one of the cornerstones of Relewise's service, and a core functionality of what we offer. With recommendations, you can help users navigate between relevant products more easily, and improve conversion rates for your products.

This page details some of the intricacies of Recommendations via Relewise. If you are looking for a list of the possible recommendations we offer, please refer to our recommendation types page.

Recommendation Weighting

Some recommendations, such as Popular/Personal Brand/Content Category/Product Category, come with a built-in weighting that allows you to control the relative weight that each parameter should count for the overall weighting of the recommendation results. These values, entered as a ratio, are relative to one another, and so do not differentiate between a 1:4 ratio, and a 5:20.

For example, a PopularProductCategory with the weighting CategoryViews = 1, ProductViews = 0, ProductPurchases = 0 will show categories entirely on the basis of the amount of views they have gotten.

Conversely, the same recommendation with the weighting CategoryViews = 1, ProductViews = 2, ProductPurchases = 4 will generate recommendations of categories where Product views are weighted twice as high as Category views, and where Product purchases are weighted twice as high as Product views, and four times as high as Category view.

TIP

It is important to note that any change to the weighting values of a recommendation will require a minute or two to process before the results returned will reflect the weights. This is due to Relewise having to recalculate the entity relations for the recommendation from scratch when a value is changed, which may incur a slight delay during computation.

Fill

If a recommendation does not have enough high-confidence product relations to fill out the recommendation slider, you may use the Fill function to populate the empty slots with products. This function will default to showing Popular products, but may be further customized through the use of Filters and Filter Scopes.

Fill is a toggleable setting that depends on the AllowFillIfNecessaryToReachNumberOfRecommendations flag to be set.

Filters

It is possible to apply a number of filters to your recommendations, to define how and when it should return results. These filters range from defining recommendation restrictions based on data key values, to filtering based on assortments, entity categories, or view- and purchase behavior tracked to the user. In this way, filters are designed to narrow and specify the scope of what we recommend to a user.

To find a list of available filters in Relewise, we refer either to our SDKs, available via our examples page. Alternatively, the filters can be found on our swagger page.

Filters may also be applied to searches.

Filter Scopes

Filter Scopes append to a filter in a recommendation request, and inform where the filter should take effect. This is related to the Fill function, which can be made to only draw from a particular pool of products such as parent category, product brand, etc.

When using a filter scope, there are two possible variations of where to apply this targeting:

  • Default, which will target the products that are being recommended with a high degree of confidence.
  • Fill, which will target the products that are being used to fill.

It is furthermore possible for the filter to apply to both Default and Fill, for situations when you might want to limit a product's entire recommendation scope to just one brand, category, assortment, or similar.

Below is an example of a ProductCategoryID filter, which uses Filter Scopes to define that the Fill function of the request should only find entities in the product's immediate parent category.

csharp
request.Filters.Add(new ProductCategoryIdFilter("category-id", CategoryScope.ImmediateParent)
    {
        Settings = new FilterSettings
        {
            Scopes = new FilterScopes
            {
                Default = new ApplyFilterSettings(false),
                Fill = new ApplyFilterSettings(true),
            }
        }
    });

Example of a filter scope being used to define a Parent Category ID filter to the Fill flag

Category Scopes

When employing a Filter Scope, such as ProductCategoryID, you may add a CategoryScope to help define the categories from which Relewise should filter the recommendation results.

Category Scopes come in three variants: ImmediateParent, ImmediateParentOrItsParent, or Ancestor.

ImmediateParent filters by the product's own parent category, and nothing else.

ImmediateParent Example

E.g. for the product Denim Shorts in the category hierarchy Clothes -> Trousers -> Shorts, ImmediateParent would return product recommendations from the Shorts category only.

ImmediateParentOrItsParent filters by the product's own parent category, and the category above that in the category hierarchy.

ImmediateParentOrItsParent Example

E.g. for the product Denim Shorts in the category hierarchy Clothes -> Trousers -> Shorts, ImmediateParentOrItsParent would return product recommendations from the Shorts category and the Trousers category.

Ancestor filters by the product's own parent category, and all subsequent categories in the category hierarchy.

Ancestor Example

E.g. for the product Denim Shorts in the category hierarchy Clothes -> Trousers -> Shorts, Ancestor would return product recommendations from the Shorts category. The product corduroy slacks in the Trousers category would return product recommendations from the Trousers category and the Shorts category.

Batching Recommendations

Similar to searches, Relewise allows for the grouping (batching) of Recommendation requests into a single call, which helps with performance and reponse times.

Specifically, you can use a ProductRecommendationRequestCollection or ContentRecommendationRequestCollection, which has the Requests property. Here, you can add a number of different RecommendationRequests to be served back to you in one go.

By furthermore using the RequireDistinctProductsAcrossResults property, you can further ensure that the recommendations you return in the batch do not share overlapping products, thus guaranteeing a maximum variety of products served.

Using the above method will return a ResponseCollection with a Responses collection. The index of this collection is automatically aligned with the index of the request to ensure ease of use.

Note that Product Recommendations can only be batched with Product Recommendations, and Content Recommendations can only be batched with Content Recommendations. If you require recommendations of both Products and Content to be delivered on the same page, you will need to do two separate (batched) requests.

csharp
var requestCollection = new ProductRecommendationRequestCollection(requireDistinctProductsAcrossResults: true);

var othersAlsoViewedRequest = new ProductsViewedAfterViewingProductRequest(
    language, 
    currency, 
    "Product details page", 
    user, 
    new ProductAndVariantId("...")
);

var othersAlsoPurchasedRequest = new PurchasedWithProductRequest(
    language, 
    currency, 
    "Product details page", 
    user, 
    new ProductAndVariantId("...")
);

requestCollection.Add(othersAlsoViewedRequest); //index 0
requestCollection.Add(othersAlsoPurchasedRequest); //index 1

var responseCollection = recommender.Recommend(requestCollection); // 1 single network request issued

var othersAlsoViewedResponse = responseCollection.Responses[0];
var othersAlsoPurchasedResponse = responseCollection.Responses[1];

Example of a batched Recommendation request

Don't know us? Don't worry - you can find more information about us, by visiting our main page www.relewise.com