Inicio Seguimiento Cómo rastrear eventos de Yay! Forms con Google Tag Manager en formularios embebidos

Cómo rastrear eventos de Yay! Forms con Google Tag Manager en formularios embebidos

Última actualización el May 06, 2026

Este tutorial es para ti que "embebiste" un formulario en tu sitio y ahora necesitas capturar eventos disparados en el formulario a través de Google Tag Manager (GTM) que está en tu sitio.

Usa formularios incrustados ("embebidos") de Yay! Forms para la participación del público y la generación de leads. Puedes rastrear fácilmente visualizaciones de formularios, inicios, respuestas y envíos como conversiones e interacciones usando Google Tag Manager (GTM) y este código de listener de eventos de Yay! Forms.

Ejemplo de Objeto para el Data Layer de GTM

Aquí tienes un ejemplo de un objeto enviado al dataLayer de GTM cuando se responde una pregunta:

{
  "event": "YFAnswer",
  "gtm": {
    "uniqueEventId": 1026,
    "start": 1718243777463
  },
  "data": {
    "responseId": "666a4f5ad3d586edd79fee54",
    "fieldId": "661071840811e305370cadb7",
    "fieldTitle": "<p>Nome</p>",
    "content": "Rafael",
    "variables": {score: 6},
    "hiddenFields": {src: "lp01"},
    "tracking": {
      utm_source: "facebook",
      utm_medium: "cpc",
      utm_campaign: "summer_sale",
      utm_content: "beachwear",
      utm_term: "ad1"
    },
    "questionList": [
      {
        "fieldId": "661071840811e305370cadb7",
        "fieldTitle": "<p>Nome</p>",
        "content": "Rafael"
      },
      {
        "fieldId": "661071860811e305370cadb8",
        "fieldTitle": "<p>Email</p>",
        "content": "[email protected]"
      },
      {
        "fieldId": "661071860811e305370cadb9",
        "fieldTitle": "<p>Telefone</p>",
        "content": "+5511988888888"
      }
    ]
  }
}

Guía Paso a Paso

Paso 1: Crea una etiqueta de HTML personalizado en GTM

Comienza creando una etiqueta de HTML personalizado en GTM donde puedas pegar cómodamente el código del listener. Esta etiqueta escuchará los eventos del iframe de Yay! Forms y los enviará al dataLayer en la página principal.

Paso 2: Implementa el Código del Listener de Eventos

Pega el siguiente código del listener de eventos en la etiqueta de HTML personalizado que creaste:

<script>
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";

eventer(messageEvent, function(e) {
  var key = e.message ? "message" : "data";
  var data = e[key];
  var validEventTypes = ["YFView", "YFStart", "YFAnswer", "YFSubmit"];

if (validEventTypes.includes(data.type)) {
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      'event': data.type,
      'data': data.eventData
    });
  }
}, false);
</script>

Este código escucha mensajes del iframe de Yay! Forms y envía los eventos relevantes al dataLayer .

Paso 3: Configura Variables del Data Layer

Para capturar detalles del formulario como ID de la respuesta, ID del campo, título del campo, contenido y lista de preguntas, necesitas configurar variables del dataLayer en GTM.

  1. Ve a Variables en GTM: En tu espacio de trabajo de GTM, navega a la sección "Variables".
  2. Haz clic en Nuevo: Haz clic en el botón "Nuevo" para crear una nueva variable.
  3. Elige el Tipo de Variable del Data Layer: Selecciona "Variable del Data Layer" como el tipo de variable.
  4. Configura Cada Variable: Crea las siguientes variables con sus respectivos Nombres de Variable del Data Layer:

Nombre de la variable | Nombre de la Variable del Data Layer | ---- | responseId | data.responseId | fieldId | data.fieldId | fieldTitle | data.fieldTitle | content | data.content | questionList | data.questionList |

Paso 4: Configura Variables Personalizadas Usando JavaScript Personalizado

Para capturar datos específicos del usuario, como nombre, email y teléfono, usa variables JavaScript personalizadas que iteran sobre el array questionList para encontrar los valores correctos.

Ejemplo de código JavaScript personalizado:

function() {
  var questionList = {{questionList}};
  var filtered = questionList.filter(function(question) {
    return question.fieldId === '**id_do_campo**';
  });
  return filtered.length > 0 ? filtered[0].content : '';
}

☝️ Puedes encontrar el ID de una pregunta en la pantalla de edición del formulario accediendo a la configuración del propio campo. Solo selecciona el campo deseado y localiza el ID en la sección de configuración, tal como se muestra en la imagen de abajo.

ID da questão

Configuración Detallada en GTM

  1. Crea una Variable del Data Layer para questionList :
  • Nombre de la Variable: questionList
  • Nombre de la Variable del Data Layer: data.questionList
  1. Ve a Variables en GTM: En tu espacio de trabajo de GTM, navega a la sección "Variables".
  2. Haz clic en Nuevo: Haz clic en el botón "Nuevo" para crear una nueva variable.
  3. Elige el Tipo de Variable: Selecciona "JavaScript Personalizada".
  4. Configura la Variable JavaScript Personalizada para Cada Campo. Observa los ejemplos abajo:

Variable nome :

  • Nombre de la Variable: nome
  • Tipo de Variable: JavaScript Personalizada
  • Código de la Variable:
function() {
  var questionList = {{questionList}};
  var filtered = questionList.filter(function(question) {
    return question.fieldId === '661071860811e305370cadb7';
  });
  return filtered.length > 0 ? filtered[0].content : '';
}

Variable email :

  • Nombre de la Variable: email
  • Tipo de Variable: JavaScript Personalizada
  • Código de la Variable:
function() {
  var questionList = {{questionList}};
  var filtered = questionList.filter(function(question) {
    return question.fieldId === '661071860811e305370cadb8';
  });
  return filtered.length > 0 ? filtered[0].content : '';
}

Variable telefone :

  • Nombre de la Variable: telefone
  • Tipo de Variable: JavaScript Personalizada
  • Código de la Variable:
function() {
  var questionList = {{questionList}};
  var filtered = questionList.filter(function(question) {
    return question.fieldId === '661071860811e305370cadb9';
  });
  return filtered.length > 0 ? filtered[0].content : '';
}

☝️ Asegúrate de usar el ID del Campo correspondiente en el Código Javascript.

Paso 5: Crea Disparadores de Eventos Personalizados

Para permitir el disparo de tus etiquetas/píxeles de marketing, necesitas crear disparadores de eventos personalizados usando los nombres de los eventos:

  • YFView: Para cuando se visualiza el formulario.
  • YFStart: Para cuando se inicia el formulario.
  • YFAnswer: Para cuando se responde una pregunta.
  • YFSubmit: Para envíos exitosos del formulario.
  1. Ve a Disparadores en GTM:En tu espacio de trabajo de GTM, navega a la sección "Disparadores".
  2. Haz clic en Nuevo: Haz clic en el botón "Nuevo" para crear un nuevo disparador.
  3. Elige el Tipo de Disparador: Selecciona "Evento Personalizado" como el tipo de disparador.
  4. Configura Cada Disparador: Crea los siguientes disparadores con sus respectivos nombres de eventos:

Nombre del Disparador | Nombre del Evento | ---- | YFStart | YFStart | YFView | YFView | YFAnswer | YFAnswer | YFSubmit | YFSubmit |

Paso 6: Incluye Disparadores y Parámetros en Tus Etiquetas de Evento

Ahora puedes incluir disparadores y parámetros en tus etiquetas de evento para Google Analytics 4 (GA4) y Meta Pixel.

Ejemplo para Google Analytics 4 (GA4)
Crea una nueva etiqueta: Elige "Configuración de la Etiqueta" > "Google Analytics: Evento de GA4".

Configura los parámetros del evento:
Nombre del Evento: {{event}}
Parámetros del Evento:

  • response_id: {{responseId}}
  • nombre: {{nome}}
  • email: {{email}}
  • teléfono: {{telefone}}

Añade un disparador: Selecciona los disparadores de evento personalizados que creaste para YFView, YFStart, YFAnswer y YFSubmit.

Ejemplo para Meta Pixel

  1. Crea una nueva etiqueta: Elige "Configuración de la Etiqueta" > "HTML Personalizado".
  2. Pega el código del evento de Meta Pixel:
<script>
fbq('trackCustom', '{{event}}', {
  response_id: '{{responseId}}',
  nombre: '{{nome}}',
  email: '{{email}}',
  teléfono: '{{telefone}}'
});
</script>
  1. Añade un disparador: Selecciona los disparadores de evento personalizados que creaste para YFView, YFStart, YFAnswer y YFSubmit. Recomendamos usar el evento YFAnswer ya que no siempre el usuario va a completar el formulario.

☝️ Asegúrate de que la variable questionList esté configurada correctamente para acceder al array completo en el dataLayer .

Conclusión

Siguiendo estos pasos, puedes rastrear eficazmente visualizaciones, inicios, respuestas y envíos de Yay! Forms usando Google Tag Manager. Esta configuración te ayudará a obtener insights más profundos sobre la participación de los usuarios y mejorar tus estrategias de marketing. Asegúrate de probar cada disparador de evento para confirmar que los eventos se están capturando correctamente y que los datos se están enviando al dataLayer según lo esperado.

Si encuentras algún problema, verifica la configuración de tu etiqueta de HTML personalizado, variables del dataLayer y disparadores en GTM. ¡Buenos análisis!