Cuando se utilizan métodos estándar para enviar datos a Google Analytics, es probable que el sistema no tenga tiempo para enviar todos los eventos si el proceso se interrumpió al volver a cargar la página. A principios de este año, aparecieron varias publicaciones sobre cómo mejorar la integridad de los datos recopilados en GA. Uno de ellos se dedicó a eventos que rastrean las acciones de los usuarios que conducen a la recarga de páginas: clics en enlaces externos, descargas de archivos, clics en botones de envío de formularios, antes de descargar eventos. Para resolver el problema, el autor del material, Dmitry Osiyuk, sugiere configurar el campo de transporte con la baliza de valor en el código de Google Analytics. Este campo determina cuál de los métodos de envío usar:
xhr (usando un objeto XMLHttpRequest)
imagen (usando el objeto Imagen)
baliza (utilizando el método navigator.sendBeacon).
sendBeacon funcionará de forma asíncrona, incluso si el usuario cierra la página o abandona el sitio por completo, lo que debería permitir la recopilación de datos con mayor precisión.
Ahora analytics.js elige el mejor método de envío. Navigator.sendBeacon se usa solo si se selecciona baliza como mecanismo de transmisión (campo de transporte). Según Google, en el futuro es probable que la opción de baliza se use en los navegadores que la admiten de forma predeterminada. Decidí comprobar en la práctica qué efecto da el uso de la configuración sendBeacon.
Lo que se ha hecho:
Seleccionó un evento para la prueba: haga clic en el enlace en el menú. Al hacer clic en otra página se carga.
Creó dos etiquetas en Google Tag Manager, trabajando en los mismos desencadenantes. Uno usó el método de envío estándar, el segundo sendBeacon.
Además, decidí probar el uso de diferentes prioridades de etiquetas en GTM para comprender la influencia de la configuración en todos los casos.
En otras palabras, cuando el usuario hizo clic en el enlace que necesitábamos, GTM envió el evento a GA dos veces: una vez usando el método estándar, una vez usando el método sendBeacon. Las prioridades se pueden cambiar en la configuración avanzada de etiquetas en GTM, el elemento es "Prioridad para la activación de etiquetas". Cero es la prioridad mínima; cuanto mayor sea el número, mayor será la prioridad en comparación con otras etiquetas. Por defecto, el valor es cero.

Verificar sendBeacon
Probé tres opciones:
- Se da prioridad al envío estándar;
- La prioridad es mayor para sendBeacon;
- Igualmente alta prioridad para ambos métodos.
En el caso de prioridades diferentes, cuando el usuario hizo clic en el enlace, GTM primero envió el evento con la prioridad más alta, inmediatamente después, el segundo. Cuando las prioridades coincidían, cada uno de los métodos funcionaba antes en la mitad de los casos.
Como resultado, puede observar dos pares de eventos: para PC (escritorio) y dispositivos móviles (tableta y móvil).
Prioridad para el envío estándar

Prioridad en sendBeacon

Misma prioridad - muestra más grande

Como mostró la prueba , sendBeacon realmente funciona mejor, pero el porcentaje de eventos que podrían no haberse enviado no es tan alto. La diferencia en comparación con el método de envío convencional es ~ 0.3%. También vale la pena considerar que sendBeacon está diseñado para rastrear eventos que llevan al usuario a una nueva página. Al usar este método para rastrear todos los eventos en el sitio, la diferencia será aún menos significativa. Al mismo tiempo, sendBeacon tiene una ventaja: al enviar datos de forma asincrónica, no ralentiza el sitio, lo que ocurre cuando se utilizan otros métodos. La velocidad de descarga y carga de páginas no disminuye.
* Bonificación: durante el experimento, también me convencí de que las prioridades para activar las etiquetas en GTM funcionan bien.