Shopify y Meta Ads no cuadran: por dónde empezar a mirar
Meta declara más compras de las que tiene Shopify. Ventana de atribución, zona horaria, devoluciones, canal de origen y eventos duplicados, en orden.

Un cliente me escribió un sábado a las once de la noche con dos capturas. En el administrador de anuncios de Meta: 18 compras. En el panel de Shopify: 11 pedidos. Mismo día, misma tienda, misma campaña. El mensaje decía: «Pedro, ¿me mentís vosotros o me miente Facebook?».
Ninguno de los dos. Pero la pregunta estaba bien hecha, y la respuesta larga es la que te ahorra una conversación muy incómoda dentro de seis meses.
Vamos al grano. Te cuento el orden exacto en el que diagnostico yo un descuadre entre Shopify y Meta, de arriba abajo. En casi todas las cuentas que han pasado por mis manos, los tres primeros pasos explican la mayor parte de la diferencia y no hace falta llamar a ningún desarrollador.
Los dos paneles no miden lo mismo, y nunca lo van a medir
Shopify cuenta pedidos. Alguien pulsó pagar, entró dinero, hay una fila con un importe y un número de pedido. Eso es contabilidad.
Meta cuenta atribuciones. Alguien vio o pulsó un anuncio y después, dentro de una ventana de tiempo, compró. Y cuando le falta el dato, lo modela. Eso es una estimación.
Así que la pregunta útil no es por qué no cuadran, porque no van a cuadrar jamás. La pregunta es otra: esta diferencia que estoy viendo, ¿es la normal o tengo algo roto?
1. La ventana de atribución
Empieza aquí siempre. Es gratis, tarda treinta segundos y, por lo que veo en las cuentas que audito, explica más de la mitad del descuadre.
Meta viene por defecto con 7 días de clic y 1 día de visualización. Ese día de view-through es el que hace el destrozo: alguien ve tu anuncio en Reels a las nueve de la mañana, no lo toca, y por la tarde busca tu marca en Google y compra desde el portátil. Shopify apunta ese pedido a búsqueda o a directo, porque su informe de origen de ventas funciona con last click. Meta se apunta la venta entera. Los dos tienen su lógica, y los dos no pueden tener razón a la vez.
La prueba: en el administrador de anuncios cambia la comparación de atribución a 7 días de clic sin visualización y vuelve a mirar el mismo rango de fechas. Si la brecha se cierra a la mitad, ya sabes de qué estamos hablando. Si no se mueve nada, sigue bajando por la lista. Aquí lo tienes desmenuzado.
Cambiar la ventana solo cambia lo que te cuentan. Si la mueves hasta que cuadre con Shopify, no estás midiendo: estás eligiendo el número que más te gusta.

2. La zona horaria
El fallo más tonto de todos, y el que más días sueltos descuadra. La cuenta publicitaria tiene su zona horaria fijada el día que se creó y no se puede cambiar nunca. La tienda tiene la suya.
Si la cuenta se abrió vía partner con configuración americana (UTC-7 o UTC-8, pasa muchísimo) y la tienda está en Europa/Madrid, llevas nueve horas de desfase. Todos los pedidos de la tarde y la noche española caen en el día anterior del informe de Meta. Comparas un jueves y te vuelves loco buscando un fantasma.
Solución práctica: compara meses cerrados. En treinta días el desfase se compensa casi entero y te quedas con el descuadre de verdad, no con el del reloj.
3. Pedidos cancelados, devueltos y sin cobrar
Meta registra el evento Purchase cuando se dispara, y se acabó. No se entera de que el pedido se canceló el martes, de que el cliente devolvió las dos tallas que pidió por si acaso, o de que la transferencia nunca llegó a entrar.
En moda esto no es ruido, es una amputación. Con un 25-30% de devolución, que es lo normal en el sector, el ROAS del panel y el ROAS que aguanta la caja no se parecen ni de lejos. Y la devolución tarda semanas en llegar, así que el informe del día 1 siempre es más bonito que la verdad del día 45. Cómo restarlas bien.
4. Por qué canal dice Shopify que entró el pedido
Aquí es donde la mayoría de agencias dejan de mirar, y es una pena, porque es la parte interesante.
Shopify te da el origen del pedido con su propio criterio: último clic no directo, cookie de primera parte, sesión. Meta trabaja con su ventana, su modelado y sus datos cross-device, el usuario que ve el anuncio en el móvil y compra en el ordenador del trabajo. Cuando una venta entra por un email de carrito abandonado que el cliente abrió cuatro días después de pinchar tu anuncio, Shopify escribe «Email» y Meta escribe «compra». Uno de los dos se está cobrando algo que no generó solo.
Lo mismo pasa con Google Ads de marca, con el WhatsApp del comercial y con la newsletter del viernes. Si sumas las ventas que se apuntan todas las plataformas de una tienda, suele salir entre un 130% y un 180% de lo que marca la caja. Toda la conversación está ahí.
5. Eventos duplicados
El clásico. Tienes el píxel del navegador y la Conversions API mandando el mismo Purchase, y la deduplicación no funciona porque falta el event_id, porque el tracking server-side lo montó otro proveedor (GTM server, Elevar, alguna app del store) o porque la plantilla del tema dispara el evento en la página de gracias y otra vez al recargarla.
Se detecta rápido: si Meta te da el doble exacto de compras que Shopify, o un número sospechosamente redondo por encima, eso no es atribución, es duplicación. Y ojo con esto, que lo veo cada mes: la Conversions API no arregla la sobreatribución. Bien montada mejora la señal; mal montada te infla el panel con más eventos sobre un modelo que ya era generoso de serie. Cómo cazar las compras duplicadas.
¿Cuánta diferencia es normal?
Mira siempre mes cerrado, mismo rango de fechas, e ingresos contra ingresos. Compras contra pedidos te despista, porque el ticket medio de cada fuente no es el mismo.
| Desviación de Meta sobre la caja | Lectura | Qué hacer |
|---|---|---|
| Hasta 15% | Normal: cross-device y modelado | Nada. Explícalo en el informe y sigue |
| 15-35% | View-through sumando ventas de otros canales | Paso 1: compara con 7 días de clic |
| 35-80% | Devoluciones sin restar o canales solapados | Pasos 3 y 4, en ese orden |
| Más del 100% o x2 exacto | Duplicación de eventos | Paso 5: revisa event_id y deduplicación |
El caso que enseño en las reuniones
En una cuenta nuestra, Meta declaró 40.420 € de ingresos en un mes. La caja de la tienda, mismas fechas y mismo gasto, marcó 22.608 €. No había nada roto ni mal instalado: era view-through, devoluciones y ventas de otros canales, todo sumado.
El píxel decía 40.420 €. La tienda, 22.608. Cuando le enseñas eso a un cliente que lleva un año pagándote por «un ROAS de 4», la conversación cambia — y más te vale llegar tú con el dato antes de que lo descubra él.
Mi opinión, y aquí me puedes discutir todo lo que quieras: yo no escalo presupuesto con el ROAS del píxel ni de broma. He visto agencias facturar un año entero sobre esa cifra y llamarlo escalar, hasta que el cliente miró su propia contabilidad y la relación se acabó en una llamada de once minutos. El número del píxel sirve para decidir qué creatividad apagas hoy. Para decidir cuánto inviertes mañana, necesitas el ROAS real.
Por dónde empiezas el lunes
En este orden, sin saltarte nada:
- Comprueba la zona horaria de la cuenta publicitaria y la de la tienda. Treinta segundos.
- Descarga el mes cerrado con 7 días de clic sin visualización y compáralo con los ingresos de Shopify.
- Resta cancelados y devueltos del mes anterior, no del actual.
- Abre el informe de origen de ventas de la tienda y mira cuánto se lleva email, directo y buscador.
- Si después de todo eso Meta sigue doblando a la caja, es duplicación y toca revisar el tracking.
Nosotros hicimos esto a mano en hojas de cálculo durante dos años, una pestaña por cliente, cada primero de mes. Acabamos montando Furia Reports para no repetirlo nunca más: conecta Meta en solo lectura y la tienda, y deja el ROAS declarado y el real en la misma fila, con un enlace en modo lector que el cliente abre sin tocar tus accesos.
Pero la herramienta es lo de menos. Lo importante es esto: el objetivo no es que Shopify y Meta cuadren, porque no van a cuadrar. El objetivo es que tú sepas explicar por qué no cuadran antes de que te lo pregunten un sábado a las once de la noche.
Preguntas frecuentes
¿Cuánta diferencia entre Shopify y Meta Ads es normal?
En un mes cerrado, con ventana de 7 días de clic y 1 de visualización, una desviación de hasta el 15% sobre los ingresos de la tienda entra dentro de lo esperable: es atribución cross-device y modelado. Entre el 15% y el 35% suele ser el view-through sumando ventas de otros canales. Por encima del 35% hay devoluciones sin restar o canales solapados. Un x2 exacto casi siempre es duplicación de eventos.
¿Por qué Meta cuenta más compras que pedidos tiene Shopify?
Porque cuentan cosas distintas. Shopify registra pedidos cobrados; Meta registra atribuciones dentro de su ventana, incluidas las visualizaciones sin clic y las compras entre dispositivos. Si alguien ve tu anuncio en el móvil y compra dos días después desde el portátil tras buscar tu marca, Shopify lo apunta a búsqueda y Meta se lo apunta entero. Además, Meta no descuenta cancelaciones ni devoluciones posteriores.
¿La Conversions API arregla el descuadre?
No por sí sola. La Conversions API mejora la calidad de la señal cuando está bien montada con event_id y deduplicación correcta, pero no cambia el modelo de atribución de Meta ni resta devoluciones. Mal configurada empeora el problema: envía el mismo Purchase dos veces y el panel infla las compras. Si el descuadre apareció justo después de instalarla o de cambiar de proveedor de tracking server-side, empieza por ahí.
Furia Reports conecta tu cuenta de Meta Ads (solo lectura) y la tienda del cliente, y te enseña las dos cifras juntas en el mismo informe. Modo lector para compartirlo sin dar accesos. Desde 15 €/mes y 5 días de prueba sin tarjeta.


