Guides / Personalization / AI Personalization (beta) / What is AI Personalization? / Concepts

AI Personalization is a beta feature according to Algolia’s Terms of Service (“Beta Services”).

A user profile is a representation of a user based on their behavior on your website or app. It’s used in conjunction with Algolia’s NeuralSearch and keyword search to personalize results.

How user profiles are built

Sending accurate events is the first step in building relevant user profiles. Algolia requires events that indicate how users are interacting with your app. For example, an online bookstore could track events such as a user clicking on a specific book in a listing, viewing genre and author on the book’s details page, adding the book to their cart, and buying the book.

Once events have been implemented and sent, AI Personalization applies various algorithms to your data (index and events). It identifies patterns and relationships within your data to predict user affinities. These affinities are used to create a user profile, which is continually updated with new information.

Schema

A user profile is represented in JSON format and includes a unique identifier for the user and their preferences (affinities).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{
  "userID": "user-1",
  "lastUpdatedAt": "2024-05-21T01:15:35Z",
  "type": "basic",
  "affinities": [
    {
      "name": "categories",
      "value": "Software",
      "indices": ["storefront"],
      "score": 18,
      "lastUpdatedAt": "2024-05-20T23:14:26.078071Z"
    },
    {
      "name": "color",
      "value": "Blue",
      "indices": ["storefront"],
      "score": 14,
      "lastUpdatedAt": "2024-05-21T01:15:08.590763Z"
    },
    {
      "name": "brand",
      "value": "Microsoft",
      "indices": ["storefront"],
      "score": 6,
      "lastUpdatedAt": "2024-05-21T01:15:35.465487Z"
    }
  ]
}

Properties

Name Type Description
userID string A unique string that identifies and tracks users across various systems.
lastUpdatedAt string Date at which the user profile was last updated.
affinities array of affinities

Properties generated by Algolia's AI Personalization feature to provide insights into the user's preferences and interests.

They're used to personalize the user's experience on your website or app.

Affinity

Name Type Description
name string Name of the affinity.
value string Value of the affinity.
indices array of strings Names of the Algolia indices associated with the affinity.
score number

Strength of the user's preference for that affinity.

Each affinity has a score ranging from 1 to 20. A higher score signifies a stronger affinity.

lastUpdatedAt timestamp Date of last update to this affinity.

Further reading

Did you find this page helpful?