Como e por que construímos um sistema de análise personalizado em vez do Google Analytics





Olá, Habr! Meu nome é Ivan Kizimenko, sou chefe de análise da Outside. Neste artigo, gostaria de falar sobre como e por que desenvolvemos nosso próprio sistema de análise personalizado em vez do Google Analytics. Na verdade, trabalhamos não só com analytics do Google, mas também de outras empresas, incluindo, por exemplo, a Adobe.



Mas um dia bom (e realmente não foi ruim) decidimos: “Chega de agüentar! É hora de fazer seu próprio sistema. " Por baixo do corte - sobre as razões para esta decisão, as características do sistema personalizado e uma série de outras coisas interessantes para muitos dos leitores de Habr.



Por que precisamos de tudo isso?



Trabalhamos com clientes bastante grandes, com soluções globais que possuem sistemas analíticos muito diferentes. Alguém tem Adobe, alguém tem uma versão básica do Google Analytics, alguém tem 360.



Mas as soluções globais têm vários problemas:



  • Esses são sistemas fechados com várias restrições de acesso à funcionalidade.
  • Eles têm opções de personalização mínimas.
  • Se algo pode ser melhorado, é muito caro e, além disso, demorado.
  • A analítica cobre suas próprias soluções sem considerar os desenvolvimentos locais.


Como o Google Analytics é talvez o sistema de análise mais popular, vamos listar suas desvantagens primeiro:



  • É preciso muito esforço para criar relatórios e painéis personalizados.
  • Nos relatórios do sistema, os dados são sempre agregados e esse processo está total ou quase totalmente fora de controle.
  • , , , -. .
  • .
  • API.
  • — 24-48 , , .
  • Google Analytics 20. — 200.
  • — . , , IP .


Em geral, não repreendemos o Google Analytics - de forma alguma. Este é um excelente sistema, mas é adequado para uma gama de tarefas limitada, embora bastante volumosa. Mas assim que surge uma tarefa específica, como calcular indicadores para um ano e comparar com o período anterior, os problemas começam. Em algum lugar a marcação não cobre a solicitação, em algum lugar ela caiu. Bem, ou a maneira de escrever o evento mudou, então você tem que "iniciar" o Python, classificar os dados por dias e semanas e gerar pelo menos dados minimamente próximos aos dados da realidade.



Outros sistemas também apresentam problemas, incluindo Adobe Analytics. Portanto, se você precisar conectar ferramentas que não estão disponíveis na Adobe, será um processo longo e caro. Nesse caso, não será economicamente lucrativo construir um sistema baseado em Adobe que cubra todas as necessidades de análise da web da empresa. Uma desvantagem significativa do sistema é que ele cobre apenas projetos globais.



Às vezes, surgem problemas quando você não os espera. Por exemplo, precisávamos de um relatório do ano passado, queríamos "retirá-los" do Google Analytics, mas não deu certo. Acontece que alguém dos gerentes da sede foi até as configurações do contador e alterou as configurações, de forma que todos os dados históricos de que precisávamos foram simplesmente excluídos.



No final, obtemos coisas básicas em sistemas bastante complexos. Estes são tráfego, leads e taxa de rejeição (BR).



O dia em que tudo mudou



imagem



Tudo ficaria bem, mas há um grande problema - a taxa de rejeição, um indicador ao qual a maioria dos especialistas presta atenção. Claro, todo mundo quer diminuí-lo. Se desejar, é muito simples fazer isso - um cronômetro é “desligado” por 25 segundos, o evento vai embora e temos uma diminuição no percentual de falhas. Mas isso é apenas formalmente, na realidade tudo permanece como antes.



Se você alterar o método de contagem, por exemplo, adicionar 2 eventos de rolagem do navegador aos segundos, então o BR cresce e fontes duvidosas de CPA e Programática começam a mostrar uma taxa de falha de 80%. Depois de mudar a metodologia, é quase impossível calcular o percentual de recusas para um ano durante o qual vários métodos foram usados.



Existem outros problemas, incluindo uma grande quantidade de trabalho, um aumento no número de scripts Python e tarefas CRON, relatórios complexos são difíceis de construir e análises de ponta a ponta não estão disponíveis. Em geral, decidimos revisar a abordagem de análise e marcação. Para começar, decidimos sobre as necessidades críticas:



  • Obter acesso a dados brutos.
  • A capacidade de transferir qualquer quantidade de informações adicionais.
  • A capacidade de fazer backup.
  • Usando a marcação automática.
  • A capacidade de conectar o banco de dados a ferramentas de BI.


A melhor opção é montar seu próprio sistema de coleta de dados, que pode ser facilmente modificado e customizado o mais rápido possível. Bem, usamos Clickhouse como armazenamento de dados. É claro que seu próprio sistema de análise deve atender a uma série de critérios que formulamos no início:



  • A capacidade de armazenar qualquer quantidade de dados em seus próprios servidores. Você também pode restringir o acesso aos dados, se necessário.
  • Colete qualquer número de eventos e parâmetros, o que fornece muito mais dados para análise.
  • Capacidade de integração com serviços como CRM, CAllTracking, BI, mensagens instantâneas, sistemas de publicidade, etc.
  • Rastreamento de usuário de plataforma cruzada por cookie e ID de usuário.
  • Crie seus próprios modelos de atribuição.
  • Trabalhar com código aberto e sem problemas de segurança.
  • Feedback oportuno do site, enviando eventos de análises para o site durante a sessão do usuário.
  • Adaptação de uma solução analítica aos requisitos de um negócio específico.


De acordo com esses critérios, montamos nosso próprio sistema de análise, que agora usamos. Quanto aos dados, eles são armazenados em sua forma bruta no ClickHouse. A propósito, outra vantagem do sistema de análise customizada é que não há restrições quanto ao número de parâmetros. Isso imediatamente abriu uma oportunidade, por exemplo, para obter mais informações. Agora sabemos, por exemplo, quais cores, opções, motores e outros parâmetros são muito populares nos configuradores de automóveis.



E a visualização?



Como uma ferramenta de BI, tentamos primeiro a metabase, que não funcionou porque funciona de maneira estranha com caches e é difícil de personalizar. Escolhemos o Apache Superset e este é o motivo:



  • Está se desenvolvendo rapidamente. Todos os meses algumas novas melhorias e atualizações.
  • Você pode fazer seus próprios gráficos e visualizações, por exemplo, Echarts, que tem um grande número de possibilidades em seu arsenal.
  • Personalizando a aparência de painéis em CSS - é muito fácil construir um painel para a identidade corporativa da marca.
  • Boa ferramenta de pesquisa. Você pode rapidamente esboçar uma consulta SQL e obter uma resposta.
  • É possível enviar relatórios para Email e Slack
  • Controle de acesso pronto para uso. Para cada gráfico, conjunto de dados, qualquer que seja, você pode configurar o acesso a usuários específicos.


Várias dezenas de painéis estão agora disponíveis com diferentes níveis de acesso para diferentes tarefas. Isso inclui painéis para métricas de tráfego de linha de base, painéis para equipes / equipes de produto e para outras agências.



Após a adoção do sistema, a velocidade de processamento das questões não padronizadas aumentou significativamente. Agora é um conjunto de consultas SQL via SQLab no Superset. E também - atenção - você pode conectar outros bancos de dados, apenas parcialmente empregados em análise da web.



Não vamos esquecer da automação



Para resolver tarefas de rotina, usamos o Apache Airflow 2. Isso nos permitiu fazer upload de dados e gerar relatórios em uma única ferramenta. Em última análise, foi possível agregar dados de outras fontes e outras agências para formar os relatórios finais.



imagem



Depois de algum tempo, foi possível desenvolver um sistema analítico que permite não só criar serviços que respondem a eventos em tempo real, mas também envenenar e-mail e Push, além de enviar Webhooks ou enviar sinais diretamente para o navegador.



O sistema customizado, entre outras vantagens, permite que você se conecte facilmente a qualquer IP de terceiros.



Sob o capô, o sistema tem sua própria análise - framework para Python e Type / JavaScript, que simplifica e acelera o processo de desenvolvimento. Há também um sistema de inicialização e controle, além de um ambiente de desenvolvimento embutido baseado no IDE Theia, bem como um Jupiter Lab para pesquisa rápida e prototipagem. Por fim, Grafana é uma ferramenta de visualização e painéis simples.



Como exemplo do trabalho do sistema resultante, podemos citar sua utilização para o cálculo do teste AB do AVN da empresa Skoda. A análise personalizada tornou possível:



  • Obtenha dados da Clickhouse.
  • Processar informações na Pythone + Clickhouse.
  • Armazene os dados calculados em CSV.
  • Defina um cronômetro para iniciar a cada 6 horas.
  • A capacidade de interromper, reconstruir ou personalizar o serviço, uma vez que funciona independentemente de outros sistemas.


Parece um pouco complicado, mas pode ser explicado com um exemplo. Anteriormente, quando um usuário deixava uma solicitação de compra de um carro, apenas o número de telefone do comprador chegava ao gerente de vendas. Assim, o especialista tem que ligar novamente para o cliente e pedir tudo o que já foi preenchido anteriormente.



Agora o gerente, além do aplicativo, recebe informações resumidas sobre o visitante, incluindo o interesse deste por determinada marca de carro, configuração, etc. E, por falar nisso, o gerente recebe informações personalizadas. Além disso, o gerente entende melhor o que uma pessoa precisa e o que ela pode oferecer.



Como conclusão, deve-se dizer que no final tudo deu certo - um sistema de análise personalizado funciona para o benefício dos clientes sem a ameaça de perder dados em seis meses ou mesmo um ano. A análise de dados com visualização subsequente leva um mínimo de tempo. Bem, se você precisa adicionar e remover algo, você pode fazer isso muito rapidamente com custos mínimos.



All Articles