
Cuando el widget AFRUS está en una landing con GTM, cada acción del donante dispara un Custom Event en el dataLayer. Tus tags GTM pueden reaccionar a ellos sin código adicional.
Crea un trigger de tipo Custom Event → Event Name = nombre exacto del evento (minúsculas, snake_case). Ej: purchase, generate_lead. Importante: Meta es sensible a mayúsculas — Lead ≠ lead.
dataLayer — AFRUS los envía hasheados a Meta CAPI directamentestart, add_to_cart, begin_checkout y add_payment_info no exponen claves de deduplicación en el dataLayer. Solo generate_lead y purchase son deduplicables desde GTM.| Evento | Campo en dataLayer | Qué contiene | Úsalo para |
|---|---|---|---|
| start | goal | Tipo de widget (donation, register) | Segmentación |
| start | pixel_id | Pixel ID configurado en el widget | Informativo |
| add_to_cart | ecommerce.items[0].price | Monto seleccionado | Campo value en tags |
| begin_checkout | ecommerce.items[0].item_category | Frecuencia (once, monthly) | Segmentar tipo de donación |
| add_payment_info | ecommerce.payment_type | Método de pago (card, bank_transfer…) | Analizar abandono |
| generate_lead | ecommerce.lead_id | ID único del lead en AFRUS | eventID en Meta Pixel (deduplicación) |
| purchase | ecommerce.transaction_gateway_code | Referencia única de la pasarela | eventID en Meta Pixel Y transaction_id en GA4 |
| purchase | ecommerce.items[0].price | Monto real donado | Campo value en Meta y GA4 |
| purchase | ecommerce.currency | Moneda (COP, USD…) | Campo currency |
ecommerce.transaction_gateway_code como eventID — no transaction_id (son valores distintos). El dataLayer.push ocurre síncronamente — no necesitas timers en tus tags.| Custom Event | Cuándo | ¿Deduplicable? | Uso recomendado |
|---|---|---|---|
| start | Al cargar el widget | No | Remarketing, heatmaps |
| add_to_cart | Al elegir monto | No | Remarketing de interés |
| generate_lead | Al capturar datos | Sí — lead_id | CRM, email, Lead Ads |
| begin_checkout | Al iniciar pago | No | Remarketing alta intención |
| add_payment_info | Al elegir método | No | Remarketing carrito |
| purchase ★ | Donación confirmada | Sí — transaction_gateway_code | Conversiones en todas las plataformas |
| register (N/D) | Registro completado | — | Usa generate_lead en su lugar |
Configuras Meta y GA4 directamente en el widget. No necesitas GTM para el tracking de conversiones.
Dejas en blanco los campos de Meta y GA4 en el widget. Manejas todo desde tus tags GTM.
lead_id para Lead y transaction_gateway_code para Purchase.Configuras Meta y GA4 en el widget (como A) y también usas GTM para enviar eventos a TikTok, LinkedIn o Google Ads. Para plataformas no integradas, usa triggers purchase y generate_lead.
| Dónde | Qué configurar | Para qué sirve |
|---|---|---|
| Landing → Datos avanzados | Facebook Pixel ID | Captura _fbc cuando viene de un anuncio. Sin esto: atribución Meta degradada. |
| Landing → Datos avanzados | Google Analytics ID | Crea el cookie _ga con el client_id. Hilo que conecta toda la sesión GA4. |
| Widget → Avanzado | Pixel ID + Access Token | AFRUS envía eventos del funnel a Meta CAPI usando el _fbc de la landing. |
| Widget → Avanzado | Measurement ID + API Secret | AFRUS envía eventos a GA4 usando el client_id del _ga de la landing. |
_fbc (atribución Meta degradada) y sin client_id real (GA4 usa ID de respaldo).gtag.js o GTM, agrega web.afrus.org a linker.domains. Sin esto, GA4 trata el paso entre dominios como sesión nueva. Las UTMs no viajan en la URL de la página de agradecimiento — la atribución existe en el cookie _ga, no en la URL.AFRUS envía cada evento desde el servidor y el navegador, y lo publica en el dataLayer. Para que Meta y GA4 cuenten cada conversión solo una vez, usa claves de deduplicación únicas:
| Evento | Clave de deduplicación | Disponible en dataLayer para GTM |
|---|---|---|
| start, add_to_cart, begin_checkout, add_payment_info | UUID por disparo | Solo entre servidor y navegador — no expuesto en dataLayer |
| generate_lead / Lead | lead_id de AFRUS | ✓ Sí — úsalo como eventID en tu tag de Meta Pixel |
| purchase / Purchase ★ | transaction_gateway_code | ✓ Sí — úsalo como eventID en Meta Y como transaction_id en GA4 |
Meta combina todas las señales en una sola conversión gracias al Event ID compartido. Resultado: mejor Event Match Quality, mejor atribución y optimización de campañas.
GA4 solo deduplica eventos purchase con el mismo transaction_id. Para otros eventos, GA4 no tiene deduplicación nativa. Si tienes tags GTM disparando en paralelo, GA4 los contará como distintos.

