¿Qué es A/B Testing?
A/B testing consiste en mostrar dos variantes (A y B) de una funcionalidad a diferentes usuarios para medir cuál funciona mejor. Server-side significa que la asignación ocurre en el servidor, no en el frontend.
Server-side vs Client-side
Server-side: la asignación se decide en el backend. Más seguro, evita flickering, funciona sin JavaScript.
Client-side: la asignación ocurre en el navegador. Más fácil de implementar pero visible y afecta el renderizado.
Implementación básica
// Asignación determinista basada en userId
function getVariant(userId: string, experiment: string): 'control' | 'treatment' {
const hash = hashString(`${experiment}:${userId}`);
return hash % 2 === 0 ? 'control' : 'treatment';
}
// Uso en el endpoint
app.get('/api/checkout', (req, res) => {
const variant = getVariant(req.user.id, 'checkout-v2');
const config = variant === 'treatment'
? newCheckoutConfig
: defaultCheckoutConfig;
res.json(config);
});
Métricas clave
- Tasa de conversión: usuarios que completan la acción deseada.
- Revenue: ingresos generados.
- Engagement: tiempo en página, clics.
- Error rate: tasa de errores en la variante.
Significancia estadística
No detengas el experimento temprano. Necesitas tamaño de muestra suficiente. Usa herramientas como el test de hipótesis para determinar si la diferencia es significativa.
Herramientas
- Google Optimize, VWO, Optimizely para client-side.
- GrowthBook, Eppo para server-side.
- Estadísticas: R, Python scipy, online calculators.
¿Quieres A/B testing en tu producto? En Vynta diseñamos experimentos para optimizar conversiones.