AB Testing chez M6Web

Preview:

Citation preview

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

6play

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

AB testing kezako ?

Une expérienceL’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.)

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 elle est vraiment bonne.

Exemple de l’Infinite scrolling chez Etsy (2013)

Choix de la populationinconnue ou connue ?

Stratégies d’échantillonnage● Aléatoire simple● Stratifié● En grappes

Toujours une notion d’aléatoire

Utilisation de l’AB testingExemples de tests

Utilisation de l’AB testing pour personnaliser● Test de différents algorithmes

de personnalisation

Exemples :

● Recommandation de programmes par rubrique

Recommandation de programmes

● 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.

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

population ou filtrage

Ex : Pression pub selon les segments

Résultats ?

Utilisation de l’AB testingExemples 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● 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

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

Architecture 6playAvant l’AB Testing

Front-end ● Web (ReactJs)● Application

natives/ReactNative iOs, Android

● Boxes FAI français : Free, Orange, Bytel, Sfr / Numéricable, CanalSat

● 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 tousFronts 6play

(Apps Mobiles, IPTV, Web …)

Cache A

PC

u

Fichiers Json statiques de configuration

des apps / services

Back-office de configuration “Applaunch”

Ecritures

Lectures

Micro-Services / API

Middleware

Images

Users

Workers

Advertising

...

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, timeout…)● Base URL de services● Valeurs diverses, messages aux utilisateurs...

Architecture 6playAvec 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 variantesFichier 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

Création des tests et des variantesMétadonnées sur l’AB test

Nom du test : Thème Description : DescriptionType de test : RealtimePourcentage de la population: 10%

Variante Pourcentage Clef

Variante Earth 50% color: bluedeco: fishes

Variante Sea 50% color: browndeco : tree

Le Customizer

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

Customizer en détail

Request

Applaunch personnalisé ?

● User● App● Version

Apides tests

Applaunchfichiers 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

Typologie des tests

Typologie des tests chez M6WebDeux 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)

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

vidéos vues par utilisateur par jour

● Nombre de pubs consommés par utilisateur par jour

● Nombre de visites

KPIS par AB testPas de formule magique

Les pièges● Effets de saisonnalité● Nouvelle

fonctionnalité peut avoir un fort impact

● Résultats parfois difficiles à voir à l’oeil nu

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 ?

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 :

● Quoi ?● Combien de fois ?● Combien de temps ?● Quand ? Où ?

Consommation sur les sites M6 :

● Pages vues ?● Combien de fois ?● Quand ? Où ?

Définition de segments

Segments :

● Fan des Marseillais, séries américaines, …● Segments comportementaux : nocturnes, uniques, ...

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 »

Recommended