# Cross-Site Recommendations on Article Page

> Source: https://docs.recombee.com/recipes/news/article/cross-site-recommendations

> For the complete documentation index, see [llms.txt](/llms.txt).

**Table of contents**

* [Introduction](#introduction)
* [Scenario Setup](#scenario-setup)
* [Logic](#logic)
* [Filters](#filters)
* [Constraints](#constraints)
* [Requesting Recommendations](#requesting-recommendations)

# Cross-Site Recommendations on Article Page

![](/img/recipes/news/cross-site-recommendations-on-article-page.png) 

## Introduction

**Cross-Site Recommendations** enable news platforms operating multiple sites to recommend articles from across their entire network. This helps drive traffic between properties while ensuring that recommendations remain relevant to the user's interests.

There are two primary use cases:

1. Recommending articles on **topics related to the current article**, but from different sites.
2. Recommending articles from other sites **based on the user's history** and preferences.

## Scenario Setup

In the Recombee Admin UI, navigate to the **[Scenarios](/scenarios)** section and choose **Create Scenario**.

1. Enter a **Scenario ID**, such as _"cross-site-related"_.
2. Choose **Recommendation type** \- _[Items to Item](/api#recommend-items-to-item)_.

![Admin UI - Scenario Setup](/img/recipes/news/cross-site-related-create-scenario.png)

## Logic

The [Logic](/recommendation_logics) defines the behavior of the recommendation engine.

* Select the **[news:related](/recommendation_logics#news-related)** Logic from the **News** model family to recommend articles on topics related to the currently viewed article.
* Alternatively, select the **[news:personal](/recommendation_logics#news-personal)** Logic from the same category if you want the recommendations to be primarily based on the user’s reading history and preferences.

![Admin UI - Logic](/img/recipes/news/cross-site-related-logic.png)

## Filters

Excluding Articles from the Current Site

Since all articles from all sites are stored in a single Recombee database, use the item property that indicates the source site (e.g., `siteId`) to exclude content from the current site.

1. Navigate to the **Business Rules** section and **Create Rule**.
2. In the editor, set the [ReQL](/reql) filter expression:  
ReQL  
```  
'siteId' != context_item["siteId"]  
```  
The [context\_item](/reql_functions#context-item-function) ReQL function references the currently opened article.
3. Store the rule by clicking _Create Rule_.

![Admin UI - Business Rules](/img/recipes/news/cross-site-related-filter-rule.png)

1. After creating the rule, apply it in the _Filters_ section of the Scenario.

![Admin UI - Scenario Filters](/img/recipes/news/cross-site-related-filters.png)

## Constraints

Ensure Diversity Across Sites

To showcase the breadth of your network and avoid over-representing any single site, you can apply a [Constraint](/scenarios#constraints) to **limit the number of recommended articles per site**. To set this up:

1. Navigate to the [Constraints](/scenarios#constraints) tab of the Scenario and click **Add Constraint**.
2. Select or create an [Segmentation](/segmentations) that groups articles by site (e.g., using a `siteId` property).
3. Define the **Limit Type**:  
   * **Absolute** to allow a maximum number of articles from a single site (e.g., up to 2).  
   * **Percentage** to ensure no more than a defined share of items come from one site (e.g., max 50%).

This setup ensures that the recommendations include content from a variety of sources, reinforcing the value of your full portfolio.

![Admin UI - Constraint](/img/recipes/news/cross-site-constraints.png)

## Requesting Recommendations

There are three ways to integrate Cross-Site Recommendations.

1. **[No-Code Widget](/no-code-widgets)** – create a No-Code Widget using the **visual editor in the Admin UI** to embed cross-site recommendations with zero coding.
2. **[Widget SDKs](/widget-sdks)** – use the SDK to display the recommendations as a [Carousel](/widget-sdks#carousel), [Grid](/widget-sdks#grid), or [Feed](/widget-sdks#feed).  
Use the [Recommend Items to User](/api#recommend-items-to-user) or [Recommend Items to Item](/api#recommend-items-to-item) endpoint when initializing the widget.
3. **[API SDK](/api_clients)** – request the appropriate API endpoint using a client SDK of your choice:  
   * **[Recommend Items to Item](/api#recommend-items-to-item)** – for recommendations based on the currently viewed article.  
   * **[Recommend Items to User](/api#recommend-items-to-user)** – for personalized content based on the user's behavior.