Arquitectura & Deduplicación Cache-Safe
El problema del tracking tradicional
En una configuración típica de WordPress con caché de página completa (Full-Page Cache):
- Caché HTML Estática: El servidor genera el HTML una vez y lo guarda en disco o memoria (WP Rocket, LiteSpeed, Cloudflare).
- Colisión de IDs: Si un plugin genera el
event_iden el servidor PHP durante la carga de la página, ese mismo ID queda grabado en el HTML cacheado. Todos los visitantes posteriores reciben el mismoevent_id. - Pérdida de Conversiones: Cuando dos visitantes distintos realizan una acción, Meta ve el mismo
event_idy descarta la segunda conversión creyendo que es un duplicado.
[ Visitante A ] ──▶ Carga página cacheada (event_id: "xyz-123") ──▶ Envía Formulario ──▶ Meta registra Lead[ Visitante B ] ──▶ Carga página cacheada (event_id: "xyz-123") ──▶ Envía Formulario ──▶ Meta DESCARTA (Duplicado) ❌La Solución de SignalRelay: event_id en el Navegador
SignalRelay desacopla la generación del ID de la renderización del servidor:
[ Visitante A ] ──▶ JS genera event_id único "sr_a98f..." ──▶ Servidor despacha CAPI con "sr_a98f..." ──▶ Meta Acepta ✅[ Visitante B ] ──▶ JS genera event_id único "sr_b44c..." ──▶ Servidor despacha CAPI con "sr_b44c..." ──▶ Meta Acepta ✅- Generación Client-Side: El script
tracking.jsgenera un UUID v4 criptográfico único para cada evento en el momento exacto en que ocurre la acción. - Sincronización Dual: El mismo
event_idse pasa tanto al pixel del navegador (fbq('track', 'Lead', {...}, {eventID: id})) como al endpoint REST local de SignalRelay (/wp-json/signalrelay/v1/event). - Despacho Server-to-Server: El servidor de WordPress recibe el payload, aplica las reglas de consentimiento, hashea la información personal (PII) con SHA-256 y envía la solicitud a la API de Conversiones.
- Deduplicación Exitosa: Meta, TikTok o Pinterest reciben ambos paquetes con el mismo
event_idy fusionan los datos para maximizar el Event Match Quality (EMQ).