Plataformas publicitarias y tiendas online

Server-side tracking en WooCommerce: guía de configuración

Configura el server-side tracking en WooCommerce: envía los pedidos pagados a Meta y TikTok con el plugin de ROASaurus o con webhooks, vincúlalos a los clics en anuncios y pruébalo.

·Actualizado el ·11 min de lectura·Por el equipo de ROASaurus

Ideas clave
  • El server-side tracking de WooCommerce envía cada pedido pagado a Meta, TikTok y otras plataformas publicitarias a partir de los datos de pedido de la propia tienda, así que una compra cuenta aunque el píxel del navegador nunca se dispare.
  • ROASaurus cuenta un pedido de WooCommerce como pagado cuando su estado es processing o completed, lo que incluye los pedidos de pago contra reembolso y las transferencias bancarias una vez que las confirmas.
  • El plugin de ROASaurus guarda el id de visitante y las cookies del clic en el anuncio en cada pedido durante el checkout, de modo que el pedido queda vinculado con exactitud a su clic en el anuncio.
  • Sin el plugin, los webhooks siguen entregando todos los pedidos pagados, pero no hay vinculación con la página de agradecimiento: los pedidos solo se vinculan por un email introducido antes en el sitio o por una dirección IP y un navegador únicos.
  • En WooCommerce, el script de ROASaurus sigue los plugins de consentimiento que usan la WP Consent API, como Complianz y CookieYes, y los banners de Cookiebot, OneTrust e IAB TCF.

El server-side tracking de WooCommerce envía cada pedido pagado a partir de los datos de pedido de tu tienda a Meta, TikTok y otras plataformas publicitarias, en lugar de depender solo de un píxel en el navegador del comprador. La compra se registra aunque un bloqueador de anuncios detenga el píxel o el comprador nunca llegue a la página de agradecimiento.

Esta guía explica por qué las tiendas WooCommerce pierden conversiones, qué datos de pedido te da WooCommerce y las dos formas de conectar ROASaurus: el plugin de WordPress o los webhooks. Después trata la vinculación, el consentimiento, la configuración y las pruebas. Para la idea general, lee qué es el server-side tracking.

¿Por qué las tiendas WooCommerce pierden conversiones?

Un píxel del navegador registra una compra solo cuando el script del píxel se carga, el comprador llega a la página de agradecimiento y el navegador envía el evento. Cada paso puede fallar. El pedido en sí sigue estando en tu base de datos, porque WooCommerce lo guarda en el servidor.

Qué ocurrePíxel del navegadorDatos de pedido en WooCommerce
El comprador paga mediante una redirección (por ejemplo PayPal o una app bancaria) y cierra la pestañaSin página de agradecimiento, sin evento de compraPedido pagado, estado processing
Un bloqueador de anuncios o un ajuste de privacidad bloquea el script del píxelSin evento de compraPedido pagado
El visitante rechaza las cookies de marketingEl píxel no debe cargarsePedido pagado
Una transferencia bancaria se confirma tres días despuésEn ese momento no hay ningún navegador abiertoEl estado cambia de on hold a processing
Un plugin de caché o de optimización de scripts retrasa el píxelEl evento puede llegar tarde o faltarPedido pagado
En todos los casos el pedido pagado existe en WooCommerce. El server-side tracking envía ese pedido, pase lo que pase en el navegador.

Las compras que faltan causan dos tipos de daño. La plataforma publicitaria optimiza con menos conversiones, y tus informes muestran un retorno menor del que realmente obtienes. Este es el segundo efecto en cifras, para una tienda de ejemplo con un ROAS de equilibrio de 2.2:

Tienda de ejemplo, un mesSolo el píxelTodos los pedidos pagados
Gasto publicitario en Meta$8,000$8,000
Compras de clics de Meta260320
Ingresos a $60 por pedido$15,600$19,200
ROAS15,600 ÷ 8,000 = 1.9519,200 ÷ 8,000 = 2.40
Frente al equilibrio (2.2)Parece una pérdidaRentable
Cifras ilustrativas. La misma campaña parece una pérdida con los datos del píxel y gana dinero con los datos del pedido.

Lo que te ofrece WooCommerce: pedidos, webhooks y la REST API

¿Qué estados de pedido cuentan como pagados?

WooCommerce describe processing como pago recibido, con el pedido a la espera de ser tramitado. ROASaurus envía los pedidos con el estado processing o completed y omite los pedidos en pending payment, on hold, failed, cancelled y refunded. Dos métodos de pago requieren atención:

  • Pago contra reembolso. WooCommerce pone estos pedidos en processing hasta que se cobra el pago, así que ROASaurus los envía cuando se realizan. Los pedidos con un producto descargable son la excepción: pasan a on hold. Consulta el seguimiento de los pedidos con pago contra reembolso para ver qué implica eso en las devoluciones y los rechazos.
  • Transferencia bancaria. WooCommerce pone estos pedidos en on hold mientras verificas el pago. ROASaurus los envía cuando los pasas a processing.

Webhooks

Un webhook es un mensaje que WooCommerce envía a otro sistema cuando algo cambia. Lo creas en WooCommerce › Settings › Advanced › Webhooks. Para un topic de pedido, el payload es el mismo objeto de pedido que devuelve la REST API. Cada entrega lleva una cabecera X-WC-Webhook-Signature: un hash HMAC-SHA256 en base64 del payload, creado con el secreto que elijas. ROASaurus comprueba esa firma antes de aceptar un pedido.

Dos detalles importan en la práctica. WooCommerce entrega los webhooks en segundo plano, por defecto con WP-Cron, así que una entrega puede retrasarse cuando esa cola va con retraso. Y WooCommerce desactiva un webhook tras más de cinco entregas fallidas seguidas.

REST API

La REST API permite que ROASaurus pida los pedidos por su cuenta. Con una clave de API de solo lectura, ROASaurus pide cada 5 minutos los pedidos processing y completed que han cambiado desde su última comprobación, con 30 minutos de solapamiento. Los pedidos que ya tiene se ignoran. Así se captura cualquier pedido que se le haya escapado a un webhook.

Campo del pedidoQué hace ROASaurus con él
idSe convierte en el id de evento order-1042, compartido por los eventos del servidor y del navegador
totalEl valor de la compra: el total final, con impuestos y gastos de envío
Email de facturación, teléfono, nombre, ciudad, provincia, código postal, paísCon hash SHA-256 y enviados como datos del cliente
customer_ip_address, customer_user_agentSe envían con el evento y se usan para vincular el pedido con un visitante
line_itemsIds de producto (el id de variación cuando hay uno), cantidades y precios
date_paid_gmtLa hora del evento para los pedidos de un webhook o de la REST API (la fecha de creación cuando no hay fecha de pago)
meta_dataCon el plugin: el id de visitante y las cookies de Meta y TikTok
Lo que ROASaurus lee de un pedido de WooCommerce. El webhook y la REST API devuelven los mismos campos.

Plugin o webhooks: dos formas de conectar

Ambas conexiones envían todos los pedidos pagados. Se diferencian en lo bien que cada pedido se vincula con el clic en el anuncio que trajo al comprador.

CheckoutEl plugin guarda el id de visitante y las cookies de clic en el pedido
Pedido pagadoEstado processing o completed
ROASaurusRecibe el pedido del plugin o de un webhook
Plataformas publicitariasMeta, TikTok y otras reciben un Purchase con el id de evento order-1042
El recorrido de los datos con el plugin. Sin él, el paso del checkout no guarda nada extra y el pedido llega solo por webhook.
Plugin de ROASaurusSolo webhooks
Qué instalasUn plugin de WordPress (PHP 7.4 y WooCommerce 6.0 o superior)Nada: un webhook en los ajustes de WooCommerce
Cómo llegan los pedidosEl plugin envía cada pedido pagado a la API de pedidos de ROASaurusWooCommerce envía Order updated; comprobación opcional de la REST API cada 5 minutos
Script de trackingLo carga el plugin en cada páginaLo añades tú, por ejemplo con el plugin WPCode o en tu tema
Id de visitante y cookies de clic en el pedidoSí, se guardan en el checkout (checkout clásico y por bloques)No
Compra del navegador en la página de agradecimientoSí, con el mismo id de evento que el evento del servidorNo
Vinculación con la página de agradecimientoSíNo
Ambas conexiones envían todos los pedidos pagados. Solo el plugin vincula cada pedido con su visitante en el checkout.

Puedes usar ambas a la vez. El plugin guarda el id de visitante en el pedido como metadatos del pedido, y el payload del webhook lo lleva consigo. ROASaurus guarda cada pedido una sola vez, por su id de pedido de WooCommerce, así que el plugin y el webhook nunca crean dos compras. El plugin también declara compatibilidad con el High-Performance Order Storage de WooCommerce.

¿Cómo se vincula un pedido de WooCommerce con el clic en el anuncio?

Una plataforma publicitaria solo puede dar el mérito de una compra a un anuncio cuando puede conectar ambos. ROASaurus lo hace vinculando el pedido con el visitante que hizo clic en el anuncio, y ese visitante lleva consigo los click ids (como fbclid y ttclid) y los parámetros UTM de la llegada. Prueba estos métodos en orden y se detiene en el primero que funciona:

  1. El id de visitante guardado en el pedido. Solo con el plugin. Es un vínculo exacto.
  2. La compra del navegador en la página de agradecimiento, que lleva el mismo id de pedido. Solo con el plugin.
  3. Un email con hash que el visitante dio antes en tu sitio, por ejemplo en un formulario emergente de Klaviyo, Attentive o Wisepops, o mediante una llamada Identify.
  4. La misma dirección IP y el mismo navegador, vistos desde 3 horas antes hasta 15 minutos después del pedido, pero solo cuando encaja exactamente un visitante. En redes compartidas, como oficinas y operadoras móviles, varios visitantes suelen compartir una misma dirección IP, y entonces ROASaurus no adivina.

ROASaurus espera un momento antes de enviar cada compra, para que el evento de la página de agradecimiento pueda llegar primero. Si el pedido sigue sin vincularse, lo intenta de nuevo en el momento del envío. La página Orders muestra el resultado por pedido en la columna Matched by. Los pedidos vinculados mediante el id de visitante del plugin muestran cart, la misma etiqueta que reciben los pedidos de Shopify.

Enviado a Meta para el pedido 1042Vinculado (plugin)Sin vincular (solo webhooks)
Id de evento order-1042SíSí
Email, teléfono, nombre y dirección con hashSíSí
Dirección IP y navegador del pedidoSíSí
Click id y id de navegador de Meta (fbc, fbp)SíNo
Id de visitante con hash (external_id)SíNo
El clic en el anuncio en la atribución de ROASaurusCampaña y anuncio del clicSe muestra como directo o desconocido
Un pedido sin vincular llega igualmente a Meta con los datos del pedido. Un pedido vinculado añade los identificadores de clic que Meta usa para dar el mérito al anuncio.

Esos identificadores de clic aumentan la tasa de coincidencia de Meta para el evento. Event Match Quality explica cómo los puntúa Meta.

Cada tienda de ROASaurus tiene el ajuste Respect visitor consent, que viene activado por defecto. En WooCommerce, el script de ROASaurus lee la decisión del visitante en la WP Consent API, que rellenan plugins de consentimiento como Complianz y CookieYes. También lee Cookiebot, OneTrust, los banners IAB TCF y Google consent mode. Hasta que el visitante acepte las cookies de marketing, el script no crea ningún id de visitante y no carga ningún píxel del navegador.

Cuando un visitante rechaza, el script no crea ningún id de visitante, no guarda click ids y no dispara píxeles del navegador, y el plugin no guarda cookies de tracking en el pedido. El pedido pagado se sigue enviando desde el servidor a tus plataformas publicitarias conectadas, con datos del cliente con hash a partir del pedido y con la dirección IP y el navegador del pedido. Si tu asesoramiento legal indica que los eventos de compra también necesitan consentimiento previo, ponte en contacto con ROASaurus antes de activar las compras desde el servidor. La página de ayuda sobre consentimiento tiene los detalles, y el artículo sobre Consent Mode v2 y RGPD trata el contexto legal.

Cómo configurar el server-side tracking en WooCommerce

Estos son los pasos para la vía del plugin:

  1. Añade la tienda

    En ROASaurus, ve a Add a store, elige WooCommerce e introduce el dominio que visitan tus clientes.

  2. Crea una clave de API

    Abre Store settings y, en Orders API, haz clic en Create API key. Copia la clave enseguida: solo se muestra una vez, junto a la clave de tu tienda. El endpoint es la dirección que va delante de /api/v1/orders en esa página.

  3. Instala el plugin

    Descarga el plugin y sube el zip en WordPress en Plugins › Add New Plugin › Upload Plugin. Después, actívalo.

  4. Introduce las claves

    En WooCommerce › ROASaurus, introduce el endpoint, la clave de la tienda y la clave de API, y guarda.

  5. Conecta tus plataformas publicitarias

    En Tracking & platforms, usa Connect with Facebook o Add pixel para Meta, TikTok y las demás. Marca la opción de cargar también el píxel del navegador, para que la compra de la página de agradecimiento se deduplique con el evento del servidor.

  6. Configura el consentimiento y prueba

    Bloquea el script en tu herramienta de consentimiento hasta que el visitante acepte las cookies de marketing y después haz un pedido de prueba.

Sin el plugin, añade la etiqueta de script de Tracking & platforms a todas las páginas y después crea el webhook. La pestaña Connection de tu tienda muestra la URL de tu webhook. Mantenla en privado: cualquiera que tenga la URL puede enviar pedidos a tu tienda.

Ajustes del webhook
WooCommerce › Settings › Advanced › Webhooks › Add webhook

Status        Active
Topic         Order updated
Delivery URL  (your webhook URL from the Connection tab)
Secret        (a secret of your choice; paste the same one in ROASaurus)
API version   WP REST API Integration v3

Para la copia de seguridad, crea una clave en WooCommerce › Settings › Advanced › REST API con acceso de lectura. Pega la consumer key y el secret en la pestaña Connection, guarda y pulsa Test connection. Fetch orders now descarga de inmediato los pedidos pagados recientes. La página de la integración con WooCommerce enumera todas las opciones en un solo lugar.

¿Cómo pruebas el server-side tracking en WooCommerce?

Prueba primero el lado del navegador, después haz un pedido y síguelo hasta las plataformas publicitarias.

  • Abre tu tienda con ?roasaurus=connected en la dirección. Una alerta confirma que el script se ejecuta. Con ?roasaurus=debug, el script registra en la consola del navegador lo que envía.
  • En el Event log, en Collected events, las visitas de página deberían mostrar un id de visitante.
  • Haz un pedido de prueba. El pago contra reembolso es lo más rápido, porque el pedido pasa a processing de inmediato.
  • En la pestaña Connection, Last order received muestra la hora del último pedido.
  • En el Event log, en Server deliveries, cada plataforma conectada recibe una línea con el estado sent y la respuesta de la plataforma.
PageView visitor 3f9c2a1eScript cargado con consentimiento
Purchase order-1042Página de agradecimiento, píxeles del navegador disparados
order 1042 processingRecibido del plugin
Meta Purchase sentMismo id de evento, deduplicado
TikTok CompletePayment sentMismo id de evento, deduplicado
Ejemplo de un pedido de prueba correcto con el plugin. Solo con webhooks, falta la línea de la página de agradecimiento y es lo esperado.

Para ver el evento en Meta, pega el código de Events Manager › Test events en el campo Test event code de tu píxel de Meta en ROASaurus. Quítalo cuando termines, porque el código es solo para pruebas. Si el plugin no puede entregar un pedido, añade una nota de pedido en WooCommerce que empieza por «ROASaurus: order not sent», seguida del error.

Errores que debes evitar

  • Usar el topic Order created. Los pedidos pagados mediante redirección se crean como pending payment. ROASaurus ignora los pedidos sin pagar, y no llega un segundo mensaje «created» cuando se recibe el pago. Usa Order updated.
  • Un secret que no coincide. ROASaurus rechaza una entrega cuya firma no coincide con el secret que tiene. Tras más de cinco fallos seguidos, WooCommerce desactiva el webhook. Corrige el secret, vuelve a poner el webhook en Active y añade la clave de la REST API, para que se recuperen los pedidos del intervalo.
  • Dos herramientas que envían el mismo píxel. Si otro plugin también envía tu píxel de Meta o de TikTok, usa sus propios ids de evento y la plataforma cuenta cada venta dos veces. Desactívalo para ese píxel. Consulta cómo evitar el doble conteo y los eventos de compra duplicados.
  • Esperar eventos de añadido al carrito. En WooCommerce el script registra por sí solo las visualizaciones de página. Las visualizaciones de producto y los añadidos al carrito se detectan automáticamente solo en Shopify. Un desarrollador puede enviarlos con una llamada track a tlq.
  • Esperar conversiones de Google Ads. ROASaurus solo envía conversiones de compra de Google Ads desde el checkout de Shopify. Desde WooCommerce envía las compras a Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn y las demás plataformas publicitarias que conectes.
  • Transferencias bancarias tardías. Meta acepta eventos del servidor hasta 7 días después de la hora del evento. El plugin envía el pedido con la fecha en que se creó, así que Meta rechaza una transferencia confirmada más de 7 días después del checkout. Los pedidos que llegan por webhook o por la REST API usan en cambio la fecha de pago. Ten en cuenta también que la página de agradecimiento dispara la compra del navegador en el checkout, antes de que se pague la transferencia. Si el pago se confirma más de 48 horas después, Meta y TikTok no pueden fusionar las copias del navegador y del servidor, y una transferencia que nunca se paga conserva su compra del navegador.

Cuando los pedidos fluyen, los informes de atribución muestran de qué campañas y anuncios proceden.

Fuentes

  1. WooCommerce: Webhooks Documentation
  2. WooCommerce REST API Documentation - WP REST API v3
  3. WooCommerce: Order Statuses Documentation
  4. WooCommerce: Cash on Delivery Documentation
  5. Meta for Developers: Server Event Parameters

En ROASaurus

Sigue leyendo

Plataformas publicitarias y tiendas onlineTracking de conversiones en pago contra reembolso y checkouts externosTracking de conversiones en pago contra reembolso: por qué los píxeles no detectan los pedidos COD ni los de checkouts externos, cuándo enviar la compra y cómo gestionar los pedidos rechazados.Plataformas publicitarias y tiendas onlineTracking de conversiones en CCV Shop: guía de configuraciónTracking de conversiones en CCV Shop: envía los pedidos pagados a Meta y TikTok con un webhook firmado, vincúlalos a los clics en anuncios, configúralo, pruébalo y gestiona los pagos tardíos.Plataformas publicitarias y tiendas onlineConversiones mejoradas de Google Ads en ShopifyLas conversiones mejoradas añaden datos de cliente con hash a las compras de Google Ads en Shopify. Cómo funcionan, en qué se diferencian de las importaciones offline y cómo configurarlas.
Preguntas frecuentes

Tus preguntas, resueltas

¿Necesito el plugin de ROASaurus para WooCommerce?

No. Un webhook de WooCommerce basta para enviar todos los pedidos pagados. El plugin añade el id de visitante y las cookies de clic a cada pedido y una compra del navegador con deduplicación en la página de agradecimiento, lo que vincula los pedidos con los clics en anuncios con exactitud, así que se recomienda.

¿Qué topic de webhook de WooCommerce debería usar?

Order updated, con la versión de API WP REST API Integration v3. ROASaurus ignora los pedidos que no están en processing o completed y guarda cada pedido una sola vez, así que las actualizaciones repetidas no crean compras adicionales.

¿Se envían a Meta y TikTok los pedidos de pago contra reembolso?

Sí. WooCommerce da a los pedidos de pago contra reembolso el estado processing cuando se realizan, y ROASaurus cuenta los pedidos en processing como pagados. Los pedidos por transferencia bancaria se envían cuando los pasas de on hold a processing.

¿Qué se envía cuando un visitante rechaza las cookies?

El pedido pagado se sigue enviando desde el servidor con datos del cliente con hash y con la dirección IP y el navegador del pedido. El script no debería ejecutarse sin consentimiento, así que no hay id de visitante ni click id con los que vincular el pedido a un clic en un anuncio.

¿Por qué ha dejado de funcionar mi webhook de WooCommerce?

WooCommerce desactiva un webhook tras más de cinco entregas fallidas seguidas. Comprueba que el secret de WooCommerce coincide con el de ROASaurus, vuelve a poner el webhook en Active y añade una clave de la REST API para que los pedidos omitidos se recuperen cada 5 minutos.

¿Envía ROASaurus conversiones de Google Ads desde WooCommerce?

No para las compras. Las conversiones de compra de Google Ads solo se envían desde el checkout de Shopify. Desde WooCommerce, ROASaurus envía las compras a Meta, TikTok, Snapchat, Pinterest, Reddit, X, Microsoft Ads, Taboola, LinkedIn y las demás plataformas publicitarias que conectes.

Cada venta, rastreada hasta el anuncio que la generó

Server-side tracking, beneficio y valor de vida del cliente en una sola app. Prueba gratuita de 14 días, sin tarjeta de crédito.

Empieza tu prueba gratuita →