Contexte historique : le concept de preuve sociale remonte aux travaux de Robert Cialdini dans les années 1980, mais l'implémentation massive des notifications en temps réel dans les produits numériques a commencé en 2015 avec le développement des connexions WebSocket et des plateformes de streaming similaires à Kafka. Les méthodes classiques de test A/B dans ce contexte donnent souvent des estimations biaisées en raison des effets de réseau (violation de SUTVA), où le résultat d'un utilisateur dépend de la présence d'autres utilisateurs en ligne. Les premières tentatives d'évaluation consistaient en une simple comparaison entre les sessions avec un widget visible et celles sans, ce qui menait à une endogénéité sérieuse de l'échantillon.
Problème : lors de l'évaluation de l'effet, il est nécessaire de séparer l'influence réelle de l'intervention de la variable endogène de la densité de l'audience. Si nous comparons simplement les sessions avec et sans notifications, nous obtiendrons un biais de sélection : aux heures de pointe, la conversion est déjà plus élevée, et à ce moment, le système génère plus de notifications. De plus, la migration des utilisateurs entre l'application mobile et le desktop crée une contamination, floutant la limite entre le traitement et le contrôle.
Solution : l'approche optimale est l'évaluation des différences dans les différences (Difference-in-Differences, DiD) avec des effets fixes bilatéraux (two-way fixed effects) selon les fuseaux horaires et les catégories de produits, complétée par une variable instrumentale (IV-approach) pour la densité de l'audience. En tant qu'instrument, on utilise un choc exogène lié aux conditions météorologiques ou des coupures internet régionales, qui affectent l'activité en ligne mais ne sont pas directement liées à la conversion. Alternativement, la Synthetic Control Method est appliquée, où le groupe de contrôle est construit à partir de produits/régions similaires sans la fonction implémentée, pondéré par l'historique de conversion et la saisonnalité.
Dans un marketplace d'électronique, il était prévu d'implémenter un widget "15 personnes regardent actuellement cet article" avec des données en temps réel provenant du streaming ClickHouse. Le problème était que l'équipe produit constatait une augmentation de 18% de la conversion aux heures de pointe, mais ne pouvait pas dissocier l'effet des notifications de la demande naturellement élevée le soir. De plus, un effet de "chambre vide" était observé : aux heures nocturnes, le widget affichait des zéros ou des données obsolètes, ce qui pouvait potentiellement réduire la confiance.
La première option examinée était un test A/B classique avec segmentation géographique. Avantages : simplicité de mise en œuvre et interprétation claire. Inconvénients : les effets de réseaux se mêlent, car les utilisateurs de différentes villes voient des assortiments différents et des conversions de base différentes ; de plus, à faible densité d'audience dans les petites villes, le widget affichait "0 personnes regardent actuellement", ce qui créait une preuve sociale négative et réduisait la confiance.
La deuxième option était l'interruption de régression (Regression Discontinuity Design, RDD) basée sur le temps de lancement de la fonction dans une région spécifique. Avantages : identification causale claire au moment du cutoff et possibilité de validation visuelle sur un graphique. Inconvénients : impossible de dissocier l'effet de nouveauté (novelty effect) de l'effet constant ; de plus, le déploiement progressif par fuseaux horaires créait une limite floue pour le traitement, ce qui viole l'hypothèse clé de RDD concernant un changement brusque de probabilité de traitement.
La troisième option était un quasi-expériment avec des produits sans temps réel comme groupe de contrôle (DiD). Avantages : prise en compte des tendances saisonnières via des effets fixes ; possibilité d'évaluer l'hétérogénéité de l'effet par niveau de trafic de base. Inconvénients : nécessite une hypothèse de tendances parallèles (parallel trends assumption), laquelle a été vérifiée à travers une spécification Event Study avec des leads et des lags.
La solution avec DiD et la variable instrumentale basée sur les données météorologiques a été choisie : les jours de pluie dans les régions augmentaient de manière inattendue l'activité en ligne (satisfaisant les exigences de pertinence de l'instrument), mais n'affectaient pas directement l'envie d'acheter un téléphone (exclusion restriction). L'analyse a montré que l'effet réel du widget est de +9% de conversion uniquement lorsque la densité >30 utilisateurs en ligne par SKU ; à une densité inférieure, l'effet est négatif (-4%) en raison de la démonstration de données "vides" ou obsolètes.
Sur la base de ces résultats, un algorithme adaptatif a été implémenté, désactivant la preuve sociale lors de faibles trafics. Le résultat fut une optimisation des règles d'affichage : le système est passé d'un affichage constant à un affichage conditionnel, ce qui a augmenté la conversion moyenne de 7% sur la plateforme et réduit le taux de désabonnement du segment des "utilisateurs nocturnes" de 12%. Les économies sur les capacités d'infrastructure ont été de 15% grâce à l'arrêt du traitement des flux pour des produits inactifs.
Comment séparer l'effet du mécanisme (intensive margin) de l'effet global de la présence de la fonction (extensive margin) ?
Les candidats confondent souvent l'évaluation de forme réduite (simple présence du système) avec l'évaluation du mécanisme (comment le changement de densité à l'intérieur du traitement influence le résultat). L'approche correcte est l'évaluation en deux étapes (Two-Stage Least Squares, 2SLS), où à la première étape, la fréquence réelle d'affichage des notifications est prédite par l'instrument (météo), et à la seconde, la conversion est calculée à partir de la fréquence prédite. Cela permet de séparer l'effet net de la notification de l'effet de "foule" (herding behavior), qui présente une causalité inverse : une haute conversion attire plus de vues, générant plus de notifications.
Pourquoi est-il important de corriger pour les tests multiples lors de l'analyse de l'hétérogénéité par segments de densité et de temps de la journée ?
Les analystes recherchent souvent le seuil optimal d'activation de la fonction, testant l'effet sur 10, 20, 50 utilisateurs, et choisissent le seuil avec le maximum d'augmentation. Cela conduit à un problème d'exploration des données et à une erreur de type I gonflée. Il est nécessaire d'appliquer une correction Bonferroni ou procédure de Benjamini-Hochberg pour le taux d'erreur familial, ou d'utiliser un plan d'analyse préalable en fixant les hypothèses avant l'analyse. Sinon, le seuil "optimal" sera simplement un bruit aléatoire dans les données.
Comment prendre en compte les effets de débordement négatifs sur le groupe de contrôle à travers l'inventaire commun et la limitation du budget de l'utilisateur ?
Lorsque la preuve sociale est impliquée dans un marketplace, un effet de tirage de la demande apparaît : si le widget accélère l'achat dans le groupe de traitement de produits, cela peut diminuer la conversion dans le groupe de contrôle en raison d'une épuisement du budget ou d'une distraction. Les candidats ignorent les effets d'équilibre général. Pour corriger cela, une évaluation avec des données agrégées au niveau de la session utilisateur (aggregate treatment effects) ou l'utilisation de modèles d'équilibre de marché (market equilibrium models) prenant en compte la limitation de l'attention de l'utilisateur est requise.