How personalization works

The plain-English explanation of how CartAmplify learns from your shoppers and reshapes their experience.

You’ve already seen this every day on TikTok, Spotify, and Netflix — your feed isn’t the same as your friend’s, and the more you use it, the better it gets at picking things you actually like. CartAmplify does the same thing for your store: every shopper sees products that match them, not a generic list.

What “personalized” actually means#

Imagine your store had a thousand visitors today. Without personalization, all thousand see the same products in the same order on every page. With personalization, the system shows each one a slightly different ordering — the ordering it predicts they’ll engage with most.

It’s not magic. Two visitors with identical browsing histories will see identical results. But two visitors with different histories — one who’s been looking at women’s casualwear, one who’s been looking at men’s formalwear — will see very different orderings of the same search query.

Under the hood, the system gives each shopper-product pair a match score — basically “how likely is this shopper to want this product?”, the same way Spotify decides how likely you are to love a song you haven’t heard yet. The higher the score, the higher the product climbs in that shopper’s results.

Fast enough to feel instant#

When a shopper searches or opens a category page, the system scores every relevant product for them and returns the ranked list in roughly 50 milliseconds — fast enough to feel instant, even for catalogs with tens of thousands of products. The shopper never notices that anything special is happening; the results just feel “right.”

That speed is what makes personalization viable on every request, not only on the homepage. Every search, every category page, every recommendation widget gets the same treatment.

What signals the system uses#

For each shopper, the system pays attention to:

  • What products they’ve viewed (and how recently)
  • What they’ve added to cart (a stronger signal than viewing)
  • What they’ve actually purchased (the strongest signal)
  • Which search queries they’ve submitted (and which results they clicked)
  • Which categories they’ve browsed
  • Their current session context — the page they’re on right now, the product they just clicked

The mix of long-term history (what they’ve bought over the months) and short-term context (what they’re looking at right now) is what makes the system feel responsive — a shopper who suddenly starts browsing kids’ shoes after months of looking at women’s bags gets results that reflect both interests.

How models train#

Behind the scenes, CartAmplify trains a fresh model for each language you sell in, automatically, whenever there’s enough new data to make it worthwhile.

Day 1Catalog onlyContent-basedDay ~3+ Popularityfrom real traffic~10k eventsFirst model trainsPersonalization onOngoingAuto-retrainsas data grows

The first model trains automatically once your language crosses about 10,000 events — typically a few days to a couple of weeks of normal traffic. After that, the system retrains itself on a schedule (more frequent for high-traffic stores, less frequent for low-traffic ones).

You don’t manage any of this. There’s no “retrain now” button you need to press, no training jobs you have to monitor.

Personalization is per language#

This is the most important non-obvious detail. CartAmplify treats each language you sell in as its own world:

  • Each language has its own catalog records (titles and descriptions in that language).
  • Each language has its own personalization model.
  • Each language crosses the 10,000-event threshold separately.

If you sell in both English and Spanish, your English store might be fully personalized while your Spanish store is still in cold start. That’s normal, and the dashboard shows status for each language so you can see what’s where.

Real-time signals — no waiting#

There’s one more layer worth mentioning. Even before personalization “activates” at 10,000 events, the system uses real-time session signals to influence results.

If a shopper just added a product to their cart, the next page they load already reflects that — the search results and recommendation widgets adapt within milliseconds, not after a model retrain. The full per-visitor personalization model takes a week to wake up, but in-session responsiveness works from the first event you fire.

What you don’t have to do#

Things CartAmplify handles automatically that you don’t manage:

  • Picking which features to use for the model
  • Tuning relevance weights or scoring sliders
  • Scheduling retraining
  • A/B testing different model versions
  • Re-indexing when your catalog changes
  • Refreshing model parameters as the data drifts

The whole point of the product is that it does these things on its own. Your job is to keep the data flowing in.

What you do control#

  • Catalog quality — the more accurate your titles, descriptions, categories, and attributes, the better every layer works.
  • Event coverage — every event type you don’t fire is a signal the model is missing.
  • Widget placement — which surface gets which widget type.
  • Per-widget config — out-of-stock handling, max results, recently-purchased exclusion, optimization goal.
  • Merchandising rules (Amplify+) — manual overrides for specific products or queries.

Want the technical details?#