Seguimiento eficiente de DAU y MAU en sitios de alto tráfico
El seguimiento de DAU y MAU en sitios de alto tráfico es una tarea desafiante. Este artículo describe cómo resolvimos este problema en Logto.
No hay duda de que como proveedor de identidad, Logto procesa montañas de datos de usuario diariamente. Una de las métricas críticas que no podemos pasar por alto es 'Usuarios Activos Diarios' (DAU) - nos da una idea de cuán comprometidos están nuestros usuarios. Pero cuando se trata de llevar un seguimiento de los DAU y los Usuarios Activos Mensuales (MAU), las cosas pueden complicarse. Administrar volúmenes masivos de datos sin afectar la experiencia del usuario no es fácil, pero es algo que hemos aprendido a manejar eficientemente.
En este artículo, vamos a aprovechar esta oportunidad para guiarte a través de los conceptos relacionados con DAU, explicar cómo se pueden calcular DAU, MAU y una tasa de participación mensual.
DAU, MAU, y Tasa de Participación Mensual
Usuarios activos diarios (DAU)
Los DAU son usuarios únicos quienes interactúan con tu plataforma en un día determinado. Estas interacciones pueden ser cualquier cosa - desde simplemente iniciar sesión, publicar o dar 'like' a algo, o cualquier otra acción específica que signifique actividad. El seguimiento de los DAU nos permite medir la participación del usuario a diario y obtener una idea del tamaño de nuestra base de usuarios activos.
Usuarios activos mensuales (MAU)
El MAU, por otro lado, es un indicador de usuarios únicos que interactúan con tu plataforma al menos una vez al mes. Al igual que los DAU, los usuarios activos pueden variar desde alguien que simplemente ha iniciado sesión hasta alguien que ha interactuado con la plataforma de alguna manera.
Tasa de participación mensual
Cuando se trata de entender con qué frecuencia los usuarios interactúan con nuestra plataforma en un mes, encontramos un valor inmenso en una métrica particular - la Tasa de Participación Mensual (MER). Esto no es más que un número para nosotros, sino un elemento crucial que influye fuertemente en nuestra estrategia de precios.
La MER revela la frecuencia del compromiso de un usuario al señalar la cuenta de días únicos que un usuario inicia sesión o interactúa con nuestra plataforma dentro de un mes. Esta visión no es simplemente útil; es un diferenciador clave para nosotros. A diferencia del enfoque típico que solo se enfoca si un usuario visitó dentro de un mes, nos sumergimos más, nos esforzamos por entender 'cuántas veces'. Este 'cuántas veces' nos permite calibrar la profundidad de la interacción de un usuario con nuestra plataforma y nos proporciona métricas tangibles para ofrecer más valor a nuestros usuarios.
En Logto, la MER es un factor significativo del modelo de precios basado en uso. Al anclar nuestros precios a la MER, nos aseguramos de que nuestros cargos se alineen con el nivel de compromiso del usuario; puedes decir que hemos convertido la equidad en una métrica que podemos medir. Mientras que otros pueden contar un usuario que ha iniciado sesión solo una vez igual que un usuario diario, nosotros hacemos una diferenciación, precios basados en el uso real y el valor proporcionado. A través de esto, garantizamos un enfoque más transparente, justo y, en última instancia, sobresaliente hacia la fijación de precios.
Desde los registros de usuario
Por lo general, el DAU y el MAU se calculan directamente desde los registros de usuario. Pero a medida que estos registros se acumulan, el proceso se vuelve ineficiente y presenta desafíos como la escalabilidad de datos y la retención de registros. Sin mencionar que mantener los registros de los usuarios para siempre no es práctico debido a las regulaciones de privacidad y seguridad.
Otro enfoque: crear una tabla DAU
Es por eso que llegamos con el concepto de una tabla de DAU. Esta tabla incluye principalmente dos columnas: user_id
y date
. La date
puede ser configurada para el inicio de un día.
Tenemos dos formas de mantener esta tabla actualizada. La primera es un trabajo automatizado diario que examina los registros de usuario del día anterior. La segunda se activa con una actualización cada vez que se realiza una actividad de usuario.
Cada vez que nos encontramos con un user_id
único, agregamos una nueva entrada a la tabla DAU, que incluye el user_id
y date
. Esto se hace utilizando una operación SQL "upsert" que requiere una clave única de user_id
y date
.
Como resultado, el seguimiento de DAU y MAU se convierte simplemente en una cuestión de contar filas en la tabla. Y el cálculo de la tasa de interacción mensual se puede hacer combinando group by
y count
.
Resultados y beneficios
La tabla de DAU, que es esencialmente una versión condensada de los registros de usuario, ha agilizado dramáticamente nuestro proceso de cálculo DAU y MAU. No solo hizo más fácil el seguimiento del compromiso del usuario, sino que también redujo significativamente la carga en nuestro sistema.
Conclusión
En nuestro viaje de optimización de los cálculos de DAU y MAU, siempre hemos puesto mucho énfasis en la privacidad del usuario y el cumplimiento legal. Construimos nuestra estrategia alrededor de asegurarnos de que la tabla DAU no guardaría información sensible del usuario. En su lugar, solo almacenamos identificadores anónimos (el valor hasheado del user_id normal) y las fechas de actividad, adhiriéndonos estrictamente a todas las regulaciones de protección de datos relevantes.
Recomendaríamos mucho este enfoque orientado a la privacidad a otros en la industria de servicios digitales. Independientemente de la escala o el volumen de los datos del usuario, la privacidad siempre debe tener la máxima prioridad.
Al final, el seguimiento de datos no tiene que ser complicado, incluso para aplicaciones web de alto tráfico. Una estrategia estable y eficiente como la nuestra puede hacer que el seguimiento de las métricas de compromiso del usuario sea muy fácil.
Esperamos que compartir nuestra experiencia pueda inspirar a otras plataformas digitales y proporcionar ideas sobre cómo desarrollar soluciones innovadoras para una eficaz y eficiente seguimiento de datos.