Saltar al contenido

Meta Pixel y Conversions API con deduplicación

El Meta Pixel se ejecuta en el navegador, así que los bloqueadores de anuncios y las restricciones de los navegadores frenan parte de sus eventos. La Conversions API (CAPI) envía los mismos eventos desde tu contenedor de servidor, que es mucho más difícil de bloquear. Meta recomienda usar ambos. El problema es que entonces cada conversión llega dos veces, así que das a las dos copias el mismo ID de evento y Meta se queda con una.

Avanzado 12 min de lectura

Lo que aprenderás

  • Enviar eventos del Meta Pixel desde el contenedor web con un event_id.
  • Pasar el mismo event_id al contenedor de servidor junto con el hit de GA4.
  • Configurar una etiqueta de Conversions API en el contenedor de servidor.
  • Confirmar en Events Manager que los eventos del navegador y del servidor se deduplican.

Antes de empezar

  • GA4 funcionando a través de tu contenedor de servidor (lección 4).
  • Acceso de administrador a tu Meta Pixel (conjunto de datos) en Events Manager.
  • Consent Mode configurado (lección 6) si necesitas consentimiento para las etiquetas de marketing.

01 Cómo funciona la deduplicación

Meta considera que un evento del navegador y uno del servidor son el mismo cuando vienen del mismo Pixel con el mismo event_name y el mismo event_id, y llegan con menos de 48 horas de diferencia. Se queda con uno y descarta el otro.

  • El nombre del evento debe coincidir exactamente, por ejemplo Purchase en ambos.
  • El event_id debe ser idéntico en ambos, así que hay que crearlo una sola vez, en el navegador, y compartirlo.
  • Las cookies _fbp y _fbc ayudan a Meta a asociar el evento del servidor con el visitante. Como el hit de GA4 va a tu propio subdominio, el navegador envía estas cookies con él y la etiqueta de servidor puede leerlas.

02 Crea el ID de evento en el contenedor web

Genera un ID único cuando ocurra el evento y envíalo al dataLayer junto con el evento.

js
const eventId = crypto.randomUUID();

window.dataLayer = window.dataLayer || [];
window.dataLayer.push({ ecommerce: null });
window.dataLayer.push({
  event: 'purchase',
  event_id: eventId,
  ecommerce: {
    transaction_id: 'T-10293',
    value: 129.90,
    currency: 'EUR',
    items: [{ item_id: 'SKU-1', item_name: 'Shoes', price: 129.90, quantity: 1 }]
  }
});
  1. 1 En el contenedor web crea una Data Layer Variable con el nombre event_id.
  2. 2 En tu etiqueta del Meta Pixel (de la Community Template Gallery o de tu configuración actual) pon Purchase como nombre del evento y {{DLV - event_id}} en el campo Event ID.
  3. 3 Abre la etiqueta de evento de GA4 que envía purchase y añade un parámetro de evento event_id con el valor {{DLV - event_id}}. Ahora el ID viaja al contenedor de servidor dentro del hit de GA4.
  4. 4 Publica el contenedor web cuando el Preview muestre el mismo ID en las dos etiquetas.

03 Añade la etiqueta de Conversions API en el contenedor de servidor

Primero consigue un token de acceso: en Events Manager selecciona tu Pixel, abre Settings, baja hasta Conversions API y haz clic en Generate access token. Guarda el token en secreto: permite enviar eventos a tu Pixel.

  1. 1 En el contenedor de servidor ve a Templates, luego a Tag Templates, y haz clic en Search Gallery. Añade una plantilla de Conversions API, como la Conversions API Tag de la propia Meta o la de Stape.
  2. 2 Crea una etiqueta nueva a partir de la plantilla. Introduce tu Pixel ID y el access token.
  3. 3 Asigna el nombre del evento (purchase de GA4 a Purchase de Meta) si la plantilla no lo hace por ti.
  4. 4 Asegúrate de que el ID de evento sale del parámetro de evento event_id. La mayoría de las plantillas lo leen automáticamente.
  5. 5 Activa la etiqueta con un activador Custom en el que Client Name equals GA4 y Event Name equals purchase.

04 Prueba en Events Manager

  1. 1 En Events Manager selecciona tu Pixel y abre Test events. Copia el código de prueba (tiene este aspecto: TEST12345).
  2. 2 Pégalo en el campo Test Event Code de la etiqueta de servidor y publica, o prueba en el Preview del servidor.
  3. 3 Provoca el evento en tu sitio. Deberían aparecer un evento Browser y otro Server.
  4. 4 Comprueba que están marcados como deduplicados. Si no lo están, compara el nombre del evento y el event_id de ambos.
  5. 5 Quita el código de prueba al terminar; si no, los eventos reales seguirán llegando a Test events.
  • El evento del Pixel y el hit de GA4 llevan el mismo event_id.
  • El Preview del servidor muestra que la etiqueta de Conversions API se activó con una respuesta 2xx.
  • Events Manager muestra los eventos del navegador y del servidor deduplicados.
  • El código de prueba se ha quitado de la etiqueta en producción.

Preguntas frecuentes

¿Puedo usar solo la Conversions API y prescindir del Pixel?

Puedes, pero Meta recomienda los dos. El Pixel recoge señales del navegador que el servidor no ve, y el servidor cubre a los visitantes cuyo navegador bloquea el Pixel. La deduplicación mantiene el recuento correcto.

¿Por qué Events Manager cuenta mis compras dos veces?

Los dos eventos no comparten el mismo nombre de evento y event_id. Comprueba que ambas etiquetas leen el ID del mismo push al dataLayer y que la etiqueta de servidor recibe el parámetro event_id desde el hit de GA4.

¿De dónde salen `_fbp` y `_fbc` en el servidor?

Los crea el Pixel en el navegador. Como tus hits de GA4 van a un subdominio de tu sitio, el navegador envía estas cookies con ellos y la plantilla de Conversions API las lee de la solicitud.

¿Listo para ponerlo en práctica?

Despliega un contenedor GTM de servidor en tu propio dominio en pocos minutos. El plan Gratis no pide tarjeta.

Crear una cuenta gratuita