Estadística

Pérdida de Seguimiento en Test A/B: el dato que desaparece

Consentimiento, bloqueadores y políticas de navegador borran parte del dato. La pérdida de seguimiento solo sesga el test A/B cuando es diferencial.

Ilustración plana de una larga hilera horizontal de esferas verdes idénticas atravesando el cuadro sobre un fondo verde menta claro, en tonos de verde profundo

La pérdida de seguimiento no sesga un test A/B por ser grande, lo sesga por ser diferencial. Si las dos variantes pierden la misma fracción de eventos, el experimento se queda con menos dato, pierde poder y sigue siendo honesto; si la variante nueva pierde más que la antigua, el número leído está equivocado y ningún tamaño de muestra lo arregla. Esta guía muestra las tres capas que borran dato hoy, con las fechas y los límites oficiales, un ejemplo trabajado en el que un 8 por ciento de conversiones no registradas borra una ganancia real del 10 por ciento, y lo que cambia cuando la pérdida toca el denominador en vez del numerador. Forma parte de nuestra guía completa de test A/B y es el hermano de recogida del sesgo de instrumentación: allí el instrumento mide mal, aquí el instrumento no mide.

Tres capas borran dato, por motivos diferentes

Vale la pena separar las capas porque tienen remedios distintos y plazos distintos.

Capa 1, consentimiento. Donde la base legal exige consentimiento previo para la medición, el visitante que rechaza no debe ser medido. Eso no es un fallo técnico a sortear, es el funcionamiento correcto del sistema. Lo que le interesa al experimento es el tamaño del agujero y su simetría.

Capa 2, bloqueadores. Extensiones y listas de bloqueo impiden la carga del script o el envío del evento. La pérdida aquí es selectiva por dominio, por nombre de archivo y por patrón de petición, lo que la vuelve estructuralmente asimétrica: un script nuevo, alojado en una ruta nueva, es más fácil de bloquear que uno que lleva un año en producción.

Capa 3, políticas del navegador. Esta es la que más sorprende a quien monta experimentos, porque afecta a la cookie propia. WebKit anunció el 21 de febrero de 2019, con Intelligent Tracking Prevention 2.1 en iOS 12.2 y Safari 12.1, que todas las cookies persistentes escritas por el cliente, es decir, creadas a través de document.cookie, pasan a tener validez limitada a siete días. El 24 de marzo de 2020, con iOS y iPadOS 13.4 y Safari 13.1 en macOS, WebKit fue más allá y pasó a bloquear por defecto las cookies para recursos de otros sitios, además de borrar todo el almacenamiento grabable por script (IndexedDB, LocalStorage, claves de medios, SessionStorage y registros de Service Worker) después de siete días de uso de Safari sin interacción del usuario en el sitio. Mozilla, el 14 de junio de 2022, pasó a distribuir Total Cookie Protection por defecto para más usuarios de Firefox en todo el mundo, en Windows, Mac, Linux y Android, creando un tarro de cookies separado para cada sitio visitado.

capa mecanismo qué se pierde escala de tiempo
Consentimiento base legal, banner todo lo de ese visitante inmediato
Bloqueador de contenido script o petición bloqueada eventos, a veces la atribución entera inmediato
Validez de cookie escrita por script 7 días en Safari desde ITP 2.1 la identidad entre visitas a partir del 8º día
Limpieza de almacenamiento grabable por script 7 días sin interacción, desde marzo de 2020 identidad guardada fuera de la cookie a partir del 8º día
Aislamiento por sitio tarro de cookies por sitio en Firefox costura entre dominios inmediato

La tercera y la cuarta fila merecen atención especial de quien ejecuta test A/B, porque no borran un evento, borran la identidad. Un visitante que vuelve al décimo día no es reconocido como el mismo, se aleatoriza de nuevo y puede caer en la otra variante. El efecto práctico no es solo pérdida de dato: es dilución del efecto medido, porque parte de las personas asignadas al tratamiento pasa a ver el control. El tratamiento correcto de la unidad aleatorizada está en unidad de aleatorización.

Sobre el cerco a las cookies de terceros, una corrección de rumbo importante: el 22 de abril de 2025, Anthony Chavez, vicepresidente de Privacy Sandbox, publicó que Google decidió mantener el enfoque actual de ofrecer elección al usuario sobre cookies de terceros en Chrome y que no lanzará un nuevo aviso dedicado para eso. Para experimentación, eso cambia poco, porque un test A/B bien montado nunca dependió de cookies de terceros. Lo que aprieta al experimento es el límite de validez sobre la cookie propia escrita por JavaScript, y ese límite sigue en pie.

Pérdida de seguimiento simétrica y diferencial

La pérdida simétrica preserva la comparación, la diferencial la destruyeDos paneles uno al lado del otro. En el panel de la izquierda, rotulado pérdida simétrica, las barras de conversión de las variantes A y B se acortan en la misma proporción por la parte sombreada que representa el dato perdido: las dos barras disminuyen juntas, la diferencia relativa entre ellas permanece visible y la leyenda dice que el efecto es menos poder. En el panel de la derecha, rotulado pérdida diferencial, solo la barra de la variante B se acorta por la parte sombreada: la barra de B cae hasta casi tocar la de A, la diferencia entre ambas prácticamente desaparece y la leyenda dice que el efecto es sesgo y una ganancia real que desaparece del informe.No es el tamaño del agujero lo que sesga, es su asimetríapérdida simétrica: los dos lados encogenpérdida diferencial: solo B encogeABdiferenciapreservadatono claro = conversiones que existieron y no fueron registradasABdiferenciaborradala ganancia real sigue existiendo, el informe es quien no la ve
La pérdida simétrica cuesta poder y el remedio es más muestra. La pérdida diferencial cuesta la conclusión, y más muestra solo hace que el número equivocado sea más preciso.

Existe una trampa de razonamiento común aquí. Alguien observa que se pierde el 30 por ciento de los eventos, concluye que el dato es basura y deja de testear. Si esa pérdida es simétrica, la conclusión está equivocada: con un 30 por ciento menos de dato necesitas más tiempo, no otra decisión. Y existe la trampa opuesta, más cara: alguien observa que la pérdida es de apenas el 5 por ciento, la considera despreciable y no comprueba la simetría. Un cinco por ciento concentrado en un solo brazo basta para dar la vuelta a un resultado, como muestra el ejemplo siguiente.

Ejemplo trabajado: un 8 por ciento que borra una ganancia del 10 por ciento

Todos los números salieron de la calculadora de significancia incrustada más adelante, con test bilateral. Puedes pegar los recuentos y reproducir cada fila.

El escenario: la variante B mueve el botón de compra a un componente nuevo, y la conversión de esa variante se registra con un evento nuevo, servido desde una ruta nueva de tu dominio. Esa ruta está en una lista de bloqueo popular. El evento del control, que existe desde hace dos años, no lo está.

La verdad. A recibió 30.000 visitantes y 1.500 pedidos, tasa del 5,000 por ciento. B recibió 30.000 visitantes y 1.650 pedidos, tasa del 5,500 por ciento. La calculadora devuelve un lift relativo del 10,00 por ciento, z igual a 2,7457 y valor p de 0,006039, con intervalo de 0,143 a 0,857 punto porcentual. B gana.

Lo que muestra el panel. Un ocho por ciento de las conversiones de B nunca se registraron. B aparece con 1.518 pedidos sobre los mismos 30.000 visitantes, tasa del 5,060 por ciento. La calculadora devuelve un lift relativo del 1,20 por ciento, z igual a 0,3362 y valor p de 0,736707, con intervalo de menos 0,290 a 0,410 punto porcentual. Inconcluyente.

lectura pedidos A pedidos B registrados tasa B lift relativo z valor p veredicto
Nada perdido 1.500 1.650 5,500% +10,00% 2,7457 0,006039 B gana
4% de las conversiones de B perdidas 1.500 1.584 5,280% +5,60% 1,5530 0,120415 inconcluyente
8% de las conversiones de B perdidas 1.500 1.518 5,060% +1,20% 0,3362 0,736707 inconcluyente

Fíjate en que en ninguna fila el panel grita. No aparece error, no aparece alarma, y la variante B nunca llega a “perder”: simplemente deja de ganar. Ese es el formato más peligroso de fallo de dato, porque el desenlace es indistinguible de una hipótesis que no funcionó. La maldición del ganador trata el error en la dirección opuesta, el de sobrestimar al ganador; aquí el error es borrar al ganador.

Calculadora de significancia estadística
Control (A)
Variación (B)
Control (A) · Tasa-
Variación (B) · Tasa-
Mejora relativa-
valor-p-
IC 95% de la diferencia-

Test z bilateral de dos proporciones. "Sin significancia" casi siempre significa que falta muestra, no que las versiones sean iguales.

Cuando la pérdida toca el denominador

El caso anterior es pérdida en el numerador: la conversión ocurrió y no fue registrada. Existe un caso peor de diagnosticar y más fácil de detectar: pérdida en el denominador, cuando la propia exposición del visitante a la variante no llega al servidor.

La pérdida en el denominador es más fácil de detectar porque deja una marca aritmética: la proporción observada de visitantes entre los brazos deja de coincidir con la asignación configurada. Es exactamente lo que mide el test de reparto desigual de tráfico, y los números siguientes salieron del verificador de SRM, en un test de bondad de ajuste chi cuadrado contra la asignación esperada del 50 por ciento para cada lado.

exposiciones en A exposiciones en B fracción observada de B chi cuadrado valor p ¿pasa el guardrail de 0,01?
30.000 29.700 (1% perdido) 49,749% 1,51 0,2195
30.000 29.400 (2% perdido) 49,495% 6,06 0,0138 sí, al límite
30.000 28.800 (4% perdido) 48,980% 24,49 0,00000075 no
30.000 27.600 (8% perdido) 47,917% 100,00 por debajo de 0,000001 no

La lectura útil de esa tabla es la segunda fila. Una pérdida del 2 por ciento en el registro de exposición produce un valor p de 0,0138, que pasa el umbral convencional de 0,01 usado como guardrail de reparto desigual, y aun así ya basta para mover la tasa observada. Es decir: la alarma de reparto desigual es un suelo, no un techo. Detecta el fallo grosero y deja pasar el fallo lo bastante pequeño para ser silencioso y lo bastante grande para importar.

Por qué la variante nueva casi siempre pierde más

La asimetría no es mala suerte, es consecuencia estructural de cómo se implementa un test. Conviene tener la lista a mano porque funciona como guion de revisión antes de lanzar el experimento.

  1. Script nuevo en ruta nueva. Los dominios y rutas recién creados no tienen historial y son más fáciles de casar con reglas genéricas de bloqueo.
  2. Evento nuevo con nombre nuevo. El evento del control sobrevivió a dos años de ajustes de seguimiento; el de la variante nació ayer.
  3. Una etapa más en el embudo. Si la variante inserta una pantalla, cada pantalla adicional es una oportunidad más de que el visitante salga antes del disparo.
  4. Momento del disparo. Un evento disparado en la descarga de la página, o después de una navegación, pierde más que uno disparado en el clic.
  5. Peso y tiempo de carga. Una variante más pesada llega a registrar menos porque parte de los visitantes abandona antes de que el script termine de cargar.
  6. Cambio en el consentimiento. Cualquier variante que toque el banner altera la propia tasa de consentimiento, y ahí la pérdida es diferencial por construcción.
  7. Dominio de terceros en la conversión. Si la variante lleva a un proveedor de pago diferente, la conversión cruza una frontera de dominio más.

Los puntos 1, 2 y 7 caen enteros dentro del territorio de datos propios, y el punto 5 es una de las razones por las que una variante con peor rendimiento de carga puede parecer peor de conversión sin que el cambio visual tenga nada que ver.

Lo que efectivamente reduce el problema

Dónde ocurren la aleatorización y el registro de exposición cambia lo que se pierdeDiagrama que compara dos caminos de dato, uno encima del otro. En el camino de arriba, rotulado aleatorización en el cliente, una caja de visitante apunta a una caja de script en el navegador, que apunta a una caja de registro, y tres marcas de riesgo aparecen sobre las flechas indicando los puntos donde bloqueador, validez de cookie y consentimiento pueden interrumpir el flujo antes del registro. En el camino de abajo, rotulado aleatorización en el servidor, la caja de visitante apunta directo a una caja de servidor que ya graba la exposición, y solo después la página se renderiza en el navegador, de modo que solo el evento de conversión queda sujeto a las interrupciones, con una única marca de riesgo.Quien graba la exposición decide si el denominador es fiablealeatorización en el cliente: 3 puntos de pérdida antes de que exista el denominadorvisitanteel script aleatorizaen el navegadorregistroxxxbloqueo, validez decookie, consentimientoaleatorización en el servidor: el denominador nace antes del navegadorvisitanteel servidor aleatorizay graba la exposiciónconversiónxsolo el numerador sigue expuestoNinguno de los dos caminos exime de la base legal para tratar el dato. Lo que cambia es dónde se crea el denominador.
Mover la aleatorización y el registro de exposición al servidor no elimina la pérdida, pero quita de en medio la parte de ella que produce reparto desigual, que es la más difícil de detectar después.

En orden de impacto, para quien necesita elegir dónde invertir primero:

  1. Registrar la exposición en el servidor. Estabiliza el denominador y es el único movimiento que ataca el reparto desigual en el origen. El camino está en test A/B en el servidor y la comparación entre las dos arquitecturas en cliente contra servidor.
  2. Usar identificador propio con validez definida en el servidor. Una cookie definida por el servidor no cae en la regla de siete días que afecta a las cookies escritas por document.cookie.
  3. Mantener la recogida de la variante idéntica a la del control. Mismo script, misma ruta, mismo momento de disparo. Solo cambia lo que aparece en pantalla.
  4. Medir la tasa de pérdida como métrica de guardrail. Registra la razón entre eventos esperados y eventos recibidos, por variante, junto al resultado. El papel de esos frenos está en métricas de guardrail.
  5. Elegir la unidad de aleatorización compatible con la durabilidad real de la identidad. Si la identidad no sobrevive siete días en ese navegador, un test de cuatro semanas midiendo comportamiento por usuario no está midiendo lo que promete.
  6. Declarar la política de consentimiento en el plan de análisis. Quién entra en el cálculo y quién no es una decisión de diseño, no de análisis, y está en el plan de análisis preregistrado.

Checklist antes de leer el resultado

  1. ¿La tasa de eventos recibidos sobre eventos esperados está medida por variante?
  2. ¿El reparto de tráfico observado coincide con el configurado, y miraste el valor p y no solo la diferencia porcentual?
  3. ¿La variante usa el mismo script, la misma ruta y el mismo momento de disparo que el control?
  4. ¿La variante toca el banner de consentimiento de alguna forma?
  5. ¿La duración del test es compatible con la durabilidad de la identidad en el navegador dominante de tu público?
  6. ¿La tasa de rechazo de consentimiento es parecida en los dos brazos?
  7. ¿Existe alguna métrica leída en el servidor, como pedido pagado, para comparar con la métrica leída en el navegador?

El punto 7 es el más subestimado. Comparar el recuento de pedidos de tu base de datos con el recuento de conversiones de tu rastreador, por variante, es la auditoría más barata que existe y resuelve la mayoría de los casos en una consulta.

Errores comunes

Hazlo automático en Donnu

El agujero raro es técnico. El agujero común es organizativo: la pérdida de dato la conoce quien cuida el seguimiento, el resultado del test lo lee quien cuida el producto, y las dos informaciones nunca aparecen en la misma pantalla.

En Donnu, el reparto observado de visitantes por variante queda al lado del resultado desde el primer día, con el valor p del ajuste, porque la desviación de asignación es el síntoma común de pérdida en el denominador, de error de aleatorización y de tráfico de bots. La aleatorización y el registro de exposición pueden hacerse en el servidor, sin depender de cookies escritas por script, y la misma calculadora de significancia acepta los recuentos de tu base de datos para que compares la lectura del navegador con la lectura del servidor antes de decidir nada.

Referencias

Lee también: Sesgo de instrumentación · Reparto desigual de tráfico (SRM) · Unidad de aleatorización · Test A/B en el cliente o en el servidor · Datos propios · Verificador de SRM · Leia em português

Preguntas frecuentes

¿La pérdida de seguimiento invalida un test A/B?
Solo cuando es diferencial. Si la misma fracción de eventos se pierde en las dos variantes, el experimento se queda con menos dato, pierde poder y sigue sin sesgo: las dos tasas encogen juntas y la comparación sobrevive. Lo que rompe el resultado es la pérdida que afecta más a una variante que a la otra, y eso pasa con facilidad siempre que la variante nueva cambia la forma en que se recoge el dato, por ejemplo con un script nuevo, un dominio nuevo, un evento renombrado o una etapa más en el embudo.
¿Safari borra mi cookie de test A/B?
Si la cookie la escribe JavaScript, sí, en una semana. WebKit anunció el 21 de febrero de 2019, con Intelligent Tracking Prevention 2.1 en iOS 12.2 y Safari 12.1, que todas las cookies persistentes escritas por el cliente, es decir, cookies persistentes creadas vía document.cookie, pasan a tener validez limitada a siete días. El 24 de marzo de 2020 WebKit extendió la lógica a todo el almacenamiento grabable por script, borrando IndexedDB, LocalStorage, claves de medios, SessionStorage y registros de Service Worker después de siete días de uso de Safari sin interacción del usuario en el sitio.
¿Chrome va a eliminar las cookies de terceros?
No lo hará. El 22 de abril de 2025, Anthony Chavez, vicepresidente de Privacy Sandbox, publicó que Google decidió mantener el enfoque actual de ofrecer elección al usuario sobre cookies de terceros en Chrome y que no lanzará un nuevo aviso dedicado para eso. Para quien ejecuta experimentos, sin embargo, la noticia cambia poco: el test A/B bien montado usa cookie propia, y el cerco relevante nunca fueron las cookies de terceros sino el límite de validez impuesto al almacenamiento grabable por script en Safari y el aislamiento por sitio de Firefox.
¿Cómo se convierte la pérdida de dato en reparto desigual de tráfico?
Cuando la pérdida afecta al registro de exposición en vez del registro de conversión. Si el 4 por ciento de las exposiciones de una variante nunca llegan al servidor, el denominador de esa variante encoge y la proporción observada entre los brazos deja de coincidir con la asignación configurada. Una diferencia de 30.000 contra 29.400 ya da chi cuadrado de 6,06 y valor p de 0,0138; una de 30.000 contra 28.800 da chi cuadrado de 24,49 y valor p de 0,00000075, muy por debajo del umbral convencional de 0,01 usado como guardrail de reparto desigual.
¿El consentimiento denegado debe entrar en el denominador del test?
La respuesta honesta es que quien no consintió la medición no debería ser medido, y por eso no entra en la lectura de la métrica. Lo que sí necesita entrar en tu informe es el tamaño y la simetría de ese agujero: cuántos visitantes rechazaron, si la tasa de rechazo es parecida en las dos variantes y si alguna variante toca el propio banner de consentimiento. Testear cualquier cosa que altere el banner es el caso en que la pérdida es garantizadamente diferencial, y ahí la lectura por evento de navegador no es fiable.
¿La medición en el servidor resuelve el problema?
Resuelve la parte de la recogida y no resuelve la parte legal ni la atribución. Aleatorizar y registrar la exposición en el servidor quita de en medio bloqueadores, límites de validez de cookie y ejecución de script, y es lo que estabiliza el denominador. Sigue siendo necesario respetar la base legal para tratar el dato y sigue existiendo la frontera en la que la conversión ocurre fuera de tu servidor, en una pasarela o en una aplicación, donde la costura entre identificadores vuelve a ser el punto frágil.