Cómo y por qué creamos un sistema de análisis personalizado en lugar de Google Analytics





¡Hola, Habr! Mi nombre es Ivan Kizimenko, soy el jefe de análisis de Outside. En este artículo, me gustaría hablar sobre cómo y por qué desarrollamos nuestro propio sistema de análisis personalizado en lugar de Google Analytics. En realidad, trabajamos no solo con analíticas de Google, sino también con otras empresas, incluida, por ejemplo, Adobe.



Pero un buen día (y realmente no estuvo mal) decidimos: “¡Suficiente para soportar esto! Es hora de crear tu propio sistema ". Debajo del corte: sobre las razones de esta decisión, las características del sistema personalizado y una serie de otras cosas interesantes para muchos de los lectores de Habr.



¿Por qué necesitamos todo esto?



Trabajamos con clientes bastante grandes con soluciones globales que tienen sistemas analíticos muy diferentes. Alguien tiene Adobe, alguien tiene una versión básica de Google Analytics, alguien tiene 360.



Pero las soluciones globales tienen varios problemas:



  • Estos son sistemas cerrados con una serie de restricciones de acceso a la funcionalidad.
  • Tienen opciones de personalización mínimas.
  • Si algo se puede mejorar, entonces es muy caro y, además, lleva mucho tiempo.
  • Los análisis cubren sus propias soluciones sin considerar los desarrollos locales.


Dado que Google Analytics es quizás el sistema de análisis más popular, enumeremos primero sus desventajas:



  • Se necesita mucho esfuerzo para crear informes y paneles personalizados.
  • En los informes del sistema, los datos siempre se agregan y este proceso está total o casi totalmente fuera de control.
  • , , , -. .
  • .
  • API.
  • — 24-48 , , .
  • Google Analytics 20. — 200.
  • — . , , IP .


En general, no regañamos a Google Analytics, en absoluto. Este es un sistema excelente, pero es adecuado para una gama limitada, aunque bastante voluminosa, de tareas. Pero tan pronto como surge una tarea específica, como calcular indicadores para un año y comparar con el período anterior, comienzan los problemas. En algún lugar, el marcado no cubre la solicitud en absoluto, en algún lugar se cayó. Bueno, o la forma de escribir el evento ha cambiado, así que tienes que "iniciar" Python, ordenar los datos por días y semanas y generar datos al menos mínimamente cercanos a la realidad.



Otros sistemas también tienen problemas, incluido Adobe Analytics. Entonces, si necesita conectar herramientas que no están disponibles en Adobe, entonces es largo y costoso. En este caso, no será económicamente rentable construir un sistema basado en Adobe que cubra todas las necesidades de analítica web de la empresa. Un inconveniente importante del sistema es que cubre solo proyectos globales.



A veces surgen problemas donde no los espera. Por ejemplo, necesitábamos un informe del año pasado, queríamos "sacarlos" de Google Analytics, pero no funcionó. Resultó que alguien de los gerentes de la oficina central entró en la configuración del contador y cambió la configuración, de modo que todos los datos históricos que necesitábamos simplemente se eliminaron.



Al final, obtenemos cosas básicas en sistemas bastante complejos. Estos son tráfico, clientes potenciales, tasa de rebote (BR).



El dia que todo cambio



imagen



Todo estaría bien, pero hay un gran problema: la tasa de rebote, un indicador al que la mayoría de los especialistas prestan atención. Por supuesto, todo el mundo quiere bajarlo. Si lo desea, es muy sencillo hacer esto: un temporizador se “cuelga” durante 25 segundos, el evento desaparece y obtenemos una disminución en el porcentaje de falla. Pero esto es solo formalmente, en realidad todo permanece como antes.



Si cambia el método de conteo, por ejemplo, agrega 2 eventos de desplazamiento del navegador a los segundos, entonces BR crece y las fuentes dudosas de CPA y Programática comienzan a mostrar una tasa de falla del 80%. Después de cambiar la metodología, es casi imposible calcular el porcentaje de denegaciones para un año durante el cual se utilizaron varios métodos.



Hay otros problemas, que incluyen una gran cantidad de trabajo, un aumento en la cantidad de scripts de Python y tareas CRON, los informes complejos son difíciles de crear y los análisis de un extremo a otro no están disponibles. En general, decidimos revisar el enfoque tanto de análisis como de marcado. Para empezar, nos decidimos por las necesidades críticas:



  • Obtener acceso a datos sin procesar.
  • La capacidad de transferir cualquier cantidad de información adicional.
  • La capacidad de hacer copias de seguridad.
  • Usando el marcado automático.
  • La capacidad de conectar la base de datos a las herramientas de BI.


La mejor opción es montar su propio sistema de recopilación de datos, que se puede modificar y personalizar fácilmente lo antes posible. Bueno, usamos Clickhouse como almacenamiento de datos. Está claro que su propio sistema de análisis debe cumplir una serie de criterios que formulamos desde el principio:



  • La capacidad de almacenar cualquier cantidad de datos en sus propios servidores. También puede restringir el acceso a los datos si es necesario.
  • Recopile cualquier número de eventos y parámetros, lo que proporciona muchos más datos para el análisis.
  • La capacidad de integrarse con servicios como CRM, CAllTracking, BI, mensajería instantánea, sistemas publicitarios, etc.
  • Seguimiento de usuarios multiplataforma por cookie e ID de usuario.
  • Cree sus propios modelos de atribución.
  • Trabajando con código abierto y sin problemas de seguridad.
  • Retroalimentación oportuna del sitio, enviando eventos de análisis al sitio directamente durante la sesión del usuario.
  • Adaptación de una solución analítica a los requerimientos de un negocio específico.


De acuerdo con estos criterios, hemos ensamblado nuestro propio sistema de análisis, que ahora utilizamos. En cuanto a los datos, se almacenan en su forma sin procesar en ClickHouse. Por cierto, otra ventaja del sistema de análisis personalizado es que no hay restricciones en la cantidad de parámetros. Esto abrió inmediatamente una oportunidad, por ejemplo, para obtener más información. Ahora sabemos, por ejemplo, qué colores, opciones, motores y otros parámetros son muy populares en los configuradores de automóviles.



¿Qué pasa con la visualización?



Como herramienta de BI, primero probamos la metabase, que no funcionó, porque funciona de manera extraña con los cachés y es difícil de personalizar. Elegimos Apache Superset y este es el motivo:



  • Se está desarrollando rápidamente. Cada mes, nuevas mejoras y actualizaciones.
  • Puede crear sus propios gráficos y visualizaciones, por ejemplo, Echarts, que tiene una gran cantidad de posibilidades en su arsenal.
  • Personalizar la apariencia de los paneles en CSS: es bastante fácil crear un panel para la identidad corporativa de la marca.
  • Buena herramienta de investigación. Puede ingresar rápidamente para esbozar una consulta SQL y obtener una respuesta.
  • Es posible enviar informes a Email y Slack
  • Control de acceso listo para usar. Para cada gráfico, conjunto de datos, lo que sea, puede configurar el acceso a usuarios específicos.


Varias docenas de paneles ahora están disponibles con diferentes niveles de acceso para diferentes tareas. Esto incluye paneles para métricas de tráfico de referencia, paneles para equipos / equipos de productos y para otras agencias.



Después de que se adoptó el sistema, la velocidad de procesamiento de las preguntas no estándar aumentó significativamente. Ahora es un conjunto de consultas SQL a través de SQLab en Superset. Y también, atención, puede conectar otras bases de datos, solo parcialmente empleadas en análisis web.



No nos olvidemos de la automatización



Para resolver las tareas de rutina, utilizamos Apache Airflow 2. Esto nos permitió cargar datos y generar informes en una sola herramienta. En última instancia, fue posible agregar datos de otras fuentes y otras agencias para formar los informes finales.



imagen



Después de un tiempo, fue posible desarrollar un sistema de análisis que permite no solo crear servicios que respondan a eventos en tiempo real, sino también envenenar el correo electrónico y Push, además de enviar Webhooks o enviar señales directamente al navegador.



El sistema personalizado, entre otras ventajas, le permite conectarse fácilmente a cualquier IP de terceros.



Bajo el capó, el sistema tiene su propio análisis: marco para Python y Type / JavaScript, que simplifica y acelera el proceso de desarrollo. También hay un sistema de lanzamiento y control, además de un entorno de desarrollo integrado basado en Theia IDE, así como un Jupiter Lab para una rápida investigación y creación de prototipos. Finalmente, Grafana es una herramienta de visualización y cuadros de mando sencillos.



Como ejemplo del trabajo del sistema resultante, podemos citar su uso para calcular la prueba AB del AVN de la empresa Skoda. La analítica personalizada hizo posible:



  • Obtenga datos de Clickhouse.
  • Procesar información en Pythone + Clickhouse.
  • Almacene los datos calculados en CSV.
  • Configure un temporizador para que comience cada 6 horas.
  • La capacidad de detener o reconstruir o personalizar el servicio, ya que funciona independientemente de otros sistemas.


Suena un poco complicado, pero se puede explicar con un ejemplo. Anteriormente, cuando un usuario dejaba una solicitud para comprar un automóvil, solo el número de teléfono del comprador llegaba al gerente de ventas. Por lo tanto, el especialista debe volver a llamar al cliente y pedirle todo lo que ya se ha completado anteriormente.



Ahora el gerente, además de la aplicación, recibe información resumida sobre el visitante, incluido el interés de este último en una determinada marca de automóvil, configuración, etc. Y, por cierto, el gerente recibe información personalizada. Además, el gerente comprende mejor lo que una persona necesita y lo que puede ofrecer.



Como conclusión, debe decirse que al final todo salió bien: un sistema de análisis personalizado funciona en beneficio de los clientes sin la amenaza de perder datos en seis meses o incluso en un año. El análisis de datos con visualización posterior requiere un tiempo mínimo. Bueno, si necesita agregar y eliminar algo, puede hacerlo muy rápidamente con costos mínimos.



All Articles