Volver al blog
14 de agosto de 2026Sergei Solod12 min de lectura

Lo que aprendí al probar la frecuencia de popunders frente al engagement de los usuarios

Aumenté la frecuencia de los popunders en una aplicación web en producción y comparé el engagement agregado antes y después del cambio. Mantuve un retraso inicial de 45 segundos y un cooldown mínimo de cuatro minutos, pero la lección más útil fue aprender a interpretar con cautela un promedio de engagement aparentemente estable.

popunderlimitación de frecuenciamonetización webengagement de usuariosanalítica web

Esperaba que la frecuencia de los popunders mostrara un compromiso evidente: enseñar menos anuncios para proteger la experiencia de usuario, o mostrarlos con mayor frecuencia para aumentar los ingresos hasta que el engagement empezara a caer. En producción, la relación fue bastante menos limpia.

Después de aumentar la frecuencia en una de mis aplicaciones web en producción, esperaba ver una ruptura clara en los datos. En cambio, la métrica agregada siguió moviéndose aproximadamente dentro de su rango diario habitual. Hubo días mejores y peores, pero no observé una caída sostenida que empezara claramente con la nueva política.

Finalmente mantuve esta configuración:

Retraso inicial: 45 segundos
Cooldown mínimo después de un popunder exitoso: 4 minutos

También mantuve una ventana de frecuencia que permitía como máximo un evento exitoso dentro del mismo período de cuatro minutos:

const policy = {
  initialDelaySeconds: 45,
  cooldownSeconds: 240,
  windowSeconds: 240,
  maxEventsPerWindow: 1,
};

Es pseudocódigo ilustrativo, independiente de cualquier proveedor publicitario, SDK, aplicación o despliegue. La implementación concreta importa menos que la política que representa.

En realidad hay dos decisiones de frecuencia

Al principio planteaba el problema como una sola pregunta: ¿cuántos minutos debería haber entre popunders? Esa abstracción era incorrecta. Hay al menos dos decisiones: el retraso antes de la primera oportunidad publicitaria y el intervalo mínimo antes de las siguientes.

Esos momentos no son equivalentes. Un visitante nuevo aún no ha decidido si el producto le resulta útil; un usuario ya involucrado sí. Por eso llegué a la conclusión de que la primera interrupción merece más protección que las posteriores.

Por qué dejé de monetizar tan agresivamente los primeros segundos

Un retraso inicial más corto hace que más visitantes sean elegibles y, por tanto, crea más oportunidades publicitarias potenciales. Mecánicamente es cierto. Lo que ese razonamiento ignora es cuándo se produce la monetización.

Si el anuncio aparece casi inmediatamente después de entrar, pasa a formar parte de la primera evaluación que el usuario hace del sitio. Si antes dispone de un período sin interrupciones para comprender y utilizar el producto, el mismo mecanismo publicitario aparece en un contexto diferente.

Antes usaba un retraso menor, pero terminé llevándolo a 45 segundos. Sigue siendo relativamente pronto y no pretendía ser una configuración conservadora. Simplemente separa el inicio de la visita de la primera oportunidad de monetización. Empecé a pensar en esos 45 segundos como tiempo para que el producto demuestre su valor, no como inventario publicitario perdido.

Cuarenta y cinco segundos son un umbral, no una cita programada

El retraso establece elegibilidad; no significa que a las 00:45 vaya a aparecer automáticamente un anuncio. El evento real sigue dependiendo de una interacción elegible. Un visitante puede ser elegible a las 00:45 y provocar el primer popunder a la 01:03, cuando realiza la siguiente acción válida.

Lo mismo ocurre con el cooldown. Cuatro minutos significan que otro evento no puede volver a ser elegible antes de que hayan pasado cuatro minutos desde el anterior evento exitoso. No significa que aparezca un anuncio automáticamente cada cuatro minutos. Los valores configurados son mínimos; la separación real puede ser mayor.

El intervalo de repetición importó más que el retraso inicial

Cuando ya estaba conforme con el primer retraso, el ritmo de repetición pasó a ser la variable más importante. Un cooldown largo reduce la presión publicitaria, pero también puede hacer que muchos usuarios activos nunca lleguen a generar una segunda oportunidad.

Quería cumplir dos condiciones al mismo tiempo: que un usuario que siguiera utilizando la aplicación tuviera una posibilidad realista de generar otro evento de monetización y que, entre esos eventos, siguiera habiendo bloques significativos de uso sin interrupciones.

Conservé cuatro minutos. Con un retraso inicial de 45 segundos, los primeros puntos teóricos de elegibilidad serían aproximadamente 00:45, 04:45, 08:45 y 12:45. Los eventos reales pueden ocurrir después porque sigue siendo necesaria una interacción válida.

Por qué cuatro minutos se sentían distintos de simplemente maximizar impresiones

Reducir el cooldown genera más oportunidades teóricas. Si la única métrica son las oportunidades publicitarias por usuario, un intervalo menor es obviamente mejor. Pero el producto solo tiene valor publicitario mientras siga teniendo valor para el usuario.

monetización adicional
-
daño de comportamiento
=
valor neto

Cuatro minutos me daban un bloque significativo de uso normal del producto durante el cual otro popunder era imposible. Esa garantía me importaba más que la frase «uno cada cuatro minutos».

Después de un evento de monetización, el usuario obtiene varios minutos durante los que otro evento es imposible.

Esperaba una caída visible del engagement

Antes del despliegue, mi hipótesis principal era que una mayor frecuencia publicitaria produciría una caída clara en analytics al comparar el antes y el después. Si hubiera ocurrido, habría tenido una razón fuerte para suavizar la política.

En cambio, el engagement agregado siguió fluctuando de forma parecida a antes. No apareció un nuevo nivel claramente más bajo ni una secuencia sostenida de datos peores tras el cambio. El modo de fallo que esperaba que fuera lo bastante grande como para verse no apareció de forma clara.

Lo que realmente puedo afirmar

No puedo afirmar que los anuncios no tuvieran ningún efecto, que los usuarios no se molestaran, que la retención permaneciera exactamente igual o que esta configuración sea óptima en términos generales. Una media agregada no demuestra nada de eso.

La afirmación más fuerte respaldada por lo que observé es más limitada:

Después de aumentar la frecuencia, no observé una caída clara y sostenida del engagement agregado que superara la variación normal que ya veía antes.

Eso deja espacio para efectos más pequeños, diferencias entre grupos de usuarios y comportamientos que un único promedio puede ocultar. Probé si la configuración era suficientemente aceptable como para conservarla, no si había encontrado un óptimo universal.

Un promedio estable puede ocultar comportamientos muy distintos

Una media agregada casi sin cambios puede representar realidades muy diferentes. Puede que casi todos se comporten igual; que algunos usuarios se marchen antes mientras otros permanezcan más tiempo; que un grupo pequeño reaccione negativamente sin mover demasiado la media; o que exista un efecto negativo real pero menor que la variación diaria habitual.

Por eso trato una media estable como una señal útil de vigilancia, no como prueba de impacto cero.

Engagement no significa literalmente duración de la visita

Tampoco traté una métrica de engagement de analytics como la duración media exacta de una sesión. El engagement activo depende de la definición del sistema de medición y no equivale necesariamente al tiempo transcurrido con una pestaña abierta. Los usuarios cambian el foco, vuelven más tarde o navegan de formas que vuelven engañoso un modelo simple de «tiempo en el sitio».

Por eso no derivé el intervalo publicitario de una fórmula como «el engagement medio es X, así que el siguiente popunder debe ocurrir antes de X». Utilicé la métrica de forma direccional: ¿parecía el producto materialmente más débil después del cambio? En el nivel agregado que estaba observando, la respuesta fue no.

Cooldown y ventana de frecuencia están relacionados, pero no son lo mismo

La implementación tenía un cooldown de 240 segundos y una ventana de 240 segundos con un máximo de un evento exitoso. En gran medida son redundantes, pero expresan restricciones ligeramente distintas.

El cooldown dice que no se permita otro evento hasta que haya transcurrido suficiente tiempo desde el anterior. La ventana dice que no se permita más de un evento exitoso dentro del período definido. Mantuve ambos para que la regla principal siguiera siendo evidente incluso si la integración interpretaba uno de los mecanismos de otra manera.

Dos popunders exitosos nunca deben ocurrir con menos de cuatro minutos de separación.

Un evento por ventana no significa un evento por visita

Un valor como maxEventsPerWindow = 1 no significa necesariamente un anuncio durante toda la estancia del visitante. Su alcance es la ventana configurada; cuando esa ventana termina puede comenzar otra. Tampoco significa una sola acción del usuario. Se refiere a un evento de monetización exitoso dentro de ese período.

Ahora, cuando reviso lógica de frecuencia, hago tres preguntas: ¿qué cuenta el contador?, ¿qué lo reinicia?, y ¿cuánto dura la ventana de reinicio? Sin esas respuestas, un número bruto como 1 dice muy poco.

Separé la política de la implementación específica del proveedor

El comportamiento reutilizable puede expresarse sin exponer scripts, identificadores ni nombres de parámetros específicos:

function isEligible(state, now) {
  if (!state.hasShownFirstEvent) {
    return now - state.arrivalTime >= 45_000;
  }

  return now - state.lastEventTime >= 240_000;
}

Es pseudocódigo explicativo, no código fuente de producción. Los proveedores, SDK y arquitecturas de despliegue cambian; la política es más duradera: proteger el inicio de la visita, permitir monetización después de que haya comenzado un uso real, imponer un cooldown estricto y repetir solo después.

Un build correcto y un comportamiento correcto son cosas distintas

Un typechecker, un linter y un build de producción pueden verificar muchas propiedades técnicas, pero ninguno demuestra que la línea temporal publicitaria se comporte bien en un navegador. Esta función también necesita validación de comportamiento.

1. Abrir un estado limpio del navegador.
2. Interactuar antes del retraso inicial: no debe aparecer ningún popunder.
3. Esperar hasta superar el retraso inicial.
4. Realizar una interacción elegible: puede aparecer el primer popunder.
5. Seguir interactuando antes de terminar el cooldown: no debe aparecer un segundo.
6. Esperar a que termine el cooldown.
7. Interactuar de nuevo: ya puede aparecer otro popunder.

Un build exitoso y una prueba de comportamiento exitosa responden preguntas diferentes. Ambas importan.

La experiencia publicitaria combinada importa más que cualquier ubicación individual

Dos sistemas publicitarios independientes pueden parecer razonables por separado y, aun así, crear juntos una experiencia agresiva. Dos formatos con límites de cuatro minutos pueden intercalarse de forma que el usuario reciba interrupciones aproximadamente a las 00:45, 02:45, 04:45 y 06:45.

Eso me llevó a una regla mejor:

Los límites de frecuencia deben evaluarse por experiencia de usuario, no por script publicitario.

El usuario experimenta la suma de las interrupciones, no el archivo de configuración que produjo cada una. Una auditoría de producción debería preguntar cuántos eventos publicitarios disruptivos puede encontrar realmente una persona durante un período determinado.

El recuento bruto de impresiones es el objetivo equivocado

Crear más oportunidades reduciendo el cooldown es fácil. La pregunta difícil es cuánta monetización adicional puede obtenerse sin reducir el valor económico total del usuario.

Una configuración con menos anuncios por visita puede generar más ingresos con el tiempo si conserva mejor el uso repetido. Por eso me importa más ingresos por usuario a lo largo del tiempo que impresiones por visita. La segunda métrica es fácil de maximizar; la primera es el problema empresarial real.

Una prueba más sólida miraría más allá de un único gráfico agregado

Mi observación en producción fue suficiente para comprobar que el resultado catastrófico que temía no apareció de forma obvia. No fue suficiente para establecer todos los efectos posteriores.

Un experimento más sólido compararía ingresos de monetización por usuario único, ingresos por visita, eventos publicitarios por usuario, engagement activo, interacciones significativas con el producto, tasa de usuarios que regresan, retención a lo largo del tiempo y valor de usuario a más largo plazo.

Hay que medir ambas caras. Si solo miro la producción publicitaria, casi inevitablemente concluiré que más publicidad es mejor. Si solo miro engagement, puedo ignorar mejoras relevantes de ingresos con un coste de comportamiento mínimo.

Por qué mantuve la política simple

No vi motivo para añadir cada vez más excepciones. La lógica final siguió siendo fácil de explicar: esperar 45 segundos, permitir monetización en la siguiente interacción elegible, imponer un cooldown estricto de cuatro minutos y después permitir que la siguiente interacción elegible vuelva a monetizar.

Un número pequeño de invariantes fuertes es más fácil de entender, probar y depurar que una política llena de excepciones poco visibles.

La asimetría es intencionada

La política trata de forma diferente a usuarios nuevos y ya involucrados. Un visitante nuevo recibe más protección; quien continúa interactuando genera más oportunidades de monetización con el tiempo.

Así, la presión publicitaria crece con el engagement demostrado en lugar de aplicarse con máxima intensidad desde el principio. Ese cambio conceptual fue uno de los resultados más útiles de la prueba.

Lo que no concluiría de este caso

No diría que 45 segundos sean universalmente correctos, que cuatro minutos sean el intervalo óptimo, que una mayor frecuencia de popunders nunca perjudique el engagement ni que una media estable signifique que los usuarios no se ven afectados. Tampoco generalizaría una sola carga de producción a todos los productos web.

Cada producto tiene usuarios, expectativas, fuentes de adquisición, patrones de uso y economía distintos. El resultado es útil precisamente porque es específico, no porque demuestre una regla universal.

La parte que me hizo cambiar de opinión

Antes del experimento esperaba una relación casi mecánica entre presión publicitaria y engagement: si aumentas suficientemente una, la otra debería caer de forma visible. La producción fue menos ordenada.

Aumenté la frecuencia hasta un nivel que consideraba relativamente alto. Los usuarios siguieron interactuando y el engagement agregado permaneció dentro de su rango diario habitual. Eso no significa que el coste fuera cero. Significa que no fue lo bastante grande como para generar la señal evidente que esperaba en la métrica que estaba observando.

La diferencia entre «no hay efecto» y «no hay un efecto obvio en esta medición» es importante. Los sistemas en producción rara vez ofrecen las historias causales limpias que nos gustaría tener.

Mi regla ahora

Ya no pregunto con qué frecuencia puedo mostrar técnicamente otro popunder. Pregunto cuánto tiempo de uso ininterrumpido debería recibir un usuario nuevo antes de empezar la monetización, cuánto debería recibir un usuario ya involucrado antes de que otro evento sea posible y si la publicidad adicional aumenta el valor total del usuario o solo el contador de impresiones.

Para esta aplicación, la configuración que mantuve fue:

45 segundos antes de la primera elegibilidad
al menos 4 minutos entre eventos exitosos

Los valores concretos son solo una implementación. La regla que reutilizaría es más general:

Protege el inicio del recorrido del usuario, monetiza más el engagement demostrado que la curiosidad inicial y evalúa el resultado por el valor a nivel de usuario, no por el volumen bruto de publicidad.