Media and publishing/Recommendations

A rail that knows what this reader skipped.

Signals tells your recommender what this reader has read, finished and skipped since they arrived, and what they come back for, so it can pick a next story they want.

More pages per visit

Keep readers on the site by showing a next story they want.

Pages per visit move when the rail changes with the visit. Signals gives your recommender what this reader has read, finished and skipped since they arrived, and the section they come back for over recent weeks, so it can rank the next link for the reader on the page instead of the average one.

Drop the story a reader has passed over this visit

A reader is on their fourth article since they arrived, and the same story has sat in the rail under every one of them. They have not opened it. The model learns about the skip after this reader has moved on, so the rail keeps offering it. Four shows without a click is an answer, and the slot could hold something they have not been offered yet.

What Signals knows
rail_impressions_session
How many times each story was shown in the rail this visit
rail_clicked_session
The stories opened from the rail this visit
What your recommender does

Removes any story shown three times this visit without a click from the candidate set, and fills the slot with one this reader has not been offered.

article.tsx · 13 lines
// In the code that renders the article page
const reader = await signals.getServiceAttributes({
  name: "recs_skipped",
  attribute_key: "domain_sessionid",
  identifier: sessionId,
});
// { rail_impressions_session: { c04: 4, f17: 2, a81: 1 }, rail_clicked_session: ["a81"] }

const skipped = Object.entries(reader.rail_impressions_session)
  .filter(([id, shows]) => shows >= 3 && !reader.rail_clicked_session.includes(id))
  .map(([id]) => id);

recommender.rank({ exclude: skipped });

Try it on your own site.

Add the SDK, define one thing you want to know about a visitor, and watch it update while you click around. The free tier runs on the real engine: no card, no sales call.