Este bonus surge por una serie de preguntas que me hacen alumnos de los masters y cursos donde imparto clases y que son recurrentes, acerca de como funcionan las herramientas de testing y personalización y cuales son las más adecuadas para cada proyecto o cliente.
De inicio debemos distinguir el testing de la personalización.
En el testing siempre existe un grupo de control. El grupo de control son un conjunto de usuarios que siempre van a ver la versión original de la URl, pantalla o proceso que esté siendo objeto del test.
Luego están las versiones alternativas de esa URL, pantalla o proceso o variaciones. A esas versiones llegan usuarios en la misma proporción que a la versión de control, y el objetivo es comprobar como los cambios presentados en las variaciones afectan a la métrica de control que hemos definido.
Por ejemplo, queremos testar una página de producto en la que modificamos la fotografía del producto. Y empleamos dos variaciones, cada una con una imagen de producto diferente. El KPI principal que medimos es el clic en add to cart.
Hecho de esta forma, en este test el 33,3% de los usuarios que accedan a esa URL del producto verán la versión original, otro 33,3% la versión alternativa 1 y otro 33,3% la versión alternativa dos.
En función del rendimiento de cada versión de cara al KPI principal que medimos y teniendo en cuenta todos los datos relativos al test valoraremos cual de dichas versiones ha funcionado mejor.
En la personalización no tenemos un grupo de control, ni versiones o variaciones de una URL, pantalla o proceso.
Lo que hacemos es indicar que a un conjunto de usuarios definido por una serie de variables se le enseñe esa URL, pantalla o proceso de una manera concreta, por pertenecer a ese grupo de usuarios, pero no se compara su rendimiento con otro grupo similar como si se haría en un test.
Teniendo esto claro pasaríamos a diferenciar las herramientas client-side de las server-side.
En client-side los cambios se ejecutan en el navegador via JS. Se sirve la misma URL, pero los cambios ocurren en el navegador del usuario. Mejor para cambios ligeros que no influyan en la funcionalidad o en nada que no sea estrictamente el layout definido. Baja carga de IT. Efecto flickering y su impacto en conversión.
En server-side, los cambios se producen a nivel de servidor. Llega una petición y se sirve el contenido que corresponde en función de cual sea la versión que corresponda a cada usuario. Mayor carga técnica. Mayor robustez, sobre todo sitios dinámicos con presencia de SPA.
Dentro de las client-side tenemos las que cargan su JS de forma síncrona y de forma asíncrona.
La carga síncrona implica que cada script se carga complemtamente antes de cargar el siguiente. La asíncrona permite la carga simultánea de scripts.
En general se prefiere la carga asíncrona.
¿Qué herramienta es mejor?