In this article, we provide descriptions of all existing recommendation models that you can find in `Campaigns > Recommendations > Create new`. Those marked as **[BETA]** have only been released recently and are still under testing.

Under each model, there is a list of the following properties: **Type:** Model can be either “Rule-based” or “AI model” and "personalized" or "non-personalized".

  • **Rule-based:** based on fixed rules. These models are ready to serve immediately after saving the template.

  • **AI model:** driven by a machine learning algorithm. Training algorithms are usually run over the night, so the model is ready for the next day.

  • **Non-personalized:** model is searching for the items that are **shown to all customers**. Such a model can be driven by events (like "top-selling products") or by catalog metadata (gender, categories, color, etc.)

  • **Personalized:** model is searching for behavioral similarities between customers and offers items **tailored to each individual customer**. These models require a bigger bulk of events for analysis (at least a few months' timeframe).

**Usage:** defines for which e-commerce aim is the model useful **Requirements:** set of requirements needed for the model to be working **Requesting:** how to request your recommendations from the saved model. The standards are described in more detail in the [Integration chapter](🔗). However, additional standards can be also included in the body of the request such as `currently viewed item ID` or `category names`. **Functionality:** description of the inner logic

# Simple non-personalized templates

2576


## Popular right now

**Type:** Rule-based, non-personalized **Usage:** Top selling or viewing products **Requirements:** events tracking, imported catalog **Requesting:** standard **Functionality:** Shows products sorted by the count of one selected popularity event (typically purchase_item or view_item). The values are periodically re-calculated every 12 hours.

## New items

**Type:** Rule-based, non-personalized **Usage:** Promote newest products **Requirements:** imported catalog containing datetime (or any numerical column describing the date of when the product was added). **Requesting:** Catalog imported to Bloomreach Engagement. **Functionality:** Shows sorted products in descending order that was recently added to the selected product catalog.

## More like this

**Type:** Rule-based, non-personalized **Usage:** Finds items similar to a reference item (e.g. an item a customer is currently viewing) based on shared catalog properties. **Requirements:** product catalog, catalog item identifier **Requesting:** ID of the reference item **Functionality:** Shows products similar to the reference item, such as one currently viewed by the customer, based on shared catalog properties. The system will use the ID of the reference item to find the closest matching products to recommend.

## Filter based

**Type:** Rule-based, non-personalized **Usage:** find items that fulfill the catalog filter **Requirements:** imported catalog **Requesting:** Catalog imported to Bloomreach Engagement. **Functionality:** Shows randomly selected products fulfilling the catalog filter but cached once per 30 seconds. **Limitations:** Dynamic catalog filter from the get-recommendation request is ignored.

# Advanced non-personalized templates

1519


## Customers who bought this item also bought

**Type:** AI model, non-personalized **Usage:** Up-selling, cross-selling complementary products on the product detail page or basket page. Also useful in reactivation emails. **Requirements:** events tracking, imported catalog, at least 6 months of purchase_item history **Requesting:** The currently viewed item can be included in the request. **Functionality:** Shows items that are the most frequently bought together with the item currently viewed by the customer. Typically, the recommendations are complementary items to the main product, such as accessories for a smartphone. For the use-case of showing complementary products in the shopping cart, it is suggested to include the ID of the product which was added to the cart so that the engine can render the [Recommendations based on the context of the customer's last actions](🔗).

## Metric-based category

**Type:** Rule-based, non-personalized **Usage:** Top-selling products within certain categories on the category page or product detail page **Requirements:** event tracking (at least one event for metric), imported catalog **Requesting:** add a list of desired category names to the request (see [Integration chapter](🔗) & [Product discovery Use Case](🔗)) **Functionality:** Shows products **only from the given category (or categories)** that are sorted according to the chosen metric - e.g. a number of purchases or views. Items are sorted from the highest metric value to the lowest one. After saving the model, the calculations are automatically made and stored. The values are thereafter periodically re-calculated every 12 hours. **Notes:** For minimization of recommendation latencies, we calculate your metric for the first 1000 categories (unique categories from category identifier defined in template settings) immediately after saving. If you have made a change to the settings it can take some time for the results to come into effect. If you are in need of immediate change, we suggest creating a new engine.

If there is no historical purchase at all, we use the same “Popular right now” fallback.

**Limitations:** Metric pre-computation (when the engine is saved) is executed on the only first 1000 categories. The model is able to recommend a maximum of 500 items per category. Catalog filter (1st step of engine setup & dynamic catalog filter from the get-recommendation request) are executed as post-filters on 500 recommended items. Cache results are re-computed based on the usage, if you want to use e.g. different events in engine setup, rather create a new engine than change it in the existing one (results from the original engine setup will be served another few days).

## Text model

**Type:** AI model, non-personalized **Usage:** Present products on the Product Detail page that are consistent and similar to the item currently viewed. **Requirements:** imported catalog containing textual information describing items. (e.g. attributes such as “description”, "name", "color", etc.)



Preferebly it should be a block of text, as a list of properties and their values are not suitable.

**Requesting:** The currently viewed item must be included in the request. **Functionality:** Shows products in order from the most similar one to the currently viewed by a customer. We are using the TF-IDF model to search for the similarities in terms of word frequencies. Additionally, you can choose attributes that will always be shared among recommended items and the requested item.

# Simple personalized templates

A group of personalized recommendation models that are easy to set up.

1529


## Customer recent interactions

**Type:** Rule-based, personalized **Usage:** Recommending products the customer has recently interacted with ("Continue where you left off" on popup banner, "Finish your order") **Requirements:** events tracking, imported catalog **Requesting:** standard **Functionality:** Shows the most recent products the particular customer was interacting with. You can choose the specific interaction event on which the recommendation should be based on (_view_item_, _purchase_item_, _cart_update_). Products are sorted from the most recent timestamps to the oldest ones.

## Homepage

**Type:** AI model, personalized **Usage:** Providing personalized recommendations on Homepage based on historical activity **Requirements:** events tracking, imported catalog, at least 2 months of purchase_item, view_item, and cart_update history **Requesting:** standard **Functionality:** This template reuses logic of **Personalized recommendation for you** template (see in \_Advanced personalized templates_) and is optimized for Homepage in terms of automatically selected learning window and real-time support of recently tracked events.

## Product detail

**Type:** AI model, personalized **Usage:** Showing alternative products to consider that were visited together by all customers on the product detail page **Requirements:** events tracking, imported catalog, at least 2 months of view_item history **Requesting:** The currently viewed item can be included in the request **Functionality:** This template reuses logic of **Customers who viewed this item also viewed** template (see in \_Advanced personalized templates_) and is optimized for the Product detail page in terms of automatically selected learning window.

# Advanced personalized templates

1563


## Personalized recommendations for you

**Type:** AI model, personalized **Usage:** Cross-sell, Personalized recommendations for you, we think you would like these, Based on your recently viewed products, Homepage **Requirements:** events tracking, imported catalog, at least 2 months of purchase_item and view_item history **Requesting:** The currently viewed item can be included in the request. **Functionality:** Shows products matching customer preferences based on purchasing and browsing history, including real-time events in the current session. These events define the user-item interaction matrix. The more users interact with the same items, the more we consider them similar.

  • **If item ID is included in the request** the AI model finds the top similar products to the requested product and ranks them by their similarity score. The similarity score is calculated using their shared events (bought, add to the cart, and viewed together). If there are too few shared interactions, the model fallbacks to the “Popular right now” technique where popularity is computed from interaction events defined in the template.

  • **If not** we take the user’s interaction history (purchases, views, cart updates), and the AI model finds top similar users. Within similar users, the model looks for items with the highest probability of interaction for a requested user and returns them as recommendations. If there are too few historical interactions, the model retrieves the last 3 viewed products from App and runs the **“If included”** steps for these items. Recommendations are then sorted from newest to oldest according to the retrieved products. If there is no historical purchase at all, we use again the “Popular right now” fallback with the popularity given as the event with the most interactions.

## Customers who viewed this item also viewed

**Type:** AI model, personalized **Usage:** Alternative products to consider, Similar products, You might also like these, Product detail page. **Requirements:** events tracking, imported catalog, at least 2 months of view_item history **Requesting:** The currently viewed item can be included in the request. **Functionality:** Shows items that are chronologically visited together by all users based on the item currently viewed. Typically the AI model recommends alternative products while the customer is browsing through a specific category or set of products.

  • **If item ID is included in the request** the AI model finds the top co-occurred products based on the user’s session and sorts them by relevance. If there are too few historical views, the model will recommend _most viewed products_.

  • **If not** we take the user’s last 3 viewed products tracked by Bloomreach Engagement and run the `if included` steps for these items. Recommendations are then sorted chronologically according to the retrieved products. If there is no historically viewed item, we use again the “most viewed products” fallback.

## Personalized category page [BETA]

Personalized Category Recommendation Engine deprecation

Effective from 22nd of June 2023, the Personalized Category Recommendation Engine will be deprecated and will no longer be available for use. Already created engines will continue to work until 15th of July 2023. We are sorry for any inconvenience and advice to transit existing Personalized Category Recommendation Engines to Metric based category or Personalized for you engine.

**Type:** AI model, personalized **Usage:** Cross-sell, Personalized recommendations for you, We think you would like these, Personalized category recommendation, Personalized ranking of your category page, Category page, Homepage **Requirements:** events tracking, imported catalog, at least 2 months of purchase_item, view_item, and cart_update history, a catalog containing category and DateTime (see also [Personalized experience Use Case](🔗) **Requesting:** customer and a list of desired categories (see [Integration chapter](🔗))

**Functionality:** Shows products from specified categories ranked by customer preferences based on purchasing and browsing history. These events define the user-item interaction matrix. The more users interact with the same items, the more we consider them similar.

Individual products in the category are ranked based on user preferences. For example, if a given customer prefers dark chocolate, our engine finds other similar customers based on this preference and recommends items that they like. Furthermore, items are sorted based on the frequency of purchases of other users and only items that the customer has not purchased yet are recommended.

As a fallback (for customers with only a few purchases - customers for which we are not able to distinguish their style), we recommend attractive products. Attractive/trending products are currently the most viewed & purchased products in the desired categories.

**Limitations:** Catalog filter (1st step of engine setup & dynamic catalog filter from the get-recommendation request) are executed as post-filters on the N recommended items, where N corresponds to `count` from the get-recommendation request. Based on the experimental results, the engine works well in the case of sorting up to 10,000s items. E.g. if CategoyNames = ["t-shirt", "trousers"] and category `t-shirt` has 2,500 items and `trousers` has e.g. 15,000 items the latency is as expected. In the case when we use too general category e.g. `woman` with 250,000 items, sorting can be slow and recommendation latencies can be higher (a potential problem in the web-usage use cases).

# Fallback templates present in [Advanced template](🔗)

1567


These are models intended as a fallback (support model in case the main one fails to personalize) while designing a combination of models in **Advanced template**.

## Manual selection

**Type:** Rule-based, non-personalized **Usage:** Promote a certain, manually-chosen set of products (sponsored, on-sale, etc.) **Requirements:** just imported catalog **Requesting:** standard **Functionality:** Shows products picked manually by their IDs. All customers will see the same items.

## Chosen by metric

**Type:** Rule-based, non-personalized **Usage:** Top selling or viewing products **Requirements:** event tracking, imported catalog **Requesting:** standard **Functionality:** Shows products sorted according to chosen metric - e.g. the number of purchases or number of views. Naturally, we sort items from the highest metric value to the lowest one. The whole calculation can take a few seconds, then the results are stored and re-calculated periodically. Note that the calculation is subject to a 5-minute cache (results are updated every 5 minutes).