Ecommerce de GA4 de principio a fin a través de tu contenedor de servidor
Cuando GA4 ya pasa por tu contenedor de servidor, el ecommerce es sobre todo trabajo del contenedor web. Tu sitio envía cada acción de la tienda al dataLayer, una etiqueta de evento de GA4 la manda a https://sgtm.example.com y la etiqueta GA4 del servidor que ya tienes la reenvía con todos los productos dentro. En esta lección configuras los eventos, la etiqueta y el activador, evitas que la compra se cuente dos veces y compruebas los datos por el camino.
Intermedio 13 min de lectura
Lo que aprenderás
- Saber qué eventos de ecommerce recomendados espera GA4 y qué parámetros necesita cada uno.
- Enviar datos de ecommerce limpios al dataLayer, vaciando antes el objeto anterior.
- Enviar todos los eventos de ecommerce con una sola etiqueta de evento de GA4 y un solo activador Custom Event.
- Activar
purchaseuna vez por pedido y verificarlo en el Preview del servidor, en DebugView y en los informes de Monetization.
Antes de empezar
01 Los eventos de ecommerce recomendados
GA4 solo rellena sus informes de ecommerce con eventos que usan los nombres recomendados. Los nombres personalizados como productView o checkout_step_2 se guardan, pero nunca aparecen como vistas de producto ni como ingresos. Usa estos nombres exactamente, en minúsculas:
-
view_item_listyselect_item: el visitante ve una lista de productos (página de categoría, resultados de búsqueda) y hace clic en un producto. -
view_item: una página de detalle de producto. -
add_to_cart,remove_from_cartyview_cart: acciones del carrito. -
begin_checkout,add_shipping_infoyadd_payment_info: los pasos del checkout. -
purchase: el pedido completado. -
refund: un reembolso total o parcial, que normalmente se envía desde tu backend y no desde el navegador.
Cada evento lleva un array items, y cada artículo necesita al menos item_id o item_name. Si un evento tiene value, también necesita currency (por ejemplo EUR); si no, GA4 no puede convertirlo en ingresos. purchase y refund necesitan además un transaction_id.
02 Envía los datos al dataLayer
Cada push tiene dos partes: primero ecommerce: null y después el evento con un objeto ecommerce nuevo. El dataLayer fusiona objetos, así que sin ese reinicio los artículos del evento anterior pueden colarse en el siguiente, por ejemplo un producto de view_item que acaba en add_to_cart.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'view_item',
ecommerce: {
currency: 'EUR',
value: 129.90,
items: [{ item_id: 'SKU-1', item_name: 'Shoes', item_brand: 'Acme', item_category: 'Footwear', price: 129.90, quantity: 1 }]
}
});window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'add_to_cart',
ecommerce: {
currency: 'EUR',
value: 129.90,
items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
}
});El push de la compra añade transaction_id y el valor total del pedido. Genéralo en la página de agradecimiento con los datos reales del pedido de tu tienda.
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
event: 'purchase',
ecommerce: {
transaction_id: 'T-10293',
value: 129.90,
currency: 'EUR',
items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
}
});03 Una sola etiqueta de evento de GA4 para todo el ecommerce
En el contenedor web no necesitas una etiqueta por evento. Una sola etiqueta Google Analytics: GA4 Event puede leer del dataLayer el nombre del evento y los datos de ecommerce y enviar el evento que se haya producido.
- 1 Crea un activador de tipo Custom Event. Como nombre del evento escribe
^(view_item_list|select_item|view_item|add_to_cart|remove_from_cart|view_cart|begin_checkout|add_shipping_info|add_payment_info|purchase)$y marca Use regex matching. - 2 Crea una etiqueta de tipo Google Analytics: GA4 Event. Introduce tu Measurement ID
G-XXXXXXXXXX(o selecciona tu etiqueta de Google) y pon la variable integrada{{Event}}en Event Name. - 3 En More Settings abre Ecommerce, marca Send Ecommerce data y elige Data Layer como fuente de datos.
- 4 Asigna el activador Custom Event, ponle nombre a la etiqueta (por ejemplo
GA4 - ecommerce) y guarda.
La etiqueta sale a través de la misma etiqueta de Google que ya tiene server_container_url configurado como https://sgtm.example.com desde la lección 3, así que cada evento de ecommerce llega primero a tu contenedor de servidor.
04 Qué cambia en el contenedor de servidor
Nada. El cliente GA4 reclama los hits de ecommerce como cualquier otro evento de GA4, y los artículos viajan dentro del hit. La etiqueta GA4 de la lección 4, activada con Client Name equals GA4, los reenvía a Google Analytics junto con value, currency y transaction_id.
El contenedor de servidor sigue siendo el sitio adecuado para destinos adicionales. Una etiqueta de Meta Conversions API puede leer el mismo evento purchase, así que el pedido se envía a Meta con los mismos datos (la lección 7 explica cómo compartir un event_id para la deduplicación). La etiqueta de conversión de Google Ads de la siguiente lección también lo lee.
05 Cuenta cada compra una sola vez
Google Analytics deduplica los eventos purchase con el mismo transaction_id en los datos de flujos web. Tómalo como una red de seguridad, no como la solución. El origen habitual de los duplicados es la página de agradecimiento: el visitante la recarga, vuelve a ella desde el historial del navegador o abre el enlace de confirmación del email, y el push de la compra se ejecuta otra vez.
- Genera el push de la compra solo en la primera visita a la página de agradecimiento. Guarda una marca en el pedido de tu tienda (por ejemplo
tracked_at) y omite el push si ya está puesta. - Envía siempre un
transaction_idreal y único. Nunca una cadena vacía: GA4 trata todas las compras contransaction_idvacío como una sola transacción. - No pongas datos personales, como la dirección de email, en
transaction_id. Usa el número de pedido. - Envía los reembolsos con el
transaction_iddel pedido original, para que GA4 pueda asociarlos.
06 Verifica los datos de principio a fin
Prueba en tres sitios, del servidor hacia fuera. Abre el Preview en los dos contenedores y recorre la tienda: mira un producto, añádelo al carrito, pasa por el checkout y haz un pedido de prueba.
- Preview web: la etiqueta
GA4 - ecommercese activa en cada evento de ecommerce y en ningún otro. - Preview del servidor: la solicitud va a
sgtm.example.comy en los datos del evento vesitemsconitem_id,priceyquantity, además devalueycurrency. - Preview del servidor: la etiqueta GA4 aparece en Tags Fired para
purchase. - DebugView de GA4: los eventos llegan con sus parámetros y artículos.
- Informes de Monetization de GA4: aparecen las compras y los ingresos. Estos informes pueden tardar entre 24 y 48 horas en llenarse, así que no los juzgues el mismo día.
Preguntas frecuentes
¿Necesito una etiqueta de servidor aparte para los eventos de ecommerce?
No. La etiqueta GA4 del contenedor de servidor reenvía todos los eventos que reclama el cliente GA4, artículos incluidos. El ecommerce solo requiere trabajo en el dataLayer y en el contenedor web.
¿Por qué veo compras pero no ingresos en GA4?
Normalmente falta currency o value se envía como cadena. Revisa los datos del evento en el Preview del servidor: value debe ser un número y currency un código de tres letras como EUR.
¿GA4 elimina por sí solo las compras duplicadas?
En los flujos web deduplica los eventos de compra con el mismo transaction_id. Aun así conviene activar la compra una sola vez, porque otras herramientas que leen el mismo evento, como las plataformas de anuncios, pueden contar una repetición como una segunda conversión.
¿Listo para ponerlo en práctica?
Despliega un contenedor GTM de servidor en tu propio dominio en pocos minutos. El plan Gratis no pide tarjeta.
Crear una cuenta gratuita