Skip to main content
Tu quiz anuncia lo que ocurre mediante eventos del navegador en window. Escúchalos para medir el comportamiento en tu herramienta de analítica, reaccionar a las respuestas o ejecutar tu propio código en el momento adecuado.
Cada evento guarda sus datos en event.detail. Siempre hay dos cosas:
  • quizId: qué quiz ha disparado el evento
  • llQuizApi: la Quiz API, para que puedas leer o modificar el quiz directamente en el listener
ll-quiz-init se dispara en cuanto el quiz está listo, lo que puede ocurrir antes de que se ejecute tu script. No te preocupes: un listener registrado tarde también recibe ll-quiz-init. Todos los demás eventos se disparan con acciones del visitante, cuando tu script ya está cargado.

Eventos de un vistazo

ll-quiz-init

Se dispara una vez, cuando el quiz está en la página y listo. Aquí es donde obtienes llQuizApi, rellenas valores o preparas lo que necesites.
string
LlQuizApi
La Quiz API de este quiz

ll-quiz-step-view

Se dispara cada vez que se muestra un paso, incluido el primero al cargar y cuando el visitante vuelve atrás.
string
string
Field[]
Respuestas dadas hasta el momento, consulta fields y fieldsSimple
object
Las mismas respuestas como etiqueta → valor

ll-quiz-step-leave

Se dispara cuando el visitante sale de un paso, antes del siguiente ll-quiz-step-view. Úsalo para medir cuánto tiempo ha tardado en un paso o para guardar un borrador.
string

ll-quiz-value-change

Se dispara cuando se confirma una respuesta. Los campos de escritura (texto, email, teléfono, número, área de texto, fecha, fecha de nacimiento, código postal, dirección, OTP) se confirman cuando el visitante sale del campo o del paso, así que recibes un evento por respuesta, no uno por cada tecla. Cualquier otro campo, y cualquier valor establecido mediante la API, se confirma al instante.
string
string
El nombre del bloque en el editor
string
Por ejemplo text-field o multiple-choice
string
string
string
La nueva respuesta, en el mismo formato que Field.value
string
La respuesta notificada la última vez, o el valor con el que se cargó el quiz
'user' | 'api' | 'system'
user: el visitante. api: tu script mediante la Quiz API. system: el propio quiz, por ejemplo al borrar las respuestas después del envío
No se dispara nada si el valor no ha cambiado. Los valores que ya existen cuando se carga el quiz (valores por defecto, parámetros de URL, respuestas restauradas) son el punto de partida y no disparan el evento; están en fields en ll-quiz-step-view.

ll-quiz-input-click

Se dispara cuando el visitante hace clic en una opción de un bloque de opción múltiple o de elección con imágenes. Se dispara antes que ll-quiz-value-change para el mismo clic.
string
string
string
string
string
string
El valor de la opción, tal como se guarda en la respuesta
string
El texto que vio el visitante

ll-quiz-button-click

Se dispara cuando se hace clic en un bloque Continue, Previous, Submit o Button, antes de cualquier validación. Se dispara incluso cuando el clic acaba bloqueado, así que cuenta intentos, no éxitos.
string
string
string
string
Para saber si el clic hizo avanzar realmente al visitante, combínalo con ll-quiz-step-leave (sí avanzó) o con ll-quiz-validation-error (no avanzó).

ll-quiz-validation-error

Se dispara cuando se bloquea un intento de salir de un paso porque algo en él no es válido. Recibes un evento por intento, cuando han terminado todas las comprobaciones (incluidas las del servidor para los campos de email, teléfono y OTP), con exactamente los errores que ve el visitante. Los bloques ocultos nunca se incluyen.
string
string
'user' | 'api' | 'system'
user: un botón o una opción que navega. api: tu script (validateStep(), goNext(), goToStep(), submit()). system: el quiz intentó avanzar por sí solo (loader, cuenta atrás, pago)
string
El botón o la opción que lo inició; vacío para api
string
Vacío para api
array
Una entrada por cada bloque que falla, en el orden del paso: blockId, blockName, blockType y messages (los textos que se muestran; se enseña el primero)
No se dispara cuando el paso es válido, cuando se usa el botón Previous (nunca valida) ni cuando se hace clic en una opción que no navega.

ll-quiz-google-address-select

Se dispara cuando el visitante elige una sugerencia en un bloque Google Address.
string
string
string
string
object
street, city, state, stateShort, postalCode, country, countryShort

ll-quiz-submit

Se dispara cuando se ha enviado el quiz, después de guardar el lead. Es el lugar para enviar las respuestas a otro sitio o disparar una conversión.
string
El paso desde el que el visitante hizo el envío
string
Field[]
Todas las respuestas
object
Todas las respuestas como etiqueta → valor
any
Lo que respondió el servidor de LanderLab, o null si no se guardó ningún lead (por ejemplo, si el guardado de leads está desactivado en los ajustes del quiz)

ll-quiz-exit

Se dispara cuando se cierra la pestaña o la ventana, o cuando se navega fuera de ella, a partir del evento pagehide del navegador.
Los navegadores no garantizan este evento en todos los cierres. Úsalo para un seguimiento aproximado con navigator.sendBeacon, nunca para algo que tenga que ocurrir sí o sí.

fields and fieldsSimple

fields es una lista con una entrada por cada bloque respondido:
fieldsSimple es la misma información en un único objeto cuyas claves son las etiquetas, muy práctico para reenviarla:
Ambos excluyen los bloques ocultos y las respuestas vacías. Si dos bloques comparten etiqueta, fieldsSimple une sus valores con una coma. La Quiz API devuelve las mismas estructuras desde getAnswers() y getAnswersSimple().