La historia sobre Yandex.Metrika ReachGoal, la niña Lida y que no hay problemas insolubles
El mundo es imperfecto, la red mundial es aún más imperfecta. A veces, puedes cerrar los ojos a esto. Pero no solo cuando una hermosa niña llamada Lida del "departamento de marketing" está de pie frente a usted, mirándolo a los ojos y haciendo la pregunta: "Por alguna razón, en Y. Metrica, los datos que veo en el embudo de pedidos son diferentes de esos que veo en nuestro sistema contable. Y tenemos más pedidos ".
Dado que las niñas con ojos hermosos deben ser amadas y apreciadas de todas las formas posibles, se decidió conectar el registro de eventos que ocurren con los clientes durante su proceso de pedido.
Especialmente sin esperar ningún efecto interesante y, por lo tanto, no sabiamente astuto, se agregó rápidamente un servicio que registra los eventos que ocurren en la interfaz en los navegadores de los visitantes de nuestro sitio.
En primer lugar, estábamos interesados en los eventos que podrían ocurrir durante la ejecución del código Y. Metrica, es decir, yaCounterXXXXXX.reachGoal ().
Entonces, configuramos todos los lugares donde necesitamos detectar la excepción y enviar estos eventos al servidor:
try { yaCounterXXXXXX.reachGoal("EVENT_XXX"); } catch(e) { $.get("/front/service/event", {event: "YM-warning", goal: " EVENT_XXX ", message: e.message}); }
El tiempo pasa, recordamos que arrojamos una caña de pescar, pero no comprobamos la captura.
Vamos a mirar los registros, y para nuestra sorpresa, vemos aproximadamente lo siguiente:
[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] ...
Un cálculo rápido mostró que alrededor del 3..4..5% de los eventos en la canasta pasan por Y. Metrika. Lida tenía razón. Y como la niña tiene razón, hay que hacer algo. Aunque cuando la chica se equivoca, aún debes hacer algo.
Comenzamos a buscar una razón. El contador está configurado correctamente, la gran mayoría de los eventos son registrados por ellos correctamente. Estamos tratando de buscar en Google la presencia de problemas similares entre colegas en el taller. No se encontró nada por el estilo.
Yandex TechSupport respondió con una carta que contenía un enlace a la documentación para instalar el contador métrico, por lo que, por supuesto, un agradecimiento por separado.
No describiré todas las hipótesis que hemos probado. La conclusión es que, al momento de cargar la página, el código de contador Yandex.Metrica no se carga en el navegador del cliente y no se inicializa allí. Puede ser un bloqueador de anuncios y / o rastreadores de seguimiento, puede haber algunos problemas de red entre el cliente y el servidor Yandex (esto es poco probable).
Tuve que tomar a Lida de las manos, mirarla a los ojos sin fondo y decir a regañadientes la cruda verdad: "Lida, tendremos que aceptar el hecho de que algunos visitantes de nuestro sitio no recibirán eventos de" pedido / rechazo de hacer un pedido "en Y. Metrika. Pero definitivamente se nos ocurrirá algo ".
El verano pasó y el otoño estaba llegando a su fin, cuando Lida apareció nuevamente en el umbral de la oficina. En sus ojos llenos de lágrimas, se hizo evidente que esos porcentajes desafortunados que pasaban le impedían mostrar hermosos informes a sus superiores y, por lo tanto, obtener una bonificación anual, que ya incluía en su presupuesto para viajes a Tailandia para las vacaciones de Año Nuevo.
El corazón tembló. Todo el equipo del grupo de front-end se reunió, y
en una forma difícil se le ordenó "¡cavar desde aquí hasta el almuerzo!" ¡la tarea se estableció para resolver este problema de cualquier manera! No es eso !!! De lo contrario, Lida no podrá ir a Tailandia ...
Frontend no quiso cavar durante mucho tiempo y se ofreció una solución rápida casi de inmediato:
El resultado de esta decisión se puede ver en el gráfico, este es un análisis del registro de eventos Como puede ver, el número de errores se redujo a casi 0
Si aún no ha verificado el éxito de la descarga de scripts Yandex.Metrica en su sitio, asegúrese de verificar. También te esperan descubrimientos interesantes.
Descargo de responsabilidad: entiendo que la solución anterior está lejos de ser óptima. Me alegraría escuchar pensamientos y opiniones sobre este asunto.