Par Nastasia Saby (@saby_nastasia) et Fabien de Saint pern (@fabdsp)
Retour d’expérience sur notre solution d’AB testing utilisée sur 6play pour expérimenter de nouvelles fonctionnalités, telles que la recommandation et la personnalisation à la maille utilisateur. Nous parlerons également de canary-testing pour l’optimisation et la mise en production. Nous montrerons la mise en place sur une architecture en micro-services déjà existante, utilisée dans un environnement multiplateforme (Web, Mobile, IPTV). Nous aborderons le monitoring et tracking des tests, ainsi que le suivi de cohorte. Nous parlerons Symfony 3, Apcu, Redis, Varnish… mais aussi Kafka, Cassandra, Elasticsearch, Hadoop.
GAL2024 - Changements climatiques et maladies émergentes
AB Testing chez M6Web
1. AB testing chez M6Web
« Tester c’est douter, mais le doute c’est le début de la sagesse »
Nastasia Saby
@saby_nastasia
Fabien de Saint pern
@fabdspM6Web & Zenika
Octobre 2017
3. Existe depuis 2008
18 Millions de comptes utilisateurs
+90k videos publiés - 4 millions vidéos vues par jour
Disponible sur plus de 10 plateformes (Web, Apps, IPTV)
Offre gratuite (revenus publicitaires) - Offre payante récente
5. Une expérience
L’AB testing
Procédure utilisée en marketing et
qui permet de mesurer l’impact d’un
changement de version d’une
variable sur l’atteinte d’un objectif
(clic, validation, remplissage
formulaire, …)
● AB test = 2 versions
● ABC test = 3 versions
● AAB test = 3 versions (2 ident.)
6. Exemple d’AB testing avec la page d’inscription
25%
de conversion
17%
de conversion
X
X
7. L’AB testing pour être
«data driven»
Dorénavant, il ne suffit pas d’avoir
une bonne idée, mais faut-il encore
vérifier si elle est vraiment bonne.
Exemple de l’Infinite scrolling
chez Etsy (2013)
8. Choix de la population
inconnue ou connue ?
Stratégies d’
échantillonnage
● Aléatoire simple
● Stratifié
● En grappes
Toujours une notion d’aléatoire
10. Utilisation de l’AB testing
pour personnaliser
● Test de différents algorithmes
de personnalisation
Exemples :
● Recommandation de
programmes par rubrique
12. ● Objectifs : programmes recommandés personnalisés par utilisateur
Recommandation de programmes en détail
Résultats : C le meilleur mais...
● Tests de différents algorithmes :
○ A : Contribution manuelle quotidienne (version legacy)
○ B : Selon les dernières consommations de la personne
○ C & D : Selon les consommations de tous les utilisateurs (2
méthodes)
● Test AABCD
○ AA : deux variantes identiques.
○ Permet d’analyser la divergence des populations.
○ Calcul du biais d'échantillonnage.
13. Tests avec 5 variantes de 20 % (sur 80% total)
Activation
du test
14. Utilisation de l’AB testing
pour sa communication
● Campagne d'emailing
● Notifications via les apps
Résultats inattendus
15. AB testing sur des
populations déterminées
● Fan d’une émission, éléments
socio-démographiques...
● Test complet sur une
population ou filtrage
Ex : Pression pub selon les
segments
Résultats ?
17. Utilisation de l’AB testing
pour faire du Canary
testing
● Nouveau player
● Lancement progressif d’un
nouvel adserver
18. Utilisation de l’AB testing
pour la performance
● Tests de performance entre
deux versions
● Taux d’abandon au
chargement
● Scalabilité d’une architecture
● Vidéos : rapport débit / qualité /
erreurs / temps de chargement
Prouver que votre idée est la
meilleure par les chiffres
19. Utilisation de l’AB testing
pour de la « prod cachée »
● Fonctionnalités disponibles
pour les équipes produits
uniquement
● Lancement d’un service pour un
groupe d’utilisateurs restreint
24. L’Applaunch pour les paramétrer tous
Fronts 6play
(Apps Mobiles, IPTV, Web …)
CacheAPCu
Fichiers Json
statiques de
configuration
des apps /
services
Back-office de
configuration
“Applaunch”
Ecritures
Lectures
Micro-Services / API
Middleware
Images
Users
Workers
Advertising
...
29. Applaunch et le système des variantes
Fichier json principal Fichier des variantes
{
Test_Theme_Variante_Sea:
color : blue,
deco : fishes
Test_Theme_Variante_Earth:
color : brown,
deco : trees
}
Test_Theme_Variante_Sea
Test_Theme_Variante_Earth
Pas de variante
30. Création des tests et des variantes
Métadonnées sur l’AB test
Nom du test : Thème
Description : Description
Type de test : Realtime
Pourcentage de la population: 10%
Variante Pourcentage Clef
Variante Earth 50% color: blue
deco: fishes
Variante Sea 50% color: brown
deco : tree
32. Customizer : applaunch personnalisé
Fichiers Json
principal
Services
Fichiers Json des
variantes
Users
Middleware
Fronts 6play
(Apps, IPTV, Web…)
Advertising
Customizer
2. Par utilisateur
1. Par application
...
API
AB Tests
33. Customizer en détail
Request
Applaunch
personnalisé ?
● User
● App
● Version
Api
des tests
Applaunch
fichiers Json des
variantes
API :
● Tests actifs (APCu)
● Variantes par utilisateur (Cassandra)
● Config applaunch des variantes de
l’application (Redis)
Génération du cache APCU :
● Toutes les 5 min ou sur cache vide
● Précalcul tests & variantes actifs
5 ms de temps
de réponse
35. Typologie des tests chez M6Web
Deux types de répartition des utilisateurs :
● Realtime
○ Répartition aléatoire : utilisation d’un crc32(id_users/ id test)
○ Répartition homogène et déterministe
○ Recalculable à l’analyse des résultats
● Batch
○ Échantillonnage par segmentation
○ Socio-démo / consommation - Ex : H/F, 15-25, Fan de Capital ...
○ Importés dans Cassandra (performance)
37. Une plateforme big data à la rescousse
HiveQL
Hive :
requêtage
CLI
Dataviz
HDFS :
stockage
Hadoop
Jupyter
38. La construction d’un
data lake
● Collecte et agrégation de
données M6
● Batch spark
HDFS :
stockage
Logs des
AdServer
39. Collecte et analyse de données avec des KPIS
KPIS
● Nombre de vidéos vues
par utilisateur par jour
● Nombre de secondes de
vidéos vues par utilisateur
par jour
● Nombre de pubs
consommés par utilisateur
par jour
● Nombre de visites
KPIS par AB test
Pas de formule magique
40. Les pièges
● Effets de saisonnalité
● Nouvelle
fonctionnalité peut
avoir un fort impact
● Résultats parfois
difficiles à voir à l’oeil
nu
41. Trouver la vérité au
milieu du bruit
Fluctuation due au hasard des
échantillons ou à la variation ?
Hypothèse d’homogénéité
A/A - Avant/Après
● Valeur P = Si plus de 5%, on
ne peut imputer les fluctuations
à l’introduction d’une variante
● Intervalle de confiance =
Appui de la p-value
=> Avons-nous des résultats
significatifs ?
43. Agrégation des données de différentes plateformes M6Web
Croisement des segments
de population avec
d’autres sources M6
44. Quels types de données ?
Données déclaratives
● Age - Sexe
● Centres d’intérêts
Données déduites
Consommation vidéo :
● Quoi ?
● Combien de fois ?
● Combien de temps ?
● Quand ? Où ?
Consommation sur les sites
M6 :
● Pages vues ?
● Combien de fois ?
● Quand ? Où ?
45. Définition de segments
Segments :
● Fan des Marseillais, séries américaines, …
● Segments comportementaux : nocturnes, uniques, ...
46. Le comportement prime
La supériorité des données
comportementales par
rapport aux données
déclaratives