Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
AB testing chez M6Web
« Tester c’est douter, mais le doute c’est le début de la sagesse »
Nastasia Saby
@saby_nastasia
Fab...
6play
Existe depuis 2008
18 Millions de comptes utilisateurs
+90k videos publiés - 4 millions vidéos vues par jour
Disponible su...
AB testing kezako ?
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...
Exemple d’AB testing avec la page d’inscription
25%
de conversion
17%
de conversion
X
X
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 ...
Choix de la population
inconnue ou connue ?
Stratégies d’
échantillonnage
● Aléatoire simple
● Stratifié
● En grappes
Touj...
Utilisation de l’AB testing
Exemples de tests
Utilisation de l’AB testing
pour personnaliser
● Test de différents algorithmes
de personnalisation
Exemples :
● Recommand...
Recommandation de programmes
● Objectifs : programmes recommandés personnalisés par utilisateur
Recommandation de programmes en détail
Résultats : C le...
Tests avec 5 variantes de 20 % (sur 80% total)
Activation
du test
Utilisation de l’AB testing
pour sa communication
● Campagne d'emailing
● Notifications via les apps
Résultats inattendus
AB testing sur des
populations déterminées
● Fan d’une émission, éléments
socio-démographiques...
● Test complet sur une
p...
Utilisation de l’AB testing
Exemples de tests techniques
Utilisation de l’AB testing
pour faire du Canary
testing
● Nouveau player
● Lancement progressif d’un
nouvel adserver
Utilisation de l’AB testing
pour la performance
● Tests de performance entre
deux versions
● Taux d’abandon au
chargement
...
Utilisation de l’AB testing
pour de la « prod cachée »
● Fonctionnalités disponibles
pour les équipes produits
uniquement
...
Architecture 6play
Avant l’AB Testing
Front-end ● Web (ReactJs)
● Application
natives/ReactNative iOs,
Android
● Boxes FAI français : Free,
Orange, Bytel, Sfr /...
● API vidéos
○ Métadonnées vidéos
○ Cache Varnish
Back-end
● API utilisateurs
○ Données utilisateurs
○ Pas de cache Varnish
L’Applaunch
● Microservice de
configuration
● Toutes plateformes
● Front-end
● Back-end
L’Applaunch pour les paramétrer tous
Fronts 6play
(Apps Mobiles, IPTV, Web …)
CacheAPCu
Fichiers Json
statiques de
configu...
Applaunch : configuration par version
App version 1.0.0 App version 2.0.0
Applaunch : utilisation
Utilisations :
● Feature flipping
● Paramètres de fonctionnalités (Temps de rafraîchissement, time...
Architecture 6play
Avec l’AB Testing
Les variantes de
l’Applaunch et les tests
L’AB Testing :
Une configuration
personnalisée par utilisateur
Applaunch et le système des variantes
Fichier json principal Fichier des variantes
{
Test_Theme_Variante_Sea:
color : blue...
Création des tests et des variantes
Métadonnées sur l’AB test
Nom du test : Thème
Description : Description
Type de test :...
Le Customizer
Customizer : applaunch personnalisé
Fichiers Json
principal
Services
Fichiers Json des
variantes
Users
Middleware
Fronts 6...
Customizer en détail
Request
Applaunch
personnalisé ?
● User
● App
● Version
Api
des tests
Applaunch
fichiers Json des
var...
Typologie des tests
Typologie des tests chez M6Web
Deux types de répartition des utilisateurs :
● Realtime
○ Répartition aléatoire : utilisati...
Analyse des AB tests
Une plateforme big data à la rescousse
HiveQL
Hive :
requêtage
CLI
Dataviz
HDFS :
stockage
Hadoop
Jupyter
La construction d’un
data lake
● Collecte et agrégation de
données M6
● Batch spark
HDFS :
stockage
Logs des
AdServer
Collecte et analyse de données avec des KPIS
KPIS
● Nombre de vidéos vues
par utilisateur par jour
● Nombre de secondes de...
Les pièges
● Effets de saisonnalité
● Nouvelle
fonctionnalité peut
avoir un fort impact
● Résultats parfois
difficiles à v...
Trouver la vérité au
milieu du bruit
Fluctuation due au hasard des
échantillons ou à la variation ?
Hypothèse d’homogénéit...
Comment connaître sa population ?
Agrégation des données de différentes plateformes M6Web
Croisement des segments
de population avec
d’autres sources M6
Quels types de données ?
Données déclaratives
● Age - Sexe
● Centres d’intérêts
Données déduites
Consommation vidéo :
● Qu...
Définition de segments
Segments :
● Fan des Marseillais, séries américaines, …
● Segments comportementaux : nocturnes, uni...
Le comportement prime
La supériorité des données
comportementales par
rapport aux données
déclaratives
Merci
« Tester c’est douter, mais le doute c’est le début de la sagesse »
Upcoming SlideShare
Loading in …5
×

AB Testing chez M6Web

1,410 views

Published on

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.

Published in: Engineering
  • Be the first to comment

AB Testing chez M6Web

  1. 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
  2. 2. 6play
  3. 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
  4. 4. AB testing kezako ?
  5. 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. 6. Exemple d’AB testing avec la page d’inscription 25% de conversion 17% de conversion X X
  7. 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. 8. Choix de la population inconnue ou connue ? Stratégies d’ échantillonnage ● Aléatoire simple ● Stratifié ● En grappes Toujours une notion d’aléatoire
  9. 9. Utilisation de l’AB testing Exemples de tests
  10. 10. Utilisation de l’AB testing pour personnaliser ● Test de différents algorithmes de personnalisation Exemples : ● Recommandation de programmes par rubrique
  11. 11. Recommandation de programmes
  12. 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. 13. Tests avec 5 variantes de 20 % (sur 80% total) Activation du test
  14. 14. Utilisation de l’AB testing pour sa communication ● Campagne d'emailing ● Notifications via les apps Résultats inattendus
  15. 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 ?
  16. 16. Utilisation de l’AB testing Exemples de tests techniques
  17. 17. Utilisation de l’AB testing pour faire du Canary testing ● Nouveau player ● Lancement progressif d’un nouvel adserver
  18. 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. 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
  20. 20. Architecture 6play Avant l’AB Testing
  21. 21. Front-end ● Web (ReactJs) ● Application natives/ReactNative iOs, Android ● Boxes FAI français : Free, Orange, Bytel, Sfr / Numéricable, CanalSat
  22. 22. ● API vidéos ○ Métadonnées vidéos ○ Cache Varnish Back-end ● API utilisateurs ○ Données utilisateurs ○ Pas de cache Varnish
  23. 23. L’Applaunch ● Microservice de configuration ● Toutes plateformes ● Front-end ● Back-end
  24. 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 ...
  25. 25. Applaunch : configuration par version App version 1.0.0 App version 2.0.0
  26. 26. Applaunch : utilisation Utilisations : ● Feature flipping ● Paramètres de fonctionnalités (Temps de rafraîchissement, timeout…) ● Base URL de services ● Valeurs diverses, messages aux utilisateurs...
  27. 27. Architecture 6play Avec l’AB Testing
  28. 28. Les variantes de l’Applaunch et les tests L’AB Testing : Une configuration personnalisée par utilisateur
  29. 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. 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
  31. 31. Le Customizer
  32. 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. 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
  34. 34. Typologie des tests
  35. 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)
  36. 36. Analyse des AB tests
  37. 37. Une plateforme big data à la rescousse HiveQL Hive : requêtage CLI Dataviz HDFS : stockage Hadoop Jupyter
  38. 38. La construction d’un data lake ● Collecte et agrégation de données M6 ● Batch spark HDFS : stockage Logs des AdServer
  39. 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. 40. Les pièges ● Effets de saisonnalité ● Nouvelle fonctionnalité peut avoir un fort impact ● Résultats parfois difficiles à voir à l’oeil nu
  41. 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 ?
  42. 42. Comment connaître sa population ?
  43. 43. Agrégation des données de différentes plateformes M6Web Croisement des segments de population avec d’autres sources M6
  44. 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. 45. Définition de segments Segments : ● Fan des Marseillais, séries américaines, … ● Segments comportementaux : nocturnes, uniques, ...
  46. 46. Le comportement prime La supériorité des données comportementales par rapport aux données déclaratives
  47. 47. Merci « Tester c’est douter, mais le doute c’est le début de la sagesse »

×