How to Build a Personalization Strategy
Three components to configure
When we say “personalization strategy”, we are referring to the configuration choices that you make to build useful and accurate user preferences.
A personalization strategy consists of three major components:
This page will help you understand these components and give you an overview of how you can use the Dashboard to set their values.
The analytic-to-personalization workflow
Before getting started with personalization, you should already have implemented click and conversion analytics. That’s because you want to start collecting click-analytic data as soon as possible. Analytics data gets you focused on the basics - to improve your users’ search experience by making the best configuration and data formatting choices.
This is the preferred workflow: first, put click analytics in place; only after that do you want to think about personalizing your users’ results. Additionally, click events create a foundation for A/B testing.
We organize our event process to align with this workflow, by separating events into search-related events and non-search-related events.
Defining the type of event
Many user actions can be used to define user preferences:
- search-related actions like clicks and conversions
- buying and adding items to a shopping cart or wishlist outside of the search context
- viewing product detail pages
We have three types of events to capture the full variety of user activity.
- View (consider this also a “browse”)
Search-related types require information about the query in order to be captured. Examples of this are click events and your application’s main conversion event. Events outside of the search context, such as all other conversions, as well as viewing and browsing products, do not require query information.
The significance of this is that some event types do not require a query ID. This will be important when you start coding the events.
Scoring the event
Let’s say you’ve set up 2 events - liking a product and buying a product - and you have a large amount of instances of these events. You’ll be able to configure how these events should be interpreted, and how they will influence the personalization strategy. The Dashboard lets you rate the importance of each of these events. For example, you can make “liking a product” 10 times more important than “buying a product”. Or vice-versa.
As already mentioned, the Dashboard lets you score individual events. You score each event in reference to their importance. If you score “liking” at 10 and “buying” at 90, you’ve just told Algolia that “buying” is 9 times more indicative of preference than “liking”. If you do the math, that would mean that a user who likes 9 Apple phones and purchases 1 Samsung phone would be seen - in this example - as having the same level of preference for Apple and Samsung.
Recall what you’re doing here. You’re trying to create a profile that reflects, in the most accurate way possible, a user’s preferences. So you first choose the action and then gather relevant events that best capture these preferences. Next, you want to score each event in a way that most accurately measures preferences. You ask yourself, What is more indicative of preference - buying or liking a product?
After having configured the importance of each event, you now need to configure the importance of each facet attribute of your objects. This part is critical. Capturing facet choices defines user preferences.
For example, let’s say that a user buys a “red iPhone”, what does it imply about its preferences? Is this user likely to buy another product from Apple? Probably, so you should give a high coefficient to the attribute
brand. Is this user likely to buy another product of color red? Probably not, so you should give a low coefficient to the attribute
As a general rule of thumb, consider the number of facet values when applying a score (the less facet values you have the better).
The Personalization impact controls the relative position boost that user affinities can have on the search results ranking.
The coefficient applies among records with the same textual relevance:
0: no impact. It’s the same as disabling Personalization.
50: allows a record position to be at most halved,
100: ranks according to the Personalization affinities first, then business relevance.