Ir al contenido
Iniciar sesionPrueba gratis

Seguimiento de comercio

MetriXs rastrea el comercio de la misma manera para cada sitio, ya sea Shopify, una tienda personalizada o un checkout del lado del servidor. No hay columnas especificas de comercio: el comercio es solo un conjunto de eventos personalizados con algunos nombres de propiedades acordados. Cuando activas el comercio en un sitio, el panel muestra Ingresos, Valor medio del pedido (AOV), tasa de conversion, un embudo de checkout y un desglose de productos top, todos impulsados por esos eventos.

  1. Ve a Ajustes → Sitios en el panel.
  2. Encuentra tu sitio y activa Comercio en On.
  3. Opcionalmente elige una moneda de visualizacion (EUR por defecto, ver mas abajo).

Los sitios de Shopify tienen el comercio activado por defecto (el pixel web de MetriXs dispara los eventos por ti); el interruptor y la moneda siguen ahi si quieres desactivar el comercio o cambiar la moneda de visualizacion. Otros sitios lo activan aqui y disparan los eventos ellos mismos. Un fragmento de evento para copiar y pegar aparece en la pagina Instalar y verificar del sitio una vez que el comercio esta activo.

Tres eventos personalizados componen el embudo de comercio. Envialos desde tu checkout en este orden:

Nombre del evento Cuando disparar Props requeridas
checkout_started El visitante entra en el checkout total, currency
payment_submitted Detalles de pago enviados (ninguna)
order_completed El pedido se realiza (agradecimiento / confirmacion) total, currency

Para order_completed, tambien puedes enviar una propiedad items con el desglose por producto para que el panel de Productos top pueda desglosar los ingresos por producto.

  • total (number), el total del pedido/carrito.
  • currency (string, ISO 4217, por ejemplo EUR, USD, GBP), la moneda en la que esta total. MetriXs la convierte a EUR (ver mas abajo).
  • items (string), un array codificado en JSON de { title, quantity, price } (un objeto por articulo).
  • order_id (string, opcional), tu ID de pedido interno, como referencia.

MetriXs almacena todos los ingresos en EUR. Cuando llega un evento de comercio con una currency que no es EUR, el pipeline de ingestion convierte total (y cada price de articulo) a EUR usando las tasas de referencia diarias del BCE antes de almacenarlo, y registra la moneda original como currency_original. El total almacenado es por tanto siempre EUR, de modo que los ingresos y el AOV son consistentes incluso para tiendas con multiples monedas.

  • Si omites currency, MetriXs asume que la cantidad ya es EUR (sin conversion).
  • Las monedas desconocidas se dejan tal cual (tratadas como EUR) para que un error tipografico nunca ponga tus ingresos a cero silenciosamente.
  • Las tasas son las tasas de referencia diarias del BCE, actualizadas automaticamente cada dia (un cron obtiene el feed oficial del BCE y almacena las tasas en Redis). Si la obtencion falla o la cache esta fria, MetriXs recurre a una tabla de referencia estatica integrada en la imagen, para que la normalizacion EUR nunca se rompa por una interrupcion externa. Las tasas de referencia no son tasas de cambio en vivo.

Mientras que los ingresos se almacenan en EUR, puedes elegir una moneda de visualizacion diferente por sitio. MetriXs convierte las cantidades almacenadas en EUR a tu moneda de visualizacion en el panel usando las mismas tasas diarias del BCE, de modo que Ingresos, AOV, el grafico de ingresos, el embudo, Productos top y la columna de ingresos en los paneles de Fuentes/Ubicaciones/Dispositivos se muestran todos en la moneda elegida.

  • Por defecto: EUR (sin conversion).
  • Establecelo por sitio en Ajustes → Sitios junto al interruptor de comercio. La lista cubre las monedas comunes (USD, GBP, CHF, SEK, NOK, DKK, PLN, CZK, CAD, AUD, JPY, INR, CNY, BRL y mas).
  • Esto es un ajuste de visualizacion; no cambia lo que se almacena ni como envias eventos. Envia siempre currency en el evento para una conversion EUR precisa.

Disparar eventos desde un checkout del navegador

Sección titulada «Disparar eventos desde un checkout del navegador»

Despues de instalar el script del tracker, la funcion global window.metrixs(name, { props }) esta disponible. Dispara los eventos desde tu flujo de checkout:

// el visitante entra en el checkout
window.metrixs('checkout_started', { props: { total: 49.99, currency: 'EUR' } })
// detalles de pago enviados
window.metrixs('payment_submitted', { props: {} })
// pedido realizado
window.metrixs('order_completed', {
props: {
total: 49.99,
currency: 'EUR',
items: JSON.stringify([
{ title: 'T-shirt', quantity: 2, price: 24.99 },
]),
},
})

Usa keepalive: true (o un fallback navigator.sendBeacon) en la llamada order_completed si tu pagina de agradecimiento se descarga rapidamente.

Disparar eventos del lado del servidor (despues de un webhook de pago)

Sección titulada «Disparar eventos del lado del servidor (despues de un webhook de pago)»

Los checkouts basados en redireccion (Stripe, Mollie, iDEAL, etc.) a menudo no alcanzan de forma fiable un estado de “gracias” en el navegador. En ese caso, envia order_completed desde tu backend despues de que el webhook del proveedor de pago confirme el pedido.

  1. En el panel, ve a Ajustes → Sitios, expande Claves API bajo el sitio y crea una clave de ambito de sitio. Copiala inmediatamente (solo se muestra una vez).
  2. POST a /api/event con la clave como token Bearer. El cuerpo es JSON. Ten en cuenta que items es una cadena codificada en JSON (un array serializado a una cadena), porque MetriXs almacena todas las propiedades de eventos como cadenas:
{
"n": "order_completed",
"u": "https://yourdomain.com/thanks",
"d": "yourdomain.com",
"p": {
"total": 49.99,
"currency": "EUR",
"items": "[{\"title\":\"T-shirt\",\"quantity\":2,\"price\":24.99}]"
}
}

curl equivalente:

Terminal window
curl -X POST https://app.metrixs.eu/api/event \
-H "Authorization: Bearer mtx_live_yourapikey" \
-H "Content-Type: text/plain" \
-d '{"n":"order_completed","u":"https://yourdomain.com/thanks","d":"yourdomain.com","p":{"total":49.99,"currency":"EUR","items":"[{\"title\":\"T-shirt\",\"quantity\":2,\"price\":24.99}]"}}'

Requisitos para la ruta del lado del servidor:

  • La clave API debe ser de ambito de sitio al sitio que envia el evento (el dominio d). La API rechaza la solicitud si el sitio de la clave no coincide con d.
  • u (URL de pagina) y d (dominio) son obligatorios y deben coincidir con un sitio verificado en tu cuenta.
  • Content-Type es text/plain (evita un preflight CORS en la ruta del navegador; la API analiza el cuerpo como JSON de todos modos).
  • El token de deteccion de bots del navegador se omite para solicitudes autenticadas con clave API, porque un servidor no puede producir una huella de navegador y la clave ya demuestra que el llamador es el backend del dueno del sitio.
  • El mismo limite de tasa por IP que la ruta del navegador sigue aplicandose.

Una vez que el comercio esta activo y los eventos fluyen, el panel del sitio muestra:

  • Ingresos, suma de total en eventos order_completed (mostrado en tu moneda de visualizacion; almacenado en EUR).
  • AOV, ingresos / numero de eventos order_completed.
  • Tasa conv., recuento order_completed / visitantes unicos × 100.
  • Embudo de conversion, visitantes → checkout_startedpayment_submittedorder_completed.
  • Productos top, ingresos y cantidad por titulo de producto (desde items).
  • Ingresos por fuente / ubicacion / dispositivo, la columna de Ingresos tambien aparece en esos paneles, para que puedas atribuir ingresos a una campana o canal.

Si ya disparas eventos de e-commerce de GA4 via el dataLayer, las formas de las propiedades son similares pero los nombres de eventos difieren. El mapeo minimo:

Evento GA4 Evento MetriXs
begin_checkout checkout_started
add_payment_info payment_submitted
purchase order_completed

El array items usa { title, quantity, price } en lugar de { item_name, quantity, price } de GA4, asi que renombra item_name a title cuando adaptes tu push del dataLayer existente.