Estoy haciendo un seguimiento de comercio electrónico mejorado con Google Analytics. Estoy siguiendo la implementación existente en gtag.js. Tengo 4 pasos de pago que incluyen datos del método de envío, datos del método de pago, pago pendiente y también pago (compra). He hecho los códigos para cada paso a continuación:
1. Método de envío
<script> gtag('event', 'set_checkout_option', { "checkout_step": 1, "checkout_option": "shipping method", "value": "" }); </script>2. Método de pago
<script> gtag('event', 'set_checkout_option', { "checkout_step": 2, "checkout_option": "payment method", "value": "" }); </script>3. Pago pendiente
$("#order-now-action").on('click', function() { gtag('event', 'set_checkout_option', { "checkout_step": 3, "checkout_option": "pending", "id": "" }); }) Este es el embudo de pago que creé en Configuración de comercio electrónico. 
Y este es un informe en el menú de comportamiento de pago. Se registra el método de envío, pero ¿por qué en el paso 2 (método de pago) al paso 4 (compra) no se registra? 
a pesar de que, en el menú de rendimiento de ventas, se registra la transacción? 
para los pasos 1-3 está en 1 página, mientras que la compra (paso 4) la hice en el backend usando una sola URL. ¿Es porque está en 1 página, por lo que no está registrado?
Estoy muy confundido para resolver este problema, pero encontré la respuesta correcta por la que no se registra mi paso de pago. Esto sucedió porque set_checkout_option no se podía usar varias veces en una página, así que lo reemplacé con el evento checkout_progress . Porque como en esta documentación de Medir pasos de pago , para medir cada paso de pago posterior, envíe un checkout_progress . También modifiqué un poco mi código para que quedara así:
1. Método de envío
<script> function checkoutProgressShippingMethodGA() { gtag('event', 'checkout_progress', { "checkout_step": 1, "checkout_option": "Shipping Method", "value": "" }); } checkoutProgressShippingMethodGA(); </script>2.Método de pago
<script> function checkoutProgressPaymentMethodGA() { gtag('event', 'checkout_progress', { "checkout_step": 2, "checkout_option": "Payment Method", "value": "" }); } checkoutProgressPaymentMethodGA(); </script> y tadaaaa... se ha registrado mi paso de pago (**la compra no se ha registrado porque no la he implementado en el backend) 
En general, su configuración se ve bien. Sin embargo, sugeriría hacerlo como se muestra en la documentación de Google: https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce
function onShippingComplete(stepNumber, shippingOption) { ga('ec:setAction', 'checkout_option', { 'step': stepNumber, 'option': shippingOption }); ga('send', 'event', 'Checkout', 'Option', { hitCallback: function() { // Advance to next page. } }); }Pero vamos a depurar:
Ya sea en la pestaña Red o a través de una extensión de depuración como la de adswerve, asegúrese de que realmente está enviando las llamadas al punto final de collect . Pase por el embudo de pago, active los eventos e inspecciónelos. Preste atención a la identificación de la propiedad (está en el campo tid de la carga útil enviada al punto final de recopilación de Google)
Asegúrese de generar informes sobre los datos que GA ha procesado por completo, por lo tanto, datos de al menos 2 días de antigüedad para cuentas que no sean 360 y al menos 4 horas de antigüedad para 360.
Asegúrese de que su sesión no se interrumpa entre el primer paso y la compra real. Para esto, debe usar el explorador de usuarios y ver dónde se interrumpe la sesión de pago para una identificación de cliente específica. O rastree una identificación de sesión en una dimensión personalizada y vea que puede ver todos los eventos de pago al inspeccionar una identificación de sesión específica en un informe personalizado. La interrupción de la sesión a menudo ocurre cuando cambia la fuente o cuando se rompe la consistencia de la identificación del usuario. Un buen ejemplo de la vida real sería el pago de Shopify en un TLD diferente.
Asegúrese de estar mirando una vista sin filtrar solo para excluir la posibilidad de que los filtros interfieran con los datos y eliminen sus eventos.