🏷️
Cómo usar GTM con los eventos de AFRUS
Triggers, campos disponibles en el dataLayer y limitaciones
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.
🏷️ ¿Cómo crear un trigger en GTM para eventos de AFRUS?
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.
✅ Casos de uso recomendados
- Enviar conversiones a TikTok Ads, LinkedIn, Google Ads
- Activar tu propio tag de GA4 con eventos del funnel
- Píxeles de remarketing en pasos intermedios
- Sincronizar leads con tu CRM o email marketing
- Hotjar, Clarity y otras herramientas de comportamiento
⚠️ GTM + Meta / GA4: cuidado
- Si ya configuraste Meta/GA4 en el widget, no los configures también en GTM o duplicarás los eventos
- Si quieres usar solo GTM, deja en blanco esos campos en el widget
- Los datos personales (email, nombre…) NO se publican en el
dataLayer — AFRUS los envía hasheados a Meta CAPI directamente
⚠️ Limitación conocida: start, 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.
📦 Campos disponibles en el dataLayer por evento
| 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 |
⚠️ Campo crítico para deduplicar Purchase: usa ecommerce.transaction_gateway_code como eventID — no transaction_id (son valores distintos). El dataLayer.push ocurre síncronamente — no necesitas timers en tus tags.
🔧 Referencia de triggers para GTM
| 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 |
⚙️
Configuración por escenario
Qué activar según cómo gestiones tu tracking
Escenario A — AFRUS gestiona todo (recomendado para empezar)
Configuras Meta y GA4 directamente en el widget. No necesitas GTM para el tracking de conversiones.
Escenario B — GTM gestiona Meta y GA4 (control total)
Dejas en blanco los campos de Meta y GA4 en el widget. Manejas todo desde tus tags GTM.
Importante: tus tags deben usar las claves correctas: lead_id para Lead y transaction_gateway_code para Purchase.
Escenario C — AFRUS + GTM para plataformas adicionales (más común)
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.
Landing y widget: roles complementarios
| 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. |
❌ Solo widget, sin landing: AFRUS envía eventos, pero sin _fbc (atribución Meta degradada) y sin client_id real (GA4 usa ID de respaldo).
❌ Solo landing, sin widget: se registra el PageView pero los eventos de conversión (Purchase, Lead) no se envían a Meta ni GA4.
🌐 ¿Dominios distintos? En tu 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.