Retención en juegos: cómo medir D1, D7 y D30
Por Mike Dalton ·
La retención en un juego es la proporción de jugadores nuevos que vuelven a jugar un número determinado de días después de su primer día. Las tres medidas estándar son la retención D1, D7 y D30: la proporción de jugadores nuevos que vuelven a jugar 1, 7 y 30 días después de su primer día. Esta guía explica cómo se calculan estos números, los detalles que los cambian, una consulta SQL que los calcula y qué se considera un buen resultado.
¿Qué son la retención D1, D7 y D30?
La retención se mide por cohorte. Una cohorte es el grupo de jugadores cuyo primer día de juego fue el mismo día, y ese primer día es el día 0.
- La retención D1 es la proporción de una cohorte que jugó el día 1, el día después de su primer día.
- La retención D7 es la proporción que jugó el día 7.
- La retención D30 es la proporción que jugó el día 30.
Por ejemplo, si 200 jugadores juegan por primera vez un lunes y 80 de ellos vuelven a jugar el martes, la retención D1 de la cohorte del lunes es 80 / 200 = 40%. Si 24 de esos mismos 200 juegan el lunes siguiente, la retención D7 es 12%.
Retención clásica y retención continua
Hay dos definiciones comunes, y dan números distintos para los mismos jugadores:
- La retención clásica (también llamada retención de N días o estricta) cuenta a un jugador solo si jugó exactamente el día N. Un jugador que no juega el día 7 y juega el día 8 no cuenta para D7.
- La retención continua (en inglés, rolling o unbounded) cuenta a un jugador si jugó el día N o cualquier día posterior. Siempre es al menos tan alta como la retención clásica, y puede aumentar con el paso del tiempo.
No todas las herramientas usan la misma. GameAnalytics y Unity Analytics reportan retención clásica. La opción predeterminada de Mixpanel es On or After
, que es retención continua, y Amplitude ofrece las dos. Antes de comparar tus números con un benchmark o con otra herramienta, revisa qué definición usa cada uno. Game Stats AI reporta retención clásica.
Detalles que cambian el número
Dos equipos pueden calcular la retención D1 con los mismos datos y obtener resultados distintos. Estas son las razones habituales:
- Qué cuenta como activo. Cualquier sesión, una partida terminada o cualquier evento. Una definición más estricta da una retención más baja.
- Los límites de cada día. Días del calendario en UTC, días del calendario en una zona horaria local, o ventanas de 24 horas que empiezan con la primera sesión del jugador. GameAnalytics y Unity usan días del calendario en UTC; Amplitude y Mixpanel usan ventanas de 24 horas de forma predeterminada. Un jugador que juega por primera vez a las 23:00 y vuelve a jugar a las 09:00 de la mañana siguiente volvió el día 1 si se usan días del calendario, pero el día 0 si se usan ventanas de 24 horas.
- Días que aún no terminan. La retención D7 de una cohorte no se conoce hasta que termina su día 7. Muéstrala vacía, no como 0%, o las cohortes recientes bajarán el promedio.
- Hora del juego u hora de importación. Usa la hora en que el jugador realmente jugó, no la hora en que tu servidor recibió los datos. De lo contrario, los datos que envías tarde o cargas después quedan en el día equivocado.
- Cohortes pequeñas. En una cohorte de 10 jugadores, un solo jugador cambia la retención D1 en 10 puntos. Promedia entre cohortes ponderando por el tamaño de cada cohorte, que es lo mismo que sumar los jugadores que vuelven y los jugadores nuevos de todas las cohortes antes de dividir. La sección sobre tamaño de muestra de la guía de balance muestra cuánto puede moverse un porcentaje por azar con un tamaño de muestra dado.
Cómo calcular la retención con SQL
Si tus sesiones ya están en una base de datos, esta consulta de PostgreSQL calcula la retención clásica D1, D7 y D30 de cada cohorte. Espera una tabla sessions con una columna player_id y una columna started_at de tipo timestamptz:
WITH active_days AS (
SELECT DISTINCT player_id, (started_at AT TIME ZONE 'UTC')::date AS active_on
FROM sessions
),
first_days AS (
SELECT player_id, MIN(active_on) AS first_day
FROM active_days
GROUP BY player_id
),
today AS (
SELECT (now() AT TIME ZONE 'UTC')::date AS day
)
SELECT
first_day,
COUNT(*) FILTER (WHERE active_on = first_day) AS new_players,
CASE WHEN first_day + 1 < today.day THEN
ROUND(100.0 * COUNT(*) FILTER (WHERE active_on = first_day + 1) / COUNT(*) FILTER (WHERE active_on = first_day), 1)
END AS d1_percent,
CASE WHEN first_day + 7 < today.day THEN
ROUND(100.0 * COUNT(*) FILTER (WHERE active_on = first_day + 7) / COUNT(*) FILTER (WHERE active_on = first_day), 1)
END AS d7_percent,
CASE WHEN first_day + 30 < today.day THEN
ROUND(100.0 * COUNT(*) FILTER (WHERE active_on = first_day + 30) / COUNT(*) FILTER (WHERE active_on = first_day), 1)
END AS d30_percent
FROM first_days
JOIN active_days USING (player_id)
CROSS JOIN today
GROUP BY first_day, today.day
ORDER BY first_day DESC;
La consulta reduce las sesiones a una fila por jugador por día, encuentra el primer día de cada jugador y cuenta cuántos jugadores de cada cohorte estuvieron activos los días 1, 7 y 30. Un valor de retención queda en NULL hasta que ese día termina. Los días son días del calendario en UTC; para usar una zona horaria local, reemplaza los dos valores 'UTC' por el nombre de una zona, como 'America/Bogota'.
¿Qué es una buena retención D1, D7 y D30?
El benchmark público más grande es el GameAnalytics 2026 Mobile and PC Gaming Benchmarks, que cubre más de 16.000 juegos móviles y 3.582 juegos de PC durante 2025. GameAnalytics usa retención clásica.
| Juegos móviles | D1 | D7 | D30 |
|---|---|---|---|
| Mediana | cerca de 22% | un poco menos de 4% | 0,7% a 0,8% |
| 25% superior | un poco más de 30% | 6% a 7% | 1,6% a 1,8% |
| 10% superior | cerca de 40% | 11% a 12% | no publicado |
| Juegos de PC | D1 | D7 | D30 |
|---|---|---|---|
| Mediana | cerca de 7% | 1,1% a 1,3% | 0,2% a 0,25% |
| 25% superior | 12% a 13% | 2,7% a 3,2% | 0,7% a 0,9% |
| 10% superior | 21% a 23% | 5,8% a 6,9% | cerca de 2% |
También verás la regla 40/20/10: 40% en D1, 20% en D7 y 10% en D30. GameAnalytics la describe como una referencia útil que no es universal. Comparada con las tablas anteriores, es una meta para juegos móviles fuertes, no un promedio.
Los benchmarks mezclan muchos géneros, así que úsalos para comprobar que tus números están en un rango razonable. La comparación que te dice más es la de tu juego consigo mismo: cada cohorte nueva frente a las anteriores, y cada versión frente a la anterior.
Mide la retención en Game Stats AI
Para mostrar cómo se ve, creamos un juego competitivo de ejemplo. Durante ocho semanas se unieron entre 10 y 16 jugadores nuevos cada día, y cada partida se envió al endpoint de partidas. Los jugadores se generaron para seguir una curva de retención típica, así que los números muestran cómo leer el informe, no un benchmark.
No necesitas un evento de retención aparte. Un informe de retención cuenta a un jugador como activo cualquier día en que juega una partida, envía un evento, desbloquea un logro o registra un evento de progresión, usando la hora que viene en tus datos. Para crear uno, ve a Informes, haz clic en Nuevo informe y elige Informe de retención.
El informe muestra los jugadores activos diarios, semanales y mensuales en el rango de fechas seleccionado, con la retención D1, D7 y D30 promedio de todas las cohortes, ponderada por el tamaño de cada cohorte. También muestra los promedios de jugadores activos diarios, semanales y mensuales y de la adherencia, que se explica en Relación DAU/MAU en juegos:


Debajo está la tabla de cohortes, con una fila por primer día, de la más reciente a la más antigua. Las celdas más oscuras indican una retención más alta, y una celda queda vacía hasta que su día termina, así que las cohortes más recientes solo muestran D1:


Los días son días del calendario en UTC, y el informe cubre las cohortes de los últimos 90 días a menos que elijas otro rango de fechas. Los mismos números están disponibles en el endpoint del informe de retención, y puedes preguntarle a Claude sobre ellos a través de MCP, por ejemplo ¿Cuál fue nuestra retención D7 para los jugadores que empezaron la semana pasada?
Encuentra dónde se detienen los jugadores nuevos
Una retención D1 baja suele apuntar a la primera sesión: el tutorial, los primeros niveles o la primera partida. Para encontrar el paso exacto en el que se detienen los jugadores nuevos, mide las tasas de finalización de tus primeros niveles, como se muestra en cómo encontrar en qué niveles se atascan los jugadores.
Preguntas frecuentes
¿Qué es la retención D1?
La retención D1 es la proporción de jugadores nuevos que vuelven a jugar el día después de su primer día. Si 100 jugadores empiezan un lunes y 35 juegan el martes, la retención D1 es 35%.
¿El día 0 cuenta como día 1?
No. El día 0 es el primer día del jugador, cuando todos los jugadores de la cohorte están activos por definición. El día 1 es el día siguiente.
¿Cuál es la diferencia entre retención y abandono?
La retención mide la proporción de jugadores que vuelven. El abandono (churn) mide la proporción que deja de jugar. Con la retención clásica, 100% menos la retención D30 no es lo mismo que el abandono, porque un jugador que no jugó el día 30 todavía puede jugar el día 31.
¿Qué es una buena retención D1 para un juego móvil?
En los benchmarks de GameAnalytics para 2025, el juego móvil mediano tuvo cerca de 22% de retención D1, el 25% superior tuvo un poco más de 30% y el 10% superior tuvo cerca de 40%.