In most cases, you'll want to make sure that the recommendations shown on the same page or viewscreen of your app are different from each other. If you are using multiple requests to populate your page (necessary to do if you are using different filters or rules to control what kind of content can appear in certain areas), you'll need to use one of the following options for LiftIgniter to correctly deduplicate items between requests. 


Option 1: Implicit Deduplication

LiftIgniter automatically deduplicates recommendations if the same userId and pageviewId values are sent for multiple requests AND a widget_shown event is received in between those requests. This tells our system that the first set was received and used. Without the widget_shown event, the duplicate request is treated as a retry (i.e. it assumes the first request failed) and the items in the second request will not be deduplicated against the first set of results. Requests must be sent serially, rather than in parallel so that our servers can process them serially and filter out results from the first request in the calculations of the second. 


Because of the serial nature of this deduplication, the order of requests matters. The first request made will get the highest ranked items, and the second request will get the next highest ranked items for that user. Make sure to display the best recommendations (i.e. the first request results) in the most visible or most interacted-with area to ensure best performance.


Option 2: Explicit deduplication

If you have items not recommended by LiftIgniter already being displayed on the page, and want to make sure they are not repeated in the LiftIgniter areas, you can send a list of items to exclude via the "excludeItems" parameter.


POST /v3/yourjskey/userid/model HTTP/1.1
Host: query.petametrics.com
Content-Type: application/json
x-api-key: YOUR_API_KEY
Cache-Control: no-cache

{
  "widgetName":"my-widget-name",
  "maxCount": 10,
  "url" : "https://www.domain.com/category/current-article-being-viewed",
  "excludeItems": ["https://www.domain.com/category/dont-show-this-url","https://www.domain.com/category/or-this-one"]
}