Skip to main content
Ваш квиз сообщает о происходящем через события браузера на window. Подписывайтесь на них, чтобы отслеживать поведение в аналитике, реагировать на ответы или запускать собственный код в нужный момент.
Каждое событие передаёт данные в event.detail. Всегда доступны два поля:
  • quizId — какой квиз вызвал событие
  • llQuizApi — Quiz API, с помощью которого прямо в обработчике можно читать или менять квиз
ll-quiz-init срабатывает, как только квиз готов, — это может произойти раньше, чем выполнится ваш скрипт. Не переживайте: обработчик, зарегистрированный позже, всё равно получит ll-quiz-init. Все остальные события срабатывают по действиям посетителя, когда ваш скрипт уже на месте.

События кратко

ll-quiz-init

Срабатывает один раз, когда квиз появился на странице и готов к работе. Здесь удобно получить llQuizApi, предзаполнить значения или выполнить начальную настройку.
string
LlQuizApi
Quiz API для этого квиза

ll-quiz-step-view

Срабатывает каждый раз, когда показывается шаг, включая первый шаг при загрузке и возврат посетителя назад.
string
string
Field[]
Ответы, данные к этому моменту, см. раздел «fields и fieldsSimple» ниже
object
Те же ответы в формате «метка → значение»

ll-quiz-step-leave

Срабатывает, когда посетитель уходит с шага, до следующего ll-quiz-step-view. Используйте его, чтобы измерить, сколько времени занял шаг, или сохранить черновик.
string

ll-quiz-value-change

Срабатывает, когда ответ зафиксирован. Поля с вводом (текст, email, телефон, число, textarea, дата, дата рождения, почтовый индекс, адрес, OTP) фиксируются, когда посетитель покидает поле или шаг, поэтому вы получаете одно событие на ответ, а не на каждое нажатие клавиши. Все остальные поля и любое значение, заданное через API, фиксируются сразу.
string
string
Имя блока из конструктора
string
Например, text-field или multiple-choice
string
string
string
Новый ответ в том же формате, что и Field.value
string
Ответ, о котором сообщалось в прошлый раз, или значение, с которым загрузился квиз
'user' | 'api' | 'system'
user — посетитель. api — ваш скрипт через Quiz API. system — сам квиз, например очистка ответов после отправки
Если значение не изменилось, событие не срабатывает. Значения, которые уже есть при загрузке квиза (значения по умолчанию, параметры URL, восстановленные ответы), считаются исходной точкой и событие не вызывают; они находятся в fields события ll-quiz-step-view.

ll-quiz-input-click

Срабатывает, когда посетитель нажимает вариант в блоке multiple choice или image choice. Срабатывает раньше ll-quiz-value-change для того же клика.
string
string
string
string
string
string
Значение варианта, как оно хранится в ответе
string
Текст, который видел посетитель

ll-quiz-button-click

Срабатывает при нажатии на блок Continue, Previous, Submit или Button — до любой валидации. Срабатывает, даже если клик в итоге заблокирован, поэтому считает попытки, а не успешные переходы.
string
string
string
string
Чтобы понять, продвинул ли клик посетителя дальше, сочетайте событие с ll-quiz-step-leave (продвинул) или ll-quiz-validation-error (не продвинул).

ll-quiz-validation-error

Срабатывает, когда попытка покинуть шаг заблокирована, потому что что-то на нём невалидно. Вы получаете одно событие на попытку — после завершения всех проверок (включая серверные проверки полей email, телефона и OTP) — со списком ровно тех ошибок, которые видит посетитель. Скрытые блоки никогда не включаются.
string
string
'user' | 'api' | 'system'
user — кнопка или вариант с переходом. api — ваш скрипт (validateStep(), goNext(), goToStep(), submit()). system — квиз сам попытался перейти дальше (loader, countdown, оплата)
string
Кнопка или вариант, запустившие переход; для api пусто
string
Для api пусто
array
Одна запись на каждый непрошедший блок в порядке следования на шаге: blockId, blockName, blockType и messages (показанные тексты; отображается первый)
Событие не срабатывает, если шаг валиден, если использована кнопка Previous (она никогда не валидирует) и если клик по варианту не приводит к переходу.

ll-quiz-google-address-select

Срабатывает, когда посетитель выбирает подсказку в блоке Google Address.
string
string
string
string
object
street, city, state, stateShort, postalCode, country, countryShort

ll-quiz-submit

Срабатывает, когда квиз отправлен, — после сохранения лида. Это подходящее место, чтобы отправить ответы в другую систему или запустить конверсию.
string
Шаг, с которого посетитель отправил квиз
string
Field[]
Все ответы
object
Все ответы в формате «метка → значение»
any
Ответ сервера LanderLab или null, если лид не сохранялся (например, сохранение лидов отключено в настройках квиза)

ll-quiz-exit

Срабатывает, когда вкладка или окно закрыты либо посетитель ушёл со страницы; основано на событии браузера pagehide.
Браузеры не гарантируют это событие при каждом закрытии. Используйте его для отслеживания по принципу «по возможности» с помощью navigator.sendBeacon и никогда — для действий, которые обязательно должны выполниться.

fields и fieldsSimple

fields — это список, в котором по одной записи на каждый блок с ответом:
fieldsSimple — та же информация в виде одного объекта с ключами-метками, удобная для пересылки:
Оба варианта не включают скрытые блоки и пустые ответы. Если у двух блоков одинаковая метка, fieldsSimple объединяет их значения через запятую. Quiz API возвращает те же структуры из getAnswers() и getAnswersSimple().