Arithmetic, not a trained model.
The same history always gives the same scores.
OPTIMIZE · THE AFFINITY ENGINE
The affinity engine keeps a running score of each visitor's interest in the things your content is about. Every action you give points to adds to it, time away lets it fade, and at the moment a page is served, audiences and recommendations follow the scores. It is explainable arithmetic, and our engineers set it up with you. From a team that has spent decades building recommendation engines and personalization platforms.

This video is a members-only file — its access is set on the file itself, not on this page. Sign in or create an account to watch it. This video couldn’t be loaded. Try again.
The engine has no room of its own. It works from three places in Optimization: the content "Catalog", the "Engine" tab of Personalization, and the learned audiences in "Audiences"; and it shows itself on your pages through the Recommendations section and live offers.
Your catalog
Interests

Signals and points
| "What each visitor action counts for" | Points |
|---|---|
| "Added to the bag" | 3 |
| "Bought" | 5 |
| "Was shown a piece of content" | 0.25, offered |
| "Lingered on a piece of content" | 2, offered |
| "Clicked a piece of content" | 1, offered |
| "Watched a video to the end" | 2, offered |

How interest fades
Joining and leaving
Tune one audience
Recommendations
Offers
Explainable by design
The same history always gives the same scores.
Every join and leave, and every revision of the settings, each revision with "Roll back to this".
On a visitor's record, "Interests and audiences" shows their scores and memberships to the site's Admins.
Set up with our engineers
The arithmetic
| Setting | The platform's default |
|---|---|
| "How long interest lasts" (τ) | 7 days, a half-life of about 4.9 days |
| "How much activity counts as strong interest" (K) | 1.8 |
| "A visitor joins an audience at" | 0.6 |
| "and leaves when it falls below" | 0.45 |
| "Safety limits" | Forget a value below 0.0001; at most 24 values per interest |
| "The interests the engine scores on" | Channel; add your own |
Ranking
The engine learns only where the visitor's consent allows personalization: after a yes in an opt-in country, by default in an opt-out region until the visitor says no, and never from a browser that sends Global Privacy Control. Without consent, recommendations fall back to the order you chose.
What an action is worth changes only through the engine's own tuning, on the Engine tab or by asking the copilot, behind its own approval card; nothing else writes it.
Scores are kept per visitor and per site, and sites never mix.
Erasing a visitor resets their scores and closes their live channel.
An audience the catalog proposes stays a draft until a person activates it.
Every change to the settings is a revision you can undo.
No. It is arithmetic: scores that rise with the actions you weight and fade with time. The same history always gives the same scores, and every join and leave is recorded with its cause.
No. It learns from the actions you give points to, when they carry what your content is about: adding to cart, buying, clicks on recommendations, and the events you choose. A plain page view counts for nothing.
By default it halves in about five days without new activity. You set the memory, for the whole site or for one audience.
Yes: "tune this audience" gives it its own join point, memory and bar for strong interest.
The engine learns nothing from them, and their recommendations fall back to the order you chose.
No. Any catalog with tags works: articles, guides, pages, sections and products alike.
Yes, on their record under "Interests and audiences", if you are an Admin of the site.
No. Each site keeps its own.
Our engineers, with you.
No. The affinity engine is a feature you turn on for a site. Coming soon.