Adray

· , Co-fundador

Atribución en VTEX: cómo saber qué canal genera tus ventas

Atribución en VTEX: cómo saber qué canal genera tus ventas

Mi tienda corre en VTEX. ¿Cómo sé qué canal está produciendo de verdad mis ventas?

VTEX es de las plataformas más comunes entre los grandes comercios de Latinoamérica, y casi todos los consejos de atribución están escritos para Shopify. Esa diferencia se nota en la práctica: pixeles que nunca se disparan en el checkout, órdenes que le llegan tres veces a Meta, paneles que no coinciden con los reportes de VTEX. Esta guía cubre qué registra VTEX sobre el origen de una venta, dónde se detiene y cómo conectar Meta, Google y GA4 para que los números sean confiables.

Hablar con VentasAtribución multi-touch anclada a tus órdenes reales.

Lo que VTEX ya registra

Cada orden de VTEX tiene un orderForm, y el orderForm tiene un objeto marketingData con los datos de campaña capturados antes del checkout: utmSource, utmMedium y utmCampaign, los campos de campañas internas de VTEX (utmiCampaign, utmiPart, utmipage) y el cupón, si se usó uno.

Eso es útil de verdad y gratis: puedes exportar las órdenes y agruparlas por fuente y campaña. Pero es un registro de último contacto de la visita etiquetada que llevó al checkout. No sabe del anuncio de Meta en el que el comprador hizo clic tres días antes, de una visita sin etiquetas ni de la búsqueda en Google que vino antes.

Dónde se rompe la atribución en VTEX

El checkout es una aplicación aparte. VTEX sirve su checkout separado de la tienda, como una aplicación de una sola página. Las etiquetas que agregaste en la tienda, incluso con un gestor de etiquetas, pueden no cargarse ahí, así que los eventos de checkout y de compra nunca se disparan mientras la orden sí existe en VTEX. Si tu GA4 o tu pixel de Meta muestran muchas menos compras que VTEX, esto es lo primero que hay que revisar.

La orden llega como una serie de eventos. La guía de Feed v3 y Hook de VTEX describe el feed como una lista de actualizaciones de órdenes, no una lista de órdenes: cada cambio de estado, como pago aprobado y luego envío autorizado, es un evento nuevo de la misma orden. Una integración que manda una compra a una plataforma de anuncios en cada evento manda una sola venta varias veces.

Listar órdenes no es una forma confiable de encontrarlas. La misma guía dice que la API de listar órdenes sólo devuelve órdenes ya indexadas, que es más lenta que el feed y que las integraciones construidas sobre ella deberían migrar al feed. Un respaldo o un reporte hecho listando órdenes puede quedarse corto sin ningún error, así que compara siempre sus conteos con el reporte de órdenes de VTEX.

Varias tiendas, una cuenta. Muchos comercios corren más de una tienda en una sola cuenta de VTEX. Según cómo estén configurados los canales de venta y los dominios, una orden puede no decir en qué tienda estaba el comprador, así que la atribución tiene que decidirlo con otras señales. Pregúntale a cualquier herramienta cómo lo hace.

Moneda y zona horaria. VTEX registra las órdenes en la moneda y la zona horaria de tu tienda. Tus cuentas de anuncios pueden facturar en dólares y cerrar su día a otra hora, así que las comparaciones diarias no van a cuadrar hasta que normalices las dos cosas.

Cómo configurarlo bien

  • Toma la compra de VTEX, no del navegador. Usa el feed o el hook de órdenes como la fuente de verdad de las órdenes. El pixel es para el recorrido: visitas, clics y productos vistos.
  • Instala el pixel donde sí corre. Asegúrate de que tus etiquetas se carguen en el checkout además de la tienda, con las opciones de VTEX para agregar scripts al checkout. Si te preocupan los bloqueadores de anuncios, una ruta de primera parte por tu propio dominio deja visible más del recorrido.
  • Manda las conversiones desde el servidor una vez por orden. Para la API de Conversiones de Meta y las subidas de conversiones de Google, guarda un registro de que la orden ya se mandó, para que un segundo evento de estado no la vuelva a mandar.
  • Usa el número de orden como ID de evento. Meta deduplica un evento del servidor contra uno del navegador sólo cuando los dos llevan el mismo ID de evento. El número de orden es el único valor que conocen los dos lados.
  • Conserva el marketingData. Guarda las UTMs de la orden junto con la atribución de la herramienta, para que siempre puedas comparar las dos.

Cómo conectar Meta, Google y GA4

Meta: manda los eventos Purchase por la API de Conversiones desde tu servidor, con el número de orden como event_id y los datos del cliente hasheados, y deja el pixel del navegador para el recorrido. Google Ads: sube las conversiones desde el servidor con el identificador de clic (gclid, gbraid o wbraid) capturado cuando llegó el comprador; una orden sin identificador no se puede subir como conversión de clic. GA4: asegúrate de que el evento de compra se dispare en el checkout, o mándalo desde el servidor, y agrega el evento de reembolso cuando se reembolsen órdenes. Explicamos el lado de Google en conversiones mejoradas de Google y el del servidor en tracking server-side.

La revisión que te dice que funciona

Durante una semana, compara tres números en la misma zona horaria: las órdenes liquidadas en VTEX, las compras que se acredita cada plataforma de anuncios, y las compras que tus herramientas atribuyen a cada canal. El total atribuido nunca debería superar las órdenes de VTEX. Si las supera, algo está contando la misma orden dos veces. Si cada plataforma se acredita muchas más de las que pudo haber influido, lee por qué los números de Meta, Google, GA4 y tu tienda nunca cuadran. El concepto de fondo está en la guía de atribución multi-touch.

Cómo lo resuelve Adray en VTEX

Adray recibe las órdenes de VTEX por el hook de órdenes de la plataforma, conserva el marketingData de la orden, cose cada orden con la sesión y el clic que la produjeron, y manda las compras a la API de Conversiones de Meta desde el servidor una vez por orden, con el número de orden como ID de evento. Su pixel puede correr por una ruta de primera parte en tu propio dominio en VTEX IO. VTEX aparece junto a las demás plataformas soportadas en la página de integraciones. Si tu catálogo también se vende en marketplaces, los límites son otros, y los cubrimos en atribución en Tiendanube y Mercado Libre.

Preguntas frecuentes

¿VTEX tiene atribución integrada?

Registra datos de campaña en cada orden, en el marketingData del orderForm: fuente, medio y campaña de UTM, campos de campañas internas y el cupón usado. Es un registro de último contacto de la visita etiquetada antes del checkout, no un modelo del recorrido completo.

¿Por qué mi checkout de VTEX no aparece en GA4 ni en el pixel de Meta?

El checkout se sirve aparte de la tienda, así que las etiquetas que agregaste en la tienda, incluso con un gestor de etiquetas, pueden no cargarse ahí. Los eventos de checkout y de compra nunca se disparan, mientras la orden sí existe en VTEX.

¿Uso el feed de órdenes de VTEX o el hook?

Los dos son formas soportadas por VTEX para seguir las actualizaciones de órdenes: el feed es una cola que lee tu sistema, el hook manda cada actualización a tu endpoint. Cualquiera es mejor que consultar la API de listar órdenes, que según VTEX depende del indexado.

¿Por qué la misma orden de VTEX le llega a Meta varias veces?

Porque cada cambio de estado es un evento nuevo en el feed o en el hook. Una integración que manda una compra en cada evento manda una sola venta varias veces. Tiene que registrar que la orden ya se mandó y compartir el número de orden como ID de evento para que Meta pueda deduplicar.

Tengo varias tiendas en una sola cuenta de VTEX. ¿Cómo se atribuyen las órdenes?

Con cuidado: según la configuración, una orden puede no decir en qué tienda compró el cliente. Revisa cómo asigna la herramienta cada orden a una tienda y compara sus conteos por tienda con tus propios reportes.