WooCommerce con eventos duplicados: cómo encontrarlos y quitarlos
Tres plugins, GTM y un código pegado en el tema: así se duplica la compra en WooCommerce. Cómo detectarlo con Probar eventos y dejar una sola fuente.

Una compra de 89 €. Tres eventos en el Administrador de eventos de Meta. Mismo pedido, mismo navegador, mismo minuto — y el cliente al otro lado del Zoom preguntándome por qué su tienda cerró el mes en 4.200 € y Meta se apuntaba más del doble.
No era sobreatribución. Era WooCommerce disparando la compra por tres sitios a la vez.
Vamos al grano: cómo se detecta, cómo se limpia y, sobre todo, cómo dejas una sola fuente de seguimiento sin quedarte a ciegas mientras lo arreglas.
Antes de tocar nada: duplicado no es lo mismo que deduplicado
Ojo con esto, que es donde se lía casi todo el mundo. Si tienes el píxel de Meta en el navegador y la API de Conversiones por servidor, vas a ver dos eventos de compra por pedido en las herramientas de prueba. Eso es normal. Es justo lo que Meta quiere: dos señales del mismo hecho, con el mismo event_id, que el sistema une y cuenta una sola vez.
El problema es otro. Dos o más eventos con event_id distinto, o directamente sin event_id. Ahí Meta no tiene forma de unirlos, los cuenta por separado y tus campañas se ponen a optimizar sobre una compra que existe una vez en tu banco y tres veces en el panel de anuncios.
La regla corta: mira el parámetro de deduplicación, no el número de eventos.
Meta solo une eventos que comparten nombre y event_id. Si un plugin genera el suyo y otro no manda ninguno, no hay nada que unir y tendrás dos compras contadas.
Las tres formas de acabar con la compra duplicada
1. Dos plugins que hacen lo mismo
La más habitual con diferencia. Alguien instaló Facebook for WooCommerce (el plugin oficial de Meta) hace dos años, luego entró una agencia nueva, no miró el listado de plugins de WordPress y metió otro: PixelYourSite, el módulo de seguimiento que traía el tema premium, cualquiera. Los dos disparan Purchase en la página de pedido recibido. Cada uno con su propio ID.
Y no lo ves a simple vista en el Administrador de eventos, porque los dos eventos parecen correctos. Uno por uno están perfectos. El fallo es que hay dos.
2. GTM montado encima del plugin
Se mete Google Tag Manager para tener el seguimiento centralizado, se configura la etiqueta del píxel de Meta con su activador de compra… y nadie desactiva el plugin que ya estaba. El código del píxel se carga dos veces en la misma página. Pixel Helper te lo canta en rojo, si te molestas en abrirlo.
Hay una variante más fina del mismo fallo: GTM dispara Purchase con el activador de página de gracias y además tienes un evento purchase en el dataLayer con su propio activador. Dos disparos, mismo pedido, y el contenedor en apariencia impecable.
3. El código pegado a mano en el tema
El de toda la vida. El código base del píxel copiado en el header.php, o un wp_head en el functions.php del child theme, porque en su día alguien siguió un tutorial de cómo instalar el píxel paso a paso y lo dejó ahí. Después llegó el plugin y nadie quitó lo anterior.
Este es el peor de encontrar, porque no aparece en ninguna interfaz. Toca ir al editor del tema o al FTP y buscar fbq( a mano.
| Fuente | Dónde la encuentras | ¿Manda event_id? |
|---|---|---|
| Plugin oficial de Meta | Plugins de WordPress | Sí, navegador y servidor |
| Plugin de terceros | Plugins de WordPress | Depende, muchos sí |
| Contenedor de GTM | Vista previa de GTM | Solo si lo configuras tú |
| Código en el tema | header.php o functions.php | Casi nunca |

Cómo verificarlo con las herramientas de prueba de Meta
Esto es lo que hago yo, en este orden, cuando audito una cuenta nueva.
Primero Pixel Helper. Extensión de Chrome, abres la tienda y navegas como un cliente: home, ficha de producto, añadir al carrito, checkout. Si en cualquier página ves el mismo píxel cargado dos veces, o dos IDs que no esperabas, ya tienes por dónde tirar. Añadir al carrito es buen sitio para mirar, porque muchos plugins se pisan ahí antes que en la compra.
Después, Probar eventos. En el Administrador de eventos de Meta, pegas la URL de la tienda y haces una compra real de 1 € con un cupón. Miras los Purchase que entran: cuántos son, de qué origen y si comparten ID. Es la única prueba que vale de verdad, porque ahí ves lo que Meta recibe, no lo que tú crees que has configurado.
Y luego el apartado de Diagnóstico, que a veces te avisa solo de eventos duplicados. No es infalible — cuando los IDs son distintos muchas veces ni los marca — pero si salta la alerta, salta por algo.
Hay un atajo sin herramientas que no falla: exporta los pedidos del mes desde WooCommerce y compara el total de compras con el de Meta.
Si Meta te da exactamente el doble de compras que tu WooCommerce, eso no es sobreatribución. Es un plugin de más.
Distinguir una cosa de la otra importa, porque el tratamiento es distinto y la conversación con el cliente también. Te lo conté con más detalle en por qué el píxel registra compras duplicadas.
Cómo dejar una sola fuente sin perder datos
- Inventario completo: todas las fuentes que disparan el píxel, plugins, GTM y tema. Sin dar nada por supuesto.
- Eliges una. Para la mayoría de tiendas es el plugin oficial: es gratis, manda navegador y CAPI con la deduplicación ya resuelta, y lo actualiza Meta cuando WooCommerce cambia algo por dentro.
- Desactivas las demás de una en una, no todas de golpe.
- Compra de prueba después de cada cambio, con Probar eventos abierto.
- Marcas la fecha en el informe del cliente.
Ese punto cinco se olvida siempre y es el que te salva la reunión. Si limpias los duplicados un martes, el ROAS de tus campañas cae a la mitad el miércoles y el cliente va a pensar que has roto algo. Más te vale llegar tú con la explicación antes.
Sobre el miedo a perder datos: no pierdes nada. Un evento duplicado no aporta información, aporta ruido. Lo que sí pasa es que las campañas se reajustan durante unos días porque el algoritmo venía optimizando sobre un volumen que no existía. Mal trago de una semana, no una pérdida. Y no, activar la API de Conversiones no lo arregla — la CAPI no corrige la sobreatribución, solo hace que llegue más señal.
Quédate con el plugin oficial para Meta y usa GTM para el resto: GA4, Google Ads, lo que necesites. Tener las dos capas mandando compras al mismo píxel es pedir el duplicado a gritos.
Lo que esto te hace en el informe
Mi opinión, y me la puedes discutir: yo nunca escalaría presupuesto con el ROAS del píxel sin haberlo cruzado antes con la tienda. He visto agencias facturar meses enteros sobre esa cifra, de buena fe, sin saber que un plugin viejo la estaba doblando por detrás.
En una cuenta nuestra de e-commerce el píxel declaraba 40.420 € de ingresos en el periodo. La tienda, cruzada pedido a pedido, decía 22.608 €. Parte era Meta apuntándose ventas que venían de email o de marca, lo de siempre; parte, seguimiento sucio. Ahí desglosé de dónde salía cada euro. El número que le enseñas al cliente no puede ser el primero.
Por eso en Furia Reports enseñamos las dos columnas en el mismo informe, el ROAS declarado y el ROAS real de la tienda. No porque el píxel sobre, sino porque la distancia entre los dos números es la conversación que de verdad vale algo.
Si has llegado hasta aquí, haz una cosa antes de cerrar la pestaña: abre el listado de plugins de tu WordPress y cuenta cuántos tocan el píxel. Si hay más de uno, ya sabes qué haces el lunes. Y si el recuento de compras de Meta y el de tu tienda llevan meses sin parecerse, prepárate para llevarte una alegría y un disgusto el mismo día.
— Pedro
Preguntas frecuentes
¿Cómo sé si mi WooCommerce está duplicando el evento de compra?
La prueba más rápida no necesita herramientas: exporta los pedidos del mes desde WooCommerce y compara el número de compras con el que aparece en el Administrador de eventos de Meta. Si Meta te da el doble o el triple de pedidos que tu tienda, no es un problema de atribución, es una fuente de más disparando. Para confirmarlo, haz una compra real de 1 € con la pestaña Probar eventos abierta y cuenta los Purchase que entran.
Veo dos eventos Purchase, uno de navegador y otro de servidor. ¿Está mal?
No, eso es lo esperado si tienes el píxel y la API de Conversiones funcionando a la vez. Meta recibe las dos señales y las une siempre que compartan el mismo nombre de evento y el mismo event_id. El problema aparece cuando los IDs son distintos o cuando alguno de los eventos no manda ninguno: ahí Meta no puede unirlos, los cuenta por separado y tus campañas optimizan sobre compras que no existen.
Si quito los plugins duplicados, ¿pierdo datos o histórico?
No pierdes nada útil. Los eventos duplicados no aportan información nueva, solo ruido, y el histórico de Meta se queda como está: inflado en el periodo anterior y correcto a partir del cambio. Lo que sí notarás es un reajuste de una semana en las campañas, porque el algoritmo llevaba optimizando sobre un volumen de conversiones que no era real. Marca la fecha del cambio en el informe del cliente para que la caída tenga explicación.
Furia Reports conecta tu cuenta de Meta Ads (solo lectura) con tu tienda y te enseña el ROAS declarado y el real en la misma pantalla. Si hay eventos duplicados, la diferencia salta a la primera. Desde 15 €/mes y 5 días de prueba sin tarjeta.


