Imagine que es un emprendedor incipiente que acaba de crear un sitio web y una aplicación móvil (por ejemplo, para una tienda de donas). Desea conectar el análisis de usuarios con un presupuesto pequeño, pero no sabe cómo. Todo el mundo usa Mixpanel, análisis de Facebook, Yandex.Metrica y otros sistemas, pero no está claro qué elegir y cómo usarlo.

¿Qué son los sistemas analíticos?
En primer lugar, debo decir que el sistema de análisis de usuarios no es un sistema de análisis de los registros del servicio en sí. La supervisión del funcionamiento del servicio se centra en la estabilidad y el rendimiento, y los desarrolladores la llevan a cabo por separado. La analítica de usuario se creó para estudiar con precisión el comportamiento del usuario: qué acciones realiza, con qué frecuencia, cómo reacciona ante los empujones u otros eventos en el servicio. A nivel mundial, el análisis de usuarios tiene dos áreas: análisis móvil y web. A pesar de las diferentes interfaces y capacidades de los servicios web y móviles, el trabajo con el sistema de análisis en ambas direcciones es aproximadamente el mismo.
¿Por qué se necesita esto?
Análisis de usuario necesarios:
- para monitorear lo que sucede cuando se usa el servicio;
- para cambiar el contenido y comprender dónde desarrollar, qué características agregar / eliminar;
- para encontrar lo que a los usuarios no les gusta y cambiarlo.
Como funciona
Para estudiar el comportamiento del usuario, debe recopilar un historial de este comportamiento. ¿Pero qué coleccionar exactamente? Esta pregunta representa hasta el 70% de la complejidad de toda la tarea. Muchos participantes en el equipo de producto deben responderlo juntos: gerente de producto, programadores, analistas. Cualquier error en este paso es costoso: no puede recopilar lo que necesita y recopilar algo que no le permita sacar conclusiones significativas.
Una vez que haya decidido qué ensamblar, debe considerar la arquitectura de cómo ensamblarlo. El objeto principal con el que trabajan los sistemas analíticos es un evento. El evento es una descripción de lo sucedido que se envía al sistema de análisis en respuesta a la acción de un usuario. Como regla general, para cada una de las acciones seleccionadas para el seguimiento en el paso anterior, el evento parece un paquete JSON con campos que describen la acción perfecta.
¿Qué tipo de paquete JSON?Un paquete JSON es un archivo de texto que describe lo que sucedió. Por ejemplo, un paquete JSON puede contener información de que el usuario Mary realizó la acción de Juego iniciado a las 23:00 el 15 de noviembre. ¿Cómo describir cada acción? Por ejemplo, un usuario hace clic en un botón. ¿Qué propiedades se deben recolectar en este momento? Se dividen en dos tipos:
- súper propiedades: propiedades que son características de todos los eventos que siempre están presentes. Esta vez, dispositivo idi, versión api, versión analítica, versión OS;
- propiedades específicas del evento: estas propiedades son arbitrarias y la principal dificultad es cómo elegirlas. Por ejemplo, para el botón "comprar monedas" en el juego, tales propiedades serían "cuántas monedas compró el usuario", "cuánto cuestan las monedas".
Un ejemplo de un paquete JSON en un servicio de aprendizaje de idiomas:

Pero, ¿por qué no simplemente recoger todo en una fila?
Porque todos los eventos se crean manualmente. En los sistemas de análisis, no hay un botón de "guardar todo" (y eso no tendría sentido). Solo se recopilan aquellas acciones de la lógica de servicio que son interesantes para alguna parte del equipo. Incluso para cada estado de un botón o ventana, no todos los eventos suelen ser de interés. Para procesos largos (por ejemplo, el nivel del juego), solo el principio y el final pueden ser importantes. Lo que sucede en el medio no puede ser recolectado.
Como regla, la lógica de los servicios consiste en objetos - entidades. Puede ser una entidad de moneda, una entidad de nivel. Por lo tanto, es posible compilar eventos de entidades, sus estados y acciones. Ejemplos: "el nivel ha comenzado", "el nivel ha terminado", "el nivel ha terminado, la razón es devorada por el dragón". Es deseable que todas las entidades que pueden ser "descubiertas" estén cerradas para no violar la lógica y no complicarse aún más el trabajo con la analítica.

¿Cuántos eventos hay en un sistema complejo?
Los sistemas complejos pueden manejar varios cientos de eventos que se recopilan de todos los clientes (gerente de producto, programadores, analistas) y se llevan cuidadosamente (!) A la tableta y luego a la lógica de servicio. La preparación de eventos es un gran trabajo interdisciplinario que requiere que todos comprendan lo que se debe recopilar, la atención y la precisión.
Que sigue
Digamos que se nos ocurrieron todos los eventos interesantes. Es hora de recogerlos. Para hacer esto, necesita conectar el análisis del cliente. Entramos en Google y buscamos análisis móviles (o elegimos entre los conocidos: Mixpanel , Yandex.Metrica , Google Analytics , Facebook analytics , Tune , Amplitude ). Tomamos el SDK del sitio y lo incorporamos en el código de nuestro servicio (de ahí el nombre "cliente", porque el SDK está integrado en el cliente).
¿Y dónde coleccionar eventos?
Todos los paquetes JSON que se crearán deben almacenarse en algún lugar. ¿A dónde enviarlos y a dónde irán? En el caso de un sistema analítico de cliente, ella es responsable de esto. No sabemos dónde están nuestros paquetes JSON, dónde está su almacenamiento, cuántos hay y cómo se almacenan allí. Todo el proceso de recolección es realizado por el sistema y no nos importa. En el servicio de análisis, obtenemos acceso a su cuenta personal, donde ya vemos los resultados del procesamiento de los datos de comportamiento iniciales. Además, los analistas trabajan con lo que ven en su cuenta.
En las versiones gratuitas, los datos de origen generalmente no se pueden descargar. En la versión cara hay tales oportunidades.
¿Cuánto tiempo durará la conexión?
Los análisis más simples se pueden conectar en una hora: será la aplicación Metrika, que mostrará las cosas más simples sin analizar eventos personalizados. El tiempo de configuración para un sistema más complejo depende de los eventos seleccionados. Hay dificultades que requieren un desarrollo adicional:
- ¿Hay una cola de eventos? Por ejemplo, ¿cómo arreglar que un evento no puede venir antes que otro?
- ¿Qué hacer si el usuario ha movido la hora? Cambió la zona horaria?
- ¿Qué pasa si no hay internet?
En promedio, puede configurar Mixpanel en un par de días. Cuando se planea recopilar una gran cantidad de eventos específicos, puede llevar una semana.

¿Cómo elegir cuál necesito?
La estadística general en todos los sistemas analíticos funciona bien. Muy adecuado para vendedores y vendedores: puede ver la retención, cuántos usuarios gastaron en la aplicación, todas las métricas básicas de alto nivel. Para la página de inicio más simple, las métricas de Yandex serán suficientes.
Cuando se trata de tareas no estándar, la elección depende de su servicio, tareas analíticas y eventos que deben procesarse para resolverlos.
- En Mixpanel, por ejemplo, se pueden realizar pruebas A / B. Como hacerlo Crea un experimento en el que habrá varias muestras y realiza una selección (asigna tales usuarios a A, otros a B). Para A, el botón será verde, para B será azul. Dado que Mixpanel recopila todos los datos, puede encontrar la identificación del dispositivo de cada usuario de A y B. En el código de servicio, usando el SDK, se crean ajustes: estos son lugares en los que algo puede cambiar para las pruebas. Además, para cada usuario, el valor (en nuestro caso, el color del botón) se extrae del panel de mezcla. Si no hay conexión a Internet, se seleccionará la opción predeterminada.
- A menudo, desea no solo almacenar y estudiar eventos, sino también agregar usuarios. El mismo Mixpanel hace esto automáticamente en la pestaña Usuarios. Allí puede ver todos los datos de usuario permanentes (nombre, correo electrónico, perfil de Facebook) y el historial de registros de usuarios. Puede ver los datos del usuario como estadísticas: el dragón comió 100 veces, compró 3 flores . En algunos sistemas, se puede descargar la agregación de usuarios.
- ¿Cuál es la genialidad principal de la analítica de Facebook ? Combina al visitante del servicio con su perfil de Facebook. Por lo tanto, puede encontrar su audiencia y, lo más importante, luego convertirla en una audiencia publicitaria. Por ejemplo, si visité el sitio 1 vez y su propietario incluyó anuncios (audiencia autocompletable en análisis de Facebook) en los visitantes, en el futuro veré anuncios en este sitio en Facebook. Para el propietario del sitio, funciona de manera simple y conveniente, solo debe recordar poner un límite diario al presupuesto publicitario. La desventaja de los análisis de Facebook es que no es particularmente conveniente: un sitio bastante complejo que no está claro de inmediato, no funciona muy rápido.
¡Casi nada que hacer y todo funciona! Probablemente hay contras?
Sí, y uno de ellos es que generalmente es costoso. Para una startup, puede costar alrededor de $ 50k por mes. Pero también hay opciones gratuitas. Yandex App Metrica es gratuita y adecuada para las métricas más básicas.
Sin embargo, si la solución es económica, entonces el análisis no se detallará: será posible ver el tipo de dispositivo, sistema operativo, pero no eventos específicos, y no será posible crear embudos. Mixpanel puede costar 50k dólares al año (por ejemplo, una aplicación con Am Nyam, puede comer mucho). En general, el acceso a los datos suele ser bastante limitado en todos. No puedes imaginar y ejecutar tus propios modelos. El pago generalmente se realiza mensualmente / periódicamente.
Alguna mas?
Pero lo peor es que incluso Mixpanel considera la cantidad de datos que es característica de una aplicación móvil activa como una aproximación (abiertamente indicada directamente en la documentación). Si compara los resultados con el análisis del servidor, los valores serán diferentes. (Para obtener información sobre cómo crear su propio análisis de servidor, ¡lea nuestro próximo artículo!)
El gran inconveniente de casi todos los sistemas analíticos es que restringen el acceso a los registros sin procesar. Entonces, al iniciar su propio modelo, parece que sus propios datos no funcionarán. Por ejemplo, si observa los embudos en Mixpanel, solo puede calcular el tiempo promedio entre pasos. No se pueden calcular métricas más complejas, como el tiempo medio o los percentiles.
Además, a menudo la capacidad de agregaciones complejas y segmentaciones no es suficiente. Por ejemplo, el grupo astuto de "unir a los usuarios que nacieron en 1990 y compraron al menos 50 donas cada uno" puede no estar disponible.
El análisis de Facebook tiene una interfaz muy compleja y es lento.
¿Y si enciendo todos los sistemas a la vez?
Gran idea! A menudo sucede que diferentes sistemas producen resultados diferentes. Números diferentes Además, algunos tienen uno funcional, en segundo lugar otro, otros son gratuitos.
Además, se pueden incluir varios sistemas en paralelo para las pruebas: por ejemplo, para familiarizarse con la nueva interfaz y cambiar gradualmente a ella. Como en cualquier negocio, aquí debe conocer la medida y conectar el análisis en un volumen que pueda realizar un seguimiento (y que no ralentizará la conexión de red).
Todos nos conectamos y luego lanzamos nuevas funciones, ¿cómo agregar eventos?
Lo mismo que cuando se conecta el análisis desde cero: recopile una descripción de los eventos necesarios y use el SDK para pegarlo en el código del cliente.
Espero que encuentre útiles las respuestas a sus preguntas frecuentes. Si le ayudan a comprender que el análisis de clientes no es adecuado para su aplicación, le recomendamos que pruebe el análisis de su servidor. Hablaré sobre esto en la siguiente parte, y luego hablaré sobre cómo traducir esto en mi proyecto.