Skip to main content
Seu quiz anuncia o que acontece por meio de eventos do navegador em window. Escute esses eventos para rastrear o comportamento dos visitantes na sua ferramenta de análise, reagir às respostas ou executar seu próprio código no momento certo.
Todo evento coloca seus dados em event.detail. Duas informações estão sempre presentes:
  • quizId: qual quiz disparou o evento
  • llQuizApi: a API do quiz, para que você possa ler ou alterar o quiz direto no listener
O ll-quiz-init é disparado assim que o quiz fica pronto, o que pode acontecer antes de o seu script rodar. Não se preocupe: um listener registrado depois ainda recebe o ll-quiz-init. Todos os outros eventos são disparados por ações do visitante, quando o seu script já está no lugar.

Eventos em resumo

ll-quiz-init

É disparado quando o quiz já está na página e pronto. É aqui que você obtém o llQuizApi, preenche valores previamente ou faz suas configurações.
string
LlQuizApi
A API do quiz para este quiz

ll-quiz-step-view

É disparado sempre que uma etapa é exibida, inclusive a primeira, no carregamento, e quando o visitante volta.
string
string
Field[]
Respostas dadas até o momento. Veja fields e fieldsSimple
object
As mesmas respostas no formato rótulo → valor

ll-quiz-step-leave

É disparado quando o visitante sai de uma etapa, antes do próximo ll-quiz-step-view. Use-o para medir quanto tempo o visitante passou em uma etapa ou para salvar um rascunho.
string

ll-quiz-value-change

É disparado quando uma resposta é confirmada. Os campos de digitação (text, email, phone, number, textarea, date, birth date, zip code, address, OTP) são confirmados quando o visitante sai do campo ou da etapa, então você recebe um evento por resposta, e não um a cada tecla pressionada. Todas as outras entradas, e todos os valores definidos pela API, são confirmados imediatamente.
string
string
O nome do bloco definido no construtor
string
Por exemplo, text-field ou multiple-choice
string
string
string
A nova resposta, no mesmo formato de Field.value
string
A resposta informada da última vez, ou o valor com que o quiz foi carregado
'user' | 'api' | 'system'
user: o visitante. api: o seu script, pela API do quiz. system: o próprio quiz, por exemplo ao limpar as respostas depois do envio
Nada é disparado quando o valor não muda. Os valores que já existem quando o quiz carrega (valores padrão, parâmetros de URL, respostas restauradas) são o ponto de partida e não disparam o evento; eles estão em fields no ll-quiz-step-view.

ll-quiz-input-click

É disparado quando o visitante clica em uma opção de um bloco multiple choice ou image choice. Para o mesmo clique, é disparado antes do ll-quiz-value-change.
string
string
string
string
string
string
O valor da opção, como armazenado na resposta
string
O texto que o visitante viu

ll-quiz-button-click

É disparado quando um bloco Continue, Previous, Submit ou Button é clicado, antes de qualquer validação. Ele é disparado mesmo quando o clique acaba bloqueado, então conta tentativas, e não sucessos.
string
string
string
string
Para saber se o clique realmente levou o visitante adiante, combine-o com o ll-quiz-step-leave (levou) ou com o ll-quiz-validation-error (não levou).

ll-quiz-validation-error

É disparado quando uma tentativa de sair de uma etapa é bloqueada porque algo nela está inválido. Você recebe um evento por tentativa, depois que todas as verificações terminam (incluindo as verificações no servidor dos campos de e-mail, telefone e OTP), com a lista exata dos erros que o visitante vê. Blocos ocultos nunca são incluídos.
string
string
'user' | 'api' | 'system'
user: um botão ou uma opção que navega. api: o seu script (validateStep(), goNext(), goToStep(), submit()). system: o quiz tentou avançar sozinho (loader, countdown, pagamento)
string
O botão ou a opção que iniciou a tentativa; vazio para api
string
Vazio para api
array
Uma entrada por bloco com erro, na ordem da etapa: blockId, blockName, blockType e messages (os textos de erro; o primeiro é o exibido)
Ele não é disparado quando a etapa é válida, quando o botão Previous é usado (ele nunca valida) nem em um clique de escolha que não navega.

ll-quiz-google-address-select

É disparado quando o visitante escolhe uma sugestão em um bloco Google Address.
string
string
string
string
object
street, city, state, stateShort, postalCode, country, countryShort

ll-quiz-submit

É disparado quando o quiz é enviado, depois que o lead é salvo. É o lugar certo para enviar as respostas para outro sistema ou disparar uma conversão.
string
A etapa a partir da qual o visitante enviou o quiz
string
Field[]
Todas as respostas
object
Todas as respostas no formato rótulo → valor
any
A resposta do servidor do LanderLab, ou null quando nenhum lead foi salvo (por exemplo, quando o salvamento de leads está desativado nas configurações do quiz)

ll-quiz-exit

É disparado quando a aba ou a janela é fechada ou quando o visitante sai da página, com base no evento pagehide do navegador.
Os navegadores não garantem esse evento em todos os fechamentos. Use-o para um rastreamento de melhor esforço com navigator.sendBeacon, nunca para algo que precisa acontecer obrigatoriamente.

fields e fieldsSimple

fields é uma lista com uma entrada por bloco respondido:
fieldsSimple traz as mesmas informações em um único objeto, com o rótulo como chave, o que é prático para encaminhar os dados:
Os dois deixam de fora blocos ocultos e respostas vazias. Se dois blocos tiverem o mesmo rótulo, fieldsSimple junta os valores com uma vírgula. A API do quiz retorna os mesmos formatos em getAnswers() e getAnswersSimple().