Despliegue de Meta Conversions API (CAPI) en Google Cloud Run mediante sGTM
Configuración técnica avanzada de un clúster serverless en Google Cloud Run, parámetros de deduplicación event_id, mapeo de cookies _fbp/_fbc y optimización del Event Match Quality Score a 8.5+.
Implementar Meta Conversions API (CAPI) no consiste en enviar eventos duplicados sin control. Para maximizar el Event Match Quality (EMQ) sin alterar las métricas de atribución, se requiere una arquitectura server-side estricta: un contenedor sGTM en Google Cloud Run, mapeo de cabeceras HTTP de cliente, normalización de cookies first-party (_fbp y _fbc) y generación determinística de identificadores event_id para deduplicar eventos en el navegador y en el servidor.
1. Arquitectura del Contenedor sGTM en Google Cloud Run
El despliegue en Google Cloud Run ofrece escalado automático a cero (scale-to-zero) para reducir costes durante periodos de bajo tráfico y concurrencia elástica instantánea ante picos de demanda. El contenedor oficial de Google (`gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable`) se configura con variables de entorno críticas como `CONTAINER_CONFIG` y `RUN_AS_PREVIEW_SERVER`.
# Despliegue del contenedor de Server-Side GTM en Google Cloud Rungcloud run deploy sgtm-production-cluster \--image="gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable" \--region="europe-west1" \--platform="managed" \--allow-unauthenticated \--min-instances=1 \--max-instances=10 \--cpu=1 \--memory=512Mi \--set-env-vars="CONTAINER_CONFIG=aW5pdGlhbF9zdHJpbmdfZGVjb2RlZD09,PORT=8080"
Mapeo de Subdominio First-Party
Es mandatorio asignar un registro DNS tipo A/AAAA o CNAME (ej. metrics.tudominio.com) apuntando al balanceador o servicio de Cloud Run para garantizar que las cabeceras Set-Cookie se emitan en contexto same-site estricto.
2. Algoritmo de Deduplicación mediante event_id y event_name
Meta deduplica eventos cuando recibe la misma tupla (event_name + event_id) desde el navegador (Pixel) y desde el servidor (CAPI) en una ventana de 48 horas. Si el event_id no coincide al milisegundo o no se transmite en ambos canales, Meta contabilizará dos compras en lugar de una.
// Generación determinística de event_id en el cliente y transmisión a sGTMexport function generateDeduplicationPayload(eventName: string, transactionId?: string) {const timestamp = Date.now();const randomEntropy = Math.random().toString(36).substring(2, 9);// Si existe ID de transacción comercial, lo usamos como ancla unívocaconst eventId = transactionId ? `deal_${transactionId}` : `evt_${eventName}_${timestamp}_${randomEntropy}`;// Disparo simultáneo al Pixel Web (navegador)if (typeof window !== 'undefined' && (window as any).fbq) {(window as any).fbq('track', eventName, { transaction_id: transactionId }, { eventID: eventId });}// Transmisión al endpoint server-side (sGTM)return {event_name: eventName,event_id: eventId,timestamp: new Date().toISOString()};}
3. Parámetros Críticos para Alcanzar un Match Score > 8.5
El algoritmo de Meta puntúa la calidad de coincidencia de eventos (Event Match Quality) de 1 a 10. Para superar 8.5 es indispensable enviar cookies de navegador (_fbp y _fbc), dirección IP de cliente (client_user_agent y client_ip_address sin enmascarar) y datos PII cifrados en SHA-256 (email, teléfono, código postal).
| Parámetro CAPI | Tipo / Formato | Origen en sGTM | Impacto en Match Quality |
|---|---|---|---|
| em | String (SHA-256 en minúsculas) | Payload de formulario web hasheado | Crítico (+3.5 puntos) |
| fbp | String (cookie fb.1.xxx) | Cabecera Cookie: _fbp | Crítico (+2.0 puntos) |
| fbc | String (fb.1.xxx.click_id) | Parámetro fbclid capturado en URL | Muy Alto (+2.0 puntos) |
| client_ip_address | String IPv4/IPv6 | Cabecera X-Forwarded-For de Cloud Run | Alto (+1.0 puntos) |
| client_user_agent | String User Agent | Cabecera User-Agent HTTP | Medio (+0.5 puntos) |
4. Monitorización y Pruebas en el Administrador de Eventos
Una vez activado el flujo, verifica en la pestaña "Historial de Eventos" de Meta Business Manager que el porcentaje de deduplicación alcance el 100% y que la latencia media de procesamiento se mantenga por debajo de los 150 milisegundos. Cualquier discrepancia en `event_name` causará la invalidación del evento de servidor.
Controles Técnicos
Muestra telemetría y especificaciones de verificación en producción.