Suggestions

Produits et ressources

Retour à toutes les ressources

Modèle de maturité de la compréhension des types d'utilisateurs et de la personnalisation

Imaginez le paysage du e-commerce à ses débuts. Les entreprises commençaient tout juste à découvrir le pouvoir de la personnalisation. Elles segmentaient leurs clients en fonction de caractéristiques communes comme l'âge, la localisation ou les habitudes d'achat passées. Puis, elles adaptaient leurs stratégies marketing à ces segments.

Si un client appartient à la catégorie des jeunes adultes , l'entreprise peut privilégier l'affichage de produits populaires auprès de cette tranche d'âge. Cela permet de proposer des résultats de recherche plus pertinents et d'augmenter les chances d'achat.

De même, si un client appartient au segment des « acheteurs de luxe », la plateforme de commerce électronique pourrait lui recommander des produits haut de gamme et de luxe. Et si un client appartient au groupe des « chasseurs de bonnes affaires », l'entreprise pourrait lui recommander des articles actuellement en promotion ou bénéficiant de réductions importantes.

C'était simple, efficace et ça fonctionnait… jusqu'à un certain point. Un peu comme lorsqu'on regroupe ses amis selon leurs centres d'intérêt : certains sont parfaits pour partir en vacances d'été avec leurs enfants, d'autres sont plus fêtards et aiment faire la fête toute la nuit. Essayez de les réunir et vous risquez de créer un cocktail explosif.

Imaginez ceci : vous partagez votre compte Netflix avec votre frère/sœur ou votre colocataire. Même si vous aimez tous les deux regarder des séries sur Netflix, vos goûts peuvent être très différents. Vous êtes peut-être fan de documentaires policiers palpitants, tandis que votre frère/sœur préfère les comédies romantiques légères. Comme vous êtes tous les deux rattachés au même compte, les recommandations seront un mélange de vos habitudes de visionnage.

Soudain, votre page d'accueil Netflix pourrait vous suggérer « Bridgerton » alors que vous avez plutôt envie de regarder « Mindhunter ». Cela illustre les limites de la personnalisation par segments pour proposer des recommandations véritablement individualisées. C'est comme essayer de faire en sorte qu'un vêtement taille unique aille parfaitement à tout le monde : c'est impossible.

Passons maintenant à l'avenir. Grâce à l'apprentissage automatique, les entreprises créent aujourd'hui une expérience d'achat aussi unique que chaque client. Imaginez entrer dans un magasin où chaque article a été sélectionné spécialement pour vous. C'est l'hyper-personnalisation, la personnalisation sur mesure : tout est pensé pour vous, comme un conseiller personnel virtuel qui connaît vos goûts et vos habitudes d'achat sur le bout des doigts. C'est une véritable révolution qui transforme radicalement la manière dont les entreprises interagissent avec les nouveaux clients, les clients réguliers et les clients fidèles.

L'IA est le super-héros qui rend cette transition possible. Imaginez un super-pouvoir vous permettant de déceler des tendances dans une masse de données utilisateur. C'est précisément ce que fait l'apprentissage profond pour votre site web ou application e-commerce : comprendre véritablement les intentions des utilisateurs et agir en conséquence en leur offrant une expérience personnalisée.

Mais voilà le hic : la personnalisation doit :

  1. Respectez la vie privée des utilisateurs
  2. Soyez en temps réel
  3. Assurer la cohérence de l'identité de l'utilisateur entre les sessions, les états de l'utilisateur et les appareils
  4. Être capable de prédire les intentions de l'utilisateur
  5. Être composable (API-first)
  6. Faites preuve de transparence en matière d'explicabilité de l'IA et de mesures commerciales.
  7. Adoptez une approche éthique dans son utilisation/application.

Ce n'est pas une mince affaire, n'est-ce pas ? Cela exige des investissements technologiques et des compétences en analyse de données, mais surtout la capacité de collecter les données pertinentes. Dans le contexte des systèmes de personnalisation, nous parlons principalement de données centrées sur l'utilisateur : comportementales, événements, parcours de navigation – autant d'éléments nécessaires à la création d'un profil utilisateur centralisé, exploitable ensuite pour personnaliser l'expérience utilisateur sur tous les canaux.

La véritable personnalisation commence par l'utilisateur, et non par le contenu (pages, produits, etc.). C'est pourquoi je vous invite à un voyage au cœur du parcours de l'utilisateur final, afin de comprendre les 5 questions essentielles pour orchestrer une expérience de personnalisation moderne : qui, quoi, quand, où et pourquoi.

 

Comprendre les types d'utilisateurs

La première question à se poser est la suivante : quel est le taux de nouveaux visiteurs par rapport aux visiteurs réguliers ?

Nouveaux visiteurs

C'est le point de départ essentiel pour comprendre où concentrer notre stratégie de personnalisation. On s'attend souvent (à tort) à ce que les nouveaux utilisateurs bénéficient du même niveau de personnalisation que les utilisateurs réguliers, alors qu'en réalité, les nouveaux utilisateurs n'ont que très peu, voire aucune interaction. Comment personnaliser une expérience si l'on n'a pas la moindre indication sur leurs préférences ?

Au minimum, des données de localisation et d'appareil peuvent être collectées pour les nouveaux visiteurs : ville, navigateur, marque de l'appareil, système d'exploitation et résolution d'écran. Lorsque leur session se prolonge ou qu'ils interagissent beaucoup (clics, vues, conversions, etc.), une personnalisation en temps réel peut être appliquée.

Certes, votre site web attirera peut-être plus de nouveaux visiteurs, mais les visiteurs réguliers sont plus réceptifs à la personnalisation et leurs taux de conversion ou leur panier moyen sont généralement plus élevés. C'est pourquoi, surtout lorsqu'on part de zéro, élaborer un plan de personnalisation ciblant en priorité les utilisateurs réguliers est une stratégie judicieuse.

Passons à l'étape suivante et analysons les différents types d'utilisateurs qui reviennent.

Utilisateurs non authentifiés

Un visiteur peut interagir avec votre site web ou votre application à plusieurs reprises au cours d'une période donnée (heures, jours, semaines, mois, etc.), même s'il n'a pas créé de compte auprès de votre entreprise. Cela peut en soi être le signe d'un faible intérêt pour votre entreprise. Mais il se peut aussi que l'utilisateur n'ait tout simplement pas procédé à l'authentification par commodité.

Quoi qu’il en soit, c’est le premier état du visiteur qui peut fournir des signaux précieux à notre système de personnalisation : temps passé sur le site web, nombre de sessions, nombre de pages vues, taux de rebond, etc. Bien sûr, selon la conception de votre site web, ils pourraient même effectuer une conversion sans créer de compte.

Utilisateurs authentifiés

Dès qu'un visiteur s'authentifie, il devient un utilisateur. Qu'il effectue ou non une conversion, il peut s'agir de visiteurs qui découvrent votre entreprise pour la première fois et qui ont décidé de créer un compte, ce qui est un excellent indicateur de leur intention d'aller plus loin : revenir sur votre site web/application ou même passer une commande.

Ce qui est certain, c'est que nous disposons désormais d'encore plus de signaux que nous pouvons utiliser pour orchestrer une expérience significative pour notre nouvel utilisateur : nom, numéro de téléphone portable, adresse e-mail, date de naissance, profession, sexe, etc.

C’est ici que nous abordons la question complexe des données personnelles et de leur traitement dans le respect des lois sur la protection de la vie privée des utilisateurs. Bien qu’il s’agisse d’un sujet important, nous ne l’aborderons pas dans cet article. (Pour en savoir plus sur la protection de la vie privée des utilisateurs, consultez cet article.)

Utilisateurs acheteurs

Enfin, nous avons les utilisateurs qui ont effectué un achat et qui, de ce fait, ont obtenu le statut de « client privilégié ». Les visiteurs peuvent convertir dès leur première visite ou lors des suivantes ; il est donc important de bien comprendre leur profil et son impact potentiel sur leurs interactions ultérieures avec notre site web ou application.

À ce stade, ils ont clairement exprimé leurs préférences concernant les produits que nous vendons. Grâce à leurs commandes précédentes, notamment s'il s'agit de clients réguliers, nous pouvons déterminer avec une assez grande certitude s'ils apprécient une marque en particulier, leur taille habituelle, leurs couleurs ou motifs préférés, etc. Ou, dans le cas des produits alimentaires, leurs éventuelles préférences diététiques.

Propriétés que nous pourrions connaître au moment où un nouvel utilisateur ou un utilisateur régulier arrive sur le site web

propriétés-type-utilisateur.png

 

Modèle de maturité de la personnalisation

Maintenant que nous comprenons mieux le type d'utilisateurs auxquels nous avons affaire et leur répartition, passons à la question suivante : quelle est la meilleure stratégie de personnalisation pour chacun de ces segments de haut niveau ?

modèle de maturité de la personnalisation

Du plus simple au plus complexe, le modèle de maturité de la personnalisation comprend : les stratégies basées sur le contenu (non-personnalisation), l’orchestration d’expériences pour des segments d’utilisateurs (personnalisation faible) et enfin la personnalisation alimentée par l’IA ou la personnalisation 1:1, également connue sous le nom d’hyper-personnalisation, le summum de l’expérience client dans tous les secteurs.

Stratégies basées sur le contenu

Il ne s'agit pas d'une stratégie de personnalisation à proprement parler, car nous n'en mettons aucune en œuvre à ce stade. Autrement dit, nous ne ciblons pas chaque utilisateur individuellement, au bon moment et avec le contenu approprié. L'expérience repose plutôt sur la popularité et/ou un contenu sélectionné manuellement. Cette approche est particulièrement adaptée aux situations où nous ne disposons pas de suffisamment de données individuelles sur nos utilisateurs, mais où nous cherchons néanmoins à personnaliser au maximum l'expérience de nos nouveaux visiteurs.

Nous pouvons diviser les mécanismes basés sur le contenu en deux catégories : (1) ceux qui n'ont besoin que du catalogue de produits (images, titres, descriptions ou attributs) et (2) ceux qui ont besoin de données utilisateur agrégées supplémentaires (clics, vues, achats, etc.).

 

Générer des images, articles ou produits similaires à partir d'une image, d'un article ou d'un produit donné. Dans ce cas, les interactions utilisateur (clics, vues, conversions) ne sont pas prises en compte.

Python
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

# Initialize data
data = {
   'title': [
      'Product 1', 'Product 2', 'Product 3', 'Product 4', 'Product 5', 
      'Product 6', 'Product 7', 'Product 8', 'Product 9', 'Product 10'],
   'description': [
      'This is the first product.', 
   'This is the second product.'
      'This is the third product.'
   'This is the fourth product. 
   'This is the fifth product.',
      'This is the sixth product.', 
      'This is the seventh product." 
      'This is the eighth product. 
      'This is the nineth product.', 
      'This is the tenth product.'
   ],
   'attributes': [
      'Size: Small, Color: Blue, Material: Cotton',
      'Size: Medium, Color: Red, Material: Silk',
      'Size: Large, Color: Green, Material: Wool',
      'Size: Extra Large, Color: Black, Material: Leather', 
      'Size: Small, Color: White, Material: Linen',
      'Size: Medium, Color: Blue, Material: Linen', 
      'Size: Small, Color: Black, Material: Silk', 
      'Size: Large, Color: White, Material: Leather', 
      'Size: Extra Large, Color: Red, Material: Cotton', 
      'Size: Medium, Color: Green, Material: Wool'
   ]
}
# Create DataFrame 
df = pd.DataFrame(data)

# Print DataFrame
print(df)


# Assuming you have a DataFrame df with 'title', 'description', and
 'attributes' as columns
# In a realistic scenario, the data could be more complex and you might need to
 perform data cleaning.

# Combine the 'title', 'description', 'attributes' columns into a single 
'content' column
df['content'] = df['title']+' '+df['description']+' '+df['attributes']

# Initialize the TfidfVectorizer
tfidf = TfidfVectorizer (stop_words='english')

# Construct the required TF-IDF matrix by fitting and transforming the data
tfidf_matrix = tfidf.fit_transform(df['content'])

# Compute the cosine similarity matrix
cosine_sim = cosine_similarity (tfidf_matrix, tfidf_matrix)

# Function that takes in product title as input and outputs most similar 
products
def get_recommendations (title, cosine_sim-cosine_sim):

# Get the index of the product that matches the title
indices = pd.Series (df.index, index=df['title']) .drop_duplicates() 
idx = indices [title]

# Get the pairwise similarity scores of all products with that product 
sim_scores = list(enumerate (cosine_sim[idx]))

# Sort the products based on the similarity scores
sim_scores = sorted (sim_scores, key-lambda x: x[1], reverse=True)

# Get the scores of the 3 most similar products 
sim_scores = sim_scores [1:4]

# Get the product indices
product_indices = [i[0] for i in sim_scores]
# Get the titles of the top 3 most similar products
titles = df['title'].iloc[product_indices]

# Create a DataFrame that contains the indices, scores, and titles 
result = pd.DataFrame({
'index': product_indices,
'Score': sim_scores,
'title': titles
})

# Return the result
return result

# Test the function
print(get_recommendations ('Product 3'))

 

En revanche, dans une approche de filtrage collaboratif basée sur les articles, il faut déterminer l'ensemble des articles les plus similaires à l'article cible à partir des interactions agrégées des utilisateurs. L'idée est de calculer la similarité entre chaque paire d'articles en fonction du nombre de clics, de vues ou d'achats générés par les utilisateurs lors de leurs interactions avec chacun d'eux.

entrée/sortie 2.png

 

Python
import pandas as pd
from sklearn.metrics.pairwise import cosine_similarity

# Given data
data = {
'user_id': ['user1', 'user2', 'user', 'user3', 'user2', 'user', 'user3', 'user1', 'user4', 'user2'],
'product_title': ['Product A', 'Product B', 'Product C', 'Product A',
'Product C', 'Product B', 'Product D', 'Product D', 'Product A', 'Product D'], 
'clicks': [5, 6, 3, 8, 5, 7, 4, 6, 8, 7]
}

df = pd.DataFrame(data)

# Create a user-item matrix
user_item_matrix = df.pivot_table(index='user_id', columns='product_title',
values='clicks').fillna(0)

# Compute item similarity matrix
item_similarity = cosine_similarity (user_item_matrix.T) # .T transposes the matrix to switch users with items
item_similarity_df = pd.DataFrame(item_similarity,
index=user_item_matrix.columns, columns=user_item_matrix.columns)

def recommend_products (product_title, item_similarity=item_similarity_df): 
# Get similarity scores for the product
similarity_scores = item_similarity[product_title]

# Sort in descending order
similarity_scores = similarity_scores.sort_values (ascending=False)

# Return the top 3 most similar products return similarity_scores [1:4]

print (recommend_products('Product A'))

 

entrée/sortie 3.png

Bien sûr, il existe aussi le cas où le contenu et les caractéristiques agrégées des utilisateurs sont pris en compte pour générer une liste d'images, d'articles ou de produits similaires. Vous trouverez une explication plus détaillée des modèles et techniques courants pour les systèmes de recommandation dans un de nos précédents articles de blog.

Pour les nouveaux utilisateurs

Rappelez-vous, lorsque nous avons décrit plus haut les nouveaux visiteurs, nous avons conclu que, sauf s'ils ont interagi de manière significative avec notre site Web (clics, vues, achats, etc.), nous ne pouvons pas véritablement lancer la personnalisation en temps réel de leur session. 

En réalité, dans les scénarios purement axés sur le contenu, le temps réel n'a aucune incidence sur la qualité de l'expérience pour les nouveaux utilisateurs, car une grande partie du contenu affiché est basée sur sa popularité ou sélectionnée manuellement, et reste globalement inchangée même avec l'ajout d'interactions en temps réel. Bien entendu, ce n'est pas le cas pour les scénarios basés sur la segmentation ou l'IA, qui seront détaillés dans la section suivante.

Nous pouvons donc nous appuyer sur les méthodes de contenu suivantes pour engager de nouveaux utilisateurs :
 

Lorsque aucune donnée utilisateur n'est disponible (voir l'exemple de code n° 1 ci-dessus) :

Sur les pages de détails des produits :

  • Articles/Produits connexes/alternatifs
    Il propose des articles similaires ou liés à celui que l'utilisateur consulte ou pour lequel il a manifesté un intérêt. L'objectif est de fournir des alternatives à l'article actuel, qu'elles soient similaires en termes de fonctionnalités, appartiennent à la même catégorie ou sont souvent comparées à celui-ci. Par exemple, si un utilisateur consulte un smartphone particulier, le système pourrait lui recommander d'autres smartphones aux caractéristiques ou au prix similaires.
  • Similarité basée sur l'image
    Cette technologie exploite les similarités visuelles entre les articles pour en suggérer d'autres. Elle utilise des réseaux neuronaux convolutifs (CNN) ou des techniques d'apprentissage profond similaires pour « comprendre » le contenu visuel des images associées aux articles et s'en servir pour les comparer. Elle est fréquemment employée dans les secteurs de la mode et de la décoration intérieure, où l'apparence visuelle est un critère essentiel.
  • Articles/Produits complémentaires
    Il suggère des articles complémentaires à celui que l'utilisateur consulte ou a acheté. Par exemple, si un utilisateur achète un ordinateur portable, le système pourrait recommander une housse, une souris sans fil ou un logiciel antivirus. L'objectif est d'augmenter les ventes en encourageant l'achat d'articles complémentaires.

Lorsque des données utilisateur agrégées sont incluses (voir l'exemple de code n° 2 ci-dessus) :

Sur les pages de détails des produits :

  • Filtrage collaboratif article à article
    Le système fonctionne en créant une matrice article-article qui détermine les relations entre différents articles et recommande à un utilisateur un article étroitement lié à ceux qu'il a déjà appréciés. Par exemple, si les utilisateurs ayant acheté l'article A ont également acheté l'article B, alors lorsqu'un autre utilisateur achète l'article A, le système lui suggère l'article B.
  • Souvent achetés ensemble
    Ce système de recommandation exploite les données des transactions précédentes pour identifier les articles souvent achetés ensemble. Par exemple, si les clients achètent fréquemment du pain, du beurre et de la confiture ensemble, alors si un client achète du pain et du beurre, le système lui recommandera de la confiture. C'est une méthode simple et efficace pour augmenter le panier moyen et encourager les achats supplémentaires.
  • Articles/Produits ou facettes tendance
    Les produits qui font fureur auprès des utilisateurs se distinguent par une augmentation soudaine des ventes, du nombre de vues ou d'autres formes d'engagement. Par exemple, si un livre voit ses ventes exploser, il s'agit d'un produit tendance. En montrant aux utilisateurs les produits populaires, on leur suggère de surfer sur la vague des tendances pour booster leurs ventes.


Sur la page des résultats de recherche :

  • Catégorisation/Suggestion de requêtes
    Ce système classe les requêtes des utilisateurs en catégories spécifiques et propose des suggestions en fonction de ces catégories. Il aide les nouveaux utilisateurs à affiner leurs recherches et les guide vers les résultats les plus pertinents. Par exemple, une requête pour « chaussures » peut être classée dans la catégorie « chaussures », et le système peut alors suggérer des sous-catégories connexes comme « chaussures de course », « sandales » ou « bottes ». Cela améliore non seulement la pertinence des recherches, mais aide également les utilisateurs à découvrir des articles auxquels ils n'auraient pas pensé.
  • Réorganisation dynamique
    Le réordonnancement dynamique modifie l'ordre des résultats de recherche en fonction des données d'interaction des utilisateurs (clics, vues, conversions). Par exemple, si de nombreux utilisateurs recherchent « robes d'été » puis cliquent sur « robes d'été à fleurs », le système peut réordonnancer dynamiquement les résultats de recherche afin de privilégier les articles correspondant à la fois à « robes d'été » et à « fleurs ». 
  • Suggestion de synonymes dynamique
    Les synonymes sont un outil précieux pour affiner la pertinence de vos recherches. Par exemple, si vos enregistrements contiennent le mot-clé « pantalon », mais que vos utilisateurs recherchent « pantalon stylisé », l’ajout du synonyme « pantalon stylisé » leur garantit des résultats de recherche pertinents. Dans ce contexte, la suggestion dynamique de synonymes automatise ce processus en proposant aux utilisateurs des alternatives aux termes de recherche indiqués.

Pour les utilisateurs réguliers

Les stratégies basées sur le contenu peuvent être appliquées aux utilisateurs réguliers, qu'ils soient authentifiés ou non, et qu'ils aient déjà effectué un achat ou non. Cependant, étant donné que nous disposons de plus d'informations sur ces utilisateurs au niveau individuel, il est plus pertinent d'explorer des stratégies de personnalisation basées sur la segmentation et l'IA, car elles peuvent donner de meilleurs résultats. 

En règle générale, appliquer uniquement des stratégies basées sur le contenu aux utilisateurs réguliers est une stratégie sous-optimale car elle n'utilise pas les informations explicites/implicites fournies par les utilisateurs. 

Prenons l'exemple d'une libraire qui connaît très bien certains de ses clients habituels. Une stratégie basée sur le contenu reviendrait à recommander des livres uniquement en se basant sur les meilleures ventes, sans tenir compte du fait que le client soit un habitué ou un nouveau venu. 

Par exemple, le propriétaire pourrait recommander des romans fantastiques de George R.R. Martin simplement parce qu'il est un auteur en vogue cette semaine-là. Cette stratégie fonctionne pour tous les clients, habitués ou nouveaux venus, puisqu'elle ne nécessite aucune information personnelle les concernant, si ce n'est le fait qu'ils soient entrés dans la librairie.

Cependant, pour ses clients réguliers, la libraire dispose de bien plus d'informations : elle connaît leurs goûts, leurs auteurs et genres préférés, la fréquence de leurs achats, etc. Utiliser une stratégie de personnalisation par segmentation ou basée sur l'IA reviendrait à exploiter ces informations supplémentaires pour adapter ses recommandations. Par exemple, elle pourrait savoir qu'un client régulier apprécie les romans policiers mais se passionne également pour les ouvrages historiques. Elle pourrait alors lui recommander un roman policier historique qu'une stratégie basée uniquement sur le contenu pourrait ne pas lui suggérer. 

Bien qu'il ne faille pas totalement négliger cette approche, il est essentiel de comprendre que s'appuyer uniquement sur les méthodes basées sur le contenu pour fidéliser ces clients serait une stratégie sous-optimale. C'est comme si la libraire ignorait toutes les informations complémentaires qu'elle possède sur ses clients habituels et traitait chaque nouveau client comme un inconnu. Même si elle peut recommander un livre qui plaît au client, elle passe à côté de l'opportunité de lui faire une recommandation encore plus personnalisée, qu'il apprécierait sans doute davantage.

Segmentation des utilisateurs

Une fois que nous aurons accès aux données individuelles des utilisateurs (clics, vues, achats, etc.), nous pourrons commencer à réfléchir à la manière de leur offrir une expérience plus personnalisée. Le premier niveau de personnalisation repose sur une approche par segmentation.

Associer un segment à un nouvel utilisateur arrivant sur le site web ou l'application suppose qu'un ou plusieurs segments prédéfinis existent déjà dans notre système. Une fois les attributs utilisateur requis correctement identifiés, l'utilisateur peut être lié à un ou plusieurs segments, ce qui permet de déclencher différentes actions.  

Prenons comme exemple le profil utilisateur ci-dessous ; lorsque l’utilisateur user123 navigue et interagit avec les produits, il génère des clics, des vues et même des achats.

 

 

 



JavaScript
{
   "user_id": "user123", 
   "activity": {
      "clicks": [
      {
            "product_id": "product567",
            "title": "Smartphone X",
            "description": "Latest model with 5G connectivity and high resolution camera",
            "price": 999.99,
            "timestamp": "2823-87-24T14:30:00"
         },
         {
            "product_id": "product891",
            "title": "Sports Watch Y",
            "description": "Water resistant with multiple sport modes", 
            "price": 199.99,
            "timestamp": "2023-07-24T15:00:00"
         }
      ],
      "views": [
         {
            "product_id": "product234",
            "title": "Novel Z",
            "description": "Bestselling fiction novel by renowned author", 
            "price": 14.99,
            "timestamp": "2023-87-24T13:45:00"
         },
         {
            "product_id": "product567",
            "title": "Smartphone X",
            "description": "Latest model with 56 connectivity and high resolution camera",
            "Price":999.99,
            "timestamp": "2023-07-24T14:15:00"
         }
      ],
      "purchases" : [
      {
            "product_id": "product891",
            "title": "Sports Watch Y",
            "description": "Water resistant with multiple sport modes", 
            "price": 199.99,
            "timestamp": "2023-87-24T15:38:00"
         }
      ]
   },
   "affinities":["Electronics", "Books", "Fashion", "Sports", "Home Decor"]
}

Supposons que nous ayons précédemment défini les segments suivants :

JavaScript
{
   "segment1": {
      "name": "High Value Electronics Enthusiasts",
      "description": "Users who have viewed or purchased high-priced electronic items",
      "definition": {
         "affinities": ["Electronics"],
         "activity": {
            "views": {
               "price_range": [500, 1000]
             },
             "purchases" : {
               "price_range": [500, 1000]
             }
          }
       }
   },
   "segment2": {
      "name": "Budget-Conscious Book Readers",
      "description": "Users who have viewed or purchased medium-priced books” , 
      "definition": {
         "affinities": [ "Books"],
            "activity": {
               "views": {
                  "price_range":[10, 25]
                },
                "purchases": {
                   "price_range":[10, 25]
                }
            }
        }
     }
  }

 

Compte tenu des définitions des segments 1 et 2 ci-dessus, supposons que les actions suivantes soient déclenchées sur le site web :

  • Action n° 1 : Une invitation à s’inscrire et une réduction promotionnelle doivent être affichées uniquement aux nouveaux utilisateurs appartenant au segment 1.
  • Action n° 2 : La livraison gratuite sera offerte aux clients fidèles appartenant au segment 1.
  • Action n° 3 : Les listes de produits seront reclassées pour les utilisateurs du segment 2 en fonction de leurs préférences de prix.

Pour les nouveaux utilisateurs

Le profil utilisateur est vide lors de la première visite d'un nouvel utilisateur sur le site web. Dès qu'il y a plus d'activité (clics et vues), l'utilisateur peut être associé à un segment spécifique et une action peut être déclenchée.
 

JavaScript
{
   "user_id": "user123", 
   "Segments":[
      {
         "segment_id":"segment1"
      }
 ]
}

Lors de sa première session, notre utilisateur 123 a cliqué sur quelques produits dont le prix se situe entre 500 et 1 000 $ et qui sont associés au segment 1. Suite à ces clics, et conformément aux actions définies précédemment, l'utilisateur est invité à s'inscrire et à bénéficier d'une réduction sur son premier achat. Par conséquent, l'utilisateur 123 effectue un achat. 

Aucun autre utilisateur n'a vu ce message, sauf s'il remplissait la condition d'être un nouvel utilisateur du segment 1. Par ailleurs, comme l'utilisateur 123 n'est pas encore un utilisateur régulier, la deuxième action décrite ci-dessus (bannière de livraison gratuite) n'est pas déclenchée. 

Cependant, en revenant à la catégorie « Livres », les livres dont le prix est compris entre 10 et 25 dollars sont mis en avant pour l'utilisateur 123 car la 3ème action décrite ci-dessus est déclenchée. 

utilisateur123 Action n° 1 Action n° 2 Action n° 3
Condition nouvel utilisateur et segment 1 acheteur régulier et segment 1 segment2
Déclenché Oui Non

Oui

 

Pour les utilisateurs réguliers

Quelques jours plus tard, l'utilisateur 123 retourne sur le site web et cette fois-ci, il est accueilli par une bannière de livraison gratuite car il fait partie du segment 1.

utilisateur123 Action 1 Action 2 Action 3
Condition nouvel utilisateur et segment 1 acheteur régulier et segment 1 segment2
Déclenché Non Oui Oui

De plus, lorsqu'il consulte à nouveau la section « Livres », une liste de livres mis en avant en fonction de ses préférences tarifaires lui est présentée. Notez que le segment 2 ne dépend pas du type d'utilisateur (nouveau ou existant) ; cette action est donc déclenchée dans les deux cas.

Vous pourriez vous demander : est-il possible d’intégrer le type d’utilisateur dans la définition de nos segments ? Réponse courte : bien sûr, c’est une approche valable. La seule nuance est que nous aurions alors trois segments au lieu de deux, et que la troisième action devrait être liée au segment 3.

 

Personnalisation 1:1

L'IA et l'apprentissage automatique rendent possible l'hyper-personnalisation, et la personnalisation individualisée permet de se passer d'intervention humaine. Contrairement à la segmentation manuelle, la personnalisation par IA ne nécessite pas qu'un responsable merchandising définisse les conditions de son déclenchement.

Prenons l'exemple de l'utilisateur mentionné précédemment (utilisateur123). Dans le cadre d'une personnalisation individuelle, lors d'une recherche, les résultats seraient immédiatement réorganisés en fonction de ses centres d'intérêt. Il en serait de même pour tous les autres utilisateurs disposant d'un profil valide. Ainsi, même en utilisant exactement les mêmes mots-clés, chaque utilisateur verra des résultats légèrement différents. Plus précisément : les résultats seront réorganisés selon ses préférences. C'est cela, la véritable personnalisation.

Comme nous l'avons constaté avec les autres stratégies, il existe des nuances lorsqu'il s'agit d'appliquer la personnalisation aux nouveaux utilisateurs par rapport aux utilisateurs réguliers.

Pour les nouveaux utilisateurs

La personnalisation individuelle pour les nouveaux utilisateurs implique une personnalisation en temps réel. Cependant, il y a un hic : comme nous l'avons vu précédemment, il est très difficile de connaître l'utilisateur dès sa première visite sur votre site web en matière de personnalisation individuelle. Certes, vous avez accès à sa localisation et à son appareil, mais cela ne renseigne en rien sur ses préférences personnelles.

Une session de 60 secondes aurait-elle un impact sur la richesse du profil utilisateur ?

Peut-être : si l’utilisateur interagit effectivement avec le site web. Sinon, on revient aux stratégies basées sur le contenu plutôt qu’à la personnalisation individuelle. Dès lors, la question est : combien d’interactions sont nécessaires pour constituer un profil utilisateur pertinent ?

Peut-on commencer la personnalisation dès le premier clic ?

Pas vraiment, car c'est là qu'on se heurte à la sur-personnalisation : le contenu mis en avant est trop ciblé et manque de diversité. Cela peut entraîner plusieurs problèmes :

  • Les utilisateurs se retrouvent piégés dans une boucle de contenu similaire, ce qui limite leur exposition aux nouveaux produits ou catégories. Cela peut entraîner une expérience utilisateur dégradée et une satisfaction moindre.
  • Cela réduit les possibilités pour les utilisateurs de découvrir de nouveaux centres d'intérêt. Le commerce électronique prospère grâce à la variété et à la nouveauté, et les clients apprécient souvent de parcourir et de découvrir de nouveaux produits.
  • faire de fausses suppositions à partir de données limitées. Par exemple, si un utilisateur achète un cadeau pour quelqu'un d'autre, sa session actuelle pourrait ne pas refléter fidèlement ses propres intérêts.


Une façon de prendre en compte les commentaires explicites des utilisateurs finaux quant à leur volonté de bénéficier d'une expérience personnalisée consiste à inclure cette option dans la barre de recherche, une pratique utilisée par Instagram :

D'après notre expérience, les meilleurs profils utilisateurs pour la personnalisation en temps réel semblent être ceux qui équilibrent la durée de la session avec le volume et la profondeur des interactions. On parle alors d'une session optimisée pour la personnalisation, capable de générer des profils utilisateurs pertinents qui peuvent servir de base à une stratégie de personnalisation individualisée.

Voici un profil utilisateur simplifié, généré à partir des clics et des vues de produits de l'utilisateur. Il est important de noter qu'il s'agit d'une représentation simplifiée et que des scénarios réels nécessiteraient des techniques plus sophistiquées.

JavaScript
// Sample user activity
data.let userActivity = {
  "user123": {
    "clicks": [
      {"productId": "product567","attributes":["Electronics", "Smartphone"]},
      {"productId": "product891","attributes":["Sports", "Watch"]
    }],
    "views": [
      {"productId": "product234","attributes": [ "Books", "Novel"]},
      {"productId": "product567","attributes":["Electronics", "Smartphone"]}
    ]
  }
}

// Calculate user profile
function calculateUserProfile(userId) {
  let userProfile = {"userId": userId,"affinities": []};
  let user = userActivity[userId];

  if(user) {
    let activity = [...user.clicks, ...user.views];
    let attributeCount = {};
    for(let action of activity) {
      for (let attribute of action.attributes)
        if(attributeCount[attribute]) {
          attributeCount[attribute]++;
        }
        else {
          attributeCount [attribute] = 1;
        }
      }
    }

    userProfile.affinities = Object.entries (attributeCount)
        .sort((a, b) => b[1]  - a[1])
        .map (item => item[0]);
  }

  return userProfile;

}

console.log(calculateUserProfile("user123"));

Le profil utilisateur ainsi obtenu peut ensuite être transmis à Algolia pour personnaliser les résultats de recherche en temps réel :

JavaScriptconst
algoliasearch = require('algoliasearch');
// Connect to Algolia
const client = algoliasearch('YourApplicationID', 'YourAdminAPIKey");
const index = client.initIndex('products');

// User profile from previous code
const userProfile = {
  "userId": "user123",
  "affinities": ["Electronics", "Smartphone", "Books", "Novel", "Sports","Watch"]};

// Generate optional filters based on user profilelet optional
Filters = userProfile.affinities.map(affinity =>`category:$(affinity}');

// Search Algolia with user filters
index.search(
  'query string',
  {optionalFilters: optionalFilters}
).then((( hits }) => {
  console.log(hits);
}).catch(err => {console.log(err):});

 

Pour les utilisateurs réguliers

La personnalisation individuelle est particulièrement efficace pour les clients non authentifiés, authentifiés et les clients réguliers, car ces types d'utilisateurs ont tendance à convertir davantage que les nouveaux clients. Dans la section précédente, j'ai donné l'exemple de la personnalisation des résultats de recherche. Voyons maintenant comment personnaliser les recommandations pour les utilisateurs réguliers.

recommend = require('@algolia/recommend');
// Algolia credentials and settings
const appId = 'Your ApplicationID"; 
const apiKey='Your APIKey";
const indexName = "Your IndexName';

// Initiate Algolia client
const client = algoliasearch (appId, apikey);
const recommendClient = recommend(client);

// User profile from previous code
const userProfile = {
  "userId": "user123",
  "affinities": [
    "Electronics", 
    "Smartphone", 
    "Books", 
    "Novel", 
    "Sports",
    "Watch"]};

recommendClient.getRelatedProducts({
  indexName,model: 'bought-together', // The model can be bought-together or viewed-together
  objectID: [currentObjectID], //Replace with an actual objectID from yourdata
  maxRecommendations: 5,
  queryParameters: (
    // Only display products matching the selected affinities
    facetFilters: userProfile.affinities.map(affinity => `category:${affinity}`)}}
  ).then(({recommendations }) => {
    console.log(recommendations);
  }).catch(err => {
    console.log(err);
});

La personnalisation 1:1 s'applique principalement à la recherche, à la navigation et aux recommandations. Mais son utilisation ne s'y limite pas. Elle permet d'envoyer des notifications push ou des e-mails intelligents, voire des interfaces conversationnelles comme les chatbots. Découvrez quelques exemples d'utilisation lors de la session de programmation en direct d'Algolia DevCon '23, consacrée à un framework e-commerce basé sur l'IA générative et conçu pour optimiser le merchandising de niche.

Permettre à tous de créer d'excellents outils de recherche et de découverte