What a product feed is for
A product feed is a mirror of your catalogue for external systems. Every platform that needs to
know what you sell — a recommendation engine, an ad network, a marketplace — receives that data
through a feed.
In personalization the feed is critical: recommendation algorithms cannot operate without product
data. The more complete and current the feed, the more precise the recommendations.
Feed structure
The minimum required fields:
| Field | Type | What it is for |
|---|---|---|
product_id |
string | The unique product identifier |
title |
string | The name rendered inside the widget |
price |
decimal | The current price, needed for price-band personalization |
image_url |
url | The image for the recommendation widget |
category |
string/array | The category — the basis of content-based filtering |
availability |
boolean | Availability — excluding what cannot be bought |
url |
url | The link to the product page |
Additional fields that raise recommendation quality:
{
"product_id": "SKU-12345",
"brand": "Nike",
"category": ["Apparel", "Sport", "Sneakers"],
"gender": "male",
"color": "black",
"size": ["40", "41", "42", "43"],
"price": 79.90,
"old_price": 99.90,
"rating": 4.7,
"reviews_count": 128,
"availability": true
}
Why feed quality shows up in recommendations
Content-based algorithms compute similarity between items from their attributes. With no brand,
no category and no attributes, the algorithm cannot establish that these sneakers resemble those
ones. The result is irrelevant Similar items output.
Attribute-level personalization: a shopper’s affinity profile holds preferences by brand,
category and price band. If brand is empty in the feed, that part of the profile stays empty too.
Freshness: recommending an out-of-stock item is a direct conversion loss. The lag between stock
changing and the feed reflecting it should be as small as you can make it.
Refresh rates
| Data | Refresh rate |
|---|---|
| Availability | Real time, or every 30–60 minutes |
| Prices | One to four times a day, or on change |
| New products | Daily, or through an API webhook |
| Attributes and descriptions | Weekly, or on change |
Tip: do not resend the whole feed every time one price changes — that is wasted load. Use an
incremental API and send only the items that changed, with a last-updated timestamp.