User profiles
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, Advanced 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 Advanced 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 |
lastUpdatedAt |
timestamp | Date of last update to this affinity. |