A história sobre Yandex.Metrika ReachGoal, a garota Lida e que não há problemas insolúveis
O mundo é imperfeito, a Internet é ainda mais imperfeita. Às vezes, você pode fechar os olhos para isso. Mas não apenas quando uma linda garota chamada Lida, do “departamento de marketing”, está parada na sua frente, olhando nos seus olhos e fazendo a pergunta: “Por alguma razão, em Y. Metrica, os dados que eu vejo no funil de pedidos são diferentes daqueles que vejo em nosso sistema contábil. E temos mais pedidos.
Como as meninas com olhos bonitos devem ser amadas e valorizadas de todas as formas possíveis, foi decidido conectar o registro de eventos que ocorrem com os clientes durante o processo de pedidos.
Especialmente sem esperança de nenhum efeito interessante e, portanto, não sabiamente astuto, um serviço foi adicionado rapidamente que registra os eventos que ocorrem no front-end nos navegadores dos visitantes do nosso site.
Antes de tudo, estávamos interessados em eventos que poderiam ocorrer durante a execução do código Y. Metrica, ou seja, yaCounterXXXXXX.reachGoal ().
Portanto, configuramos todos os lugares onde precisamos capturar a exceção e enviar esses eventos para o servidor:
try { yaCounterXXXXXX.reachGoal("EVENT_XXX"); } catch(e) { $.get("/front/service/event", {event: "YM-warning", goal: " EVENT_XXX ", message: e.message}); }
O tempo passa, lembramos que jogamos uma vara de pescar, mas não verificamos as capturas.
Vamos olhar os logs e, para nossa surpresa, vemos aproximadamente o seguinte:
[2018-04-17 09:04:51.431] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36] [2018-04-17 09:09:18.082] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:21.369] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:24.990] [BASKET_LOAD] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:09:27.001] [] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] [2018-04-17 09:12:44.778] [ORDER_CREATED] [yaCounterXXXXXX is not defined] [Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:59.0) Gecko/20100101 Firefox/59.0] ...
Um cálculo rápido mostrou que cerca de 3..4..5% dos eventos na cesta passam por Y. Metrika. Lida estava certa. E como a garota está certa, algo precisa ser feito. Embora quando a garota esteja errada, você ainda precise fazer alguma coisa.
Começamos a procurar uma razão. O contador está definido corretamente, a grande maioria dos eventos são registrados por eles corretamente. Estamos tentando pesquisar a presença de problemas semelhantes entre os colegas no workshop. Nada disso foi encontrado.
O Yandex TechSupport respondeu com uma carta contendo um link para a documentação para a instalação do contador de métricas, pelo qual, é claro, um agradecimento separado e caloroso a eles!
Não vou descrever todas as hipóteses que tentamos. A conclusão é que, no momento em que a página foi carregada, o código do contador Yandex.Metrica não foi carregado no navegador do cliente e não foi inicializado lá. Pode ser um bloqueador de anúncios e / ou rastreadores de rastreamento, pode haver alguns problemas de rede entre o cliente e o servidor Yandex (isso é improvável).
Eu tive que pegar Lida pelas mãos, olhar nos olhos dela sem fundo e relutantemente contar a dura verdade: "Lida, teremos que aceitar o fato de que alguns visitantes do nosso site não receberão eventos de" pedido / recusa em fazer um pedido "em Y. Metrika. Mas definitivamente vamos criar algo. "
O verão passou e o outono estava chegando ao fim, quando Lida apareceu novamente no limiar do escritório. Aos seus olhos cheios de lágrimas, ficou claro que aquele infeliz interesse que a impedia de mostrar belos relatórios a seus superiores e, assim, obter um bônus anual, que ela já incluía em seu orçamento para viagens à Tailândia para o feriado de Ano Novo.
O coração tremeu. Toda a equipe do grupo front-end estava reunida e
, de uma forma difícil, foi ordenada a "cavar daqui até o almoço!" a tarefa foi definida para resolver esse problema de qualquer maneira! Não é isso !!! Caso contrário, Lida não poderá ir para a Tailândia ...
O Frontend não quis cavar por um longo tempo e uma solução rápida foi oferecida quase imediatamente:
O resultado dessa decisão pode ser visto no gráfico, é uma análise do próprio log de eventos Como você pode ver, o número de erros caiu para quase 0
Se você ainda não verificou o sucesso do download dos scripts Yandex.Metrica em seu site, verifique. Descobertas interessantes também podem esperar por você.
Isenção de responsabilidade: Entendo que a solução acima está longe de ser a ideal. Eu ficaria feliz em ouvir pensamentos e opiniões sobre este assunto.