mercredi 5 octobre 2016

Google Optimize 360, un avis de Data Scientist...


Résultat de recherche d'images pour "Optimize 360" 


"Optimize 360", la solution de testing de Google va-t-elle changer le marché des outils déjà existants?

Quand Google entre sur un marché, il est clair que ce n'est pas a négliger, surtout quand ils proposent une offre gratuite (l'offre payante semble être à >150k$ l'année).

Je tiens à préciser que je ne suis pas totalement  impartial dans cette réflexion car je suis Chief Data Scientist à AB-Tasty qui est la solution leader en France sur les solutions de testing et de personnalisation sur les sites web & applications mobiles. Je vais toutefois essayer d'être honnête dans cette comparaison.
Il y a un tas de truc fonctionnels qu'Optimize 360 ne fait pas (test sur mobile, test multi-pages, etc...) même dans la version payante, mais dans cet article je vais principalement aborder le point de vue "Data".

Le défaut principal que j'identifie est qu'Optimize gère la notion de visiteur par session (de 30 mn à 4heures, mais pas plus!) et ne gère pas vraiment la notion d'unicité du visiteur. Ce qui veux dire qu'un visiteur faisant deux visite a un jour d'intervalle (ou même juste 5 heures) sera compté comme deux visiteurs distincts.

Cela à deux conséquences : 
  1. Les taux de clic mesurés seront plus bas que la réalité.
    C'est gênant mais on peut "faire avec".
  2. Il est impossible de mesurer les gains de manière précise.
    Là c'est bien plus gênant...
Voyons cela en détail...

1) Les taux de clic (ou valeur par visiteur) seront donc mesurés notablement plus bas, car les conversions se font rarement à la première visite. Toutes les autres visites (hormis celle de conversion) seront comptées en "échec", ainsi, naturellement, les taux de "réussites" seront mesuré bien plus bas.

Cependant on pourrait se dire "c'est pas si grave, de toutes façon ce qu'on cherche c'est une différence de taux de conversion, on peut se moquer de la valeur absolue de ce KPI". C'est vrai, mais seulement si on s'intéresse uniquement l'existence d'une différence (et qu'on se fiche de sa taille), car en effet le modèle bayésien d'analyse statistique supporte assez bien cette approximation.
On peut le tester ici : https://www.peakconversion.com/2012/02/ab-split-test-graphical-calculator/

Supposons avoir 100 visiteurs sur chaque variation, avec 10 conversion pour A et 15 pour B.


=> cela donne 14% de chance de victoire pour A et 86% pour B
(chiffres de l'avant dernière colonne).

Supposons maintenant que ces conversions sont réalisés en moyenne après 2 visites (donc on double le nombre de "trial") pour simuler qu'on ne gère pas les visiteurs unique mais qu'on utilise la notion de sessions.


=> cela donne 15% de chance de victoire pour A et 85% pour B.
=> soit seulement 1% de différence avec l'analyse précédente.

Vous pouvez faire l'expérience par vous même, et même si on augmente le nombre moyen de visites avant la conversion les "chances de victoire" dévient assez peu.

Donc si on ne s'intéresse qu'à l'existence d'une différence (et pas de sa taille) alors ne gérer que des le sessions (et non les visiteurs uniques), n'est pas très gênant.

Note : Cette conclusion n'est vraie que si le nombre de re-visites par visiteur unique est à peut près le même selon les variations (rien ne nous l'assure vraiment.).

2) Avec cette approche par session il est alors impossible de mesurer proprement les intervalles de confiance du gain.


Note : cet intervalle est très important dans l'analyse et surtout dans la prise de décision car c'est lui qui permettra de prédire la meilleure et la pire des situations que l'ont rencontrera lors de la mise en production de la variation gagnante.

Pour cela je vais utiliser un autre outil, qui fait le même type de calcul bayésien, mais qui montre aussi la distribution du gain potentiels (on appelle cela le 'posterior' en stat')  http://developers.lyst.com/bayesian-calculator/

Voici ce que l'on obtient avec les même chiffre que l'exemple précédent :
  • A) 100 visites, 10 succès
  • B) 100 visites, 15 succès

Cette courbe représente la répartition possible de la vrai valeur du gain qu'apporte la variation B par rapport à la A.
L'intervalle de confiance à 95%, c'est à dire l'intervalle qui a 95% de chance de contenir la vraie valeur du gain, est environ [-0.05;+0.15]. (Il s'agit en fait de sélectionner la partie centrale de ce graphe de manière à représenter 95% de sa surface.) Vu que cet intervalle est globalement plus positif que négatif on fait la même conclusion que précédemment : B est probablement la variation gagnante, mais attention il persiste encore une zone de doute. (B à quand même,"encore" ~15% de chance d'être gagnante.)

Supposons maintenant qu'il faut en moyenne 2 visites avant la conversion, alors on double le nombre de 'trial" comme dans l'exemple précédent pour avoir des données tels qu'Optimize 360 les verrait.
Et voici ce qu'on obtient sur la courbe de distribution des gains :


On voit que cette courbe est notablement plus étroite que la précédente, par conséquent l'intervalle de confiance correspondant paraîtra beaucoup plus petit. Approximativement il vaudrait [-0.025;0.08]. Mais ce n'est pas la réalité! On comprend que les bornes de cet intervalle définissant le meilleure et le pire scénario ne sont plus calculable, car cet effet sera d'autant plus marqué que le nombre de visites moyen avant conversion est grand.
 Le fond du problème est qu'on ne connaît pas le nombre de visites associées à un visiteur unique. On est donc dans l'incapacité de calculer ces bornes qui sont pourtant primordiales pour la prise de décision.


Conclusion :  avec cette approche par session on peut toujours identifier une variation gagnante et mesurer la probabilité de l'existence du gain, mais il est impossible de présager de sa taille! Personnellement je trouve cela très limitant.


Pourquoi ce choix (sous-optimal) ?

La raison est que pour pouvoir "suivre" un visiteur sur une longue période, il est nécessaire de stocker ses informations de visite coté serveur. Or vu les volumes que compte traiter Google (en particulier avec la version gratuite qui aura forcément du succès), ce serait irréalisable (même pour Google).
C'est aussi certainement pour cette raison que l'outil d'analytic de Google fonctionne comme ça, et vu qu'Optimize est basé sur Google Analytics...
Par conséquent, ce choix de ne pas gérer correctement la notion de visiteur unique, a de forte chance de rester tel quel.

Ma conclusion est que Google Optimize va probablement prendre de belles parts de marché chez les "petits" qui choisiront Optimize pour les même raisons qu'ils ont déjà Google Analytics.

Mais pour les plus "gros" (et les plus matures sur le sujet), je pense que les raisons citées ici, et aussi pour le coté confidentialité (comme avoir des serveurs dans le pays du client), préféreront les acteurs historiques de l'A/B test et de la personnalisation.

De plus, cela va peut être aider à la maturation du marché. C'est peut être une bonne chose que les gens s'exercent d'abord avec une solution gratuite aux fonctionnalités limités. Cela leur donnera l'envie d'utiliser des solutions plus complètes, une fois qu'ils auront compris ce qu'ils ont a y gagner.