| fl | form_load — fires on page load (DOM scan) and again when the injected form is appended (MutationObserver) |
| fv | form_visible — fires once when the primary form scrolls into view (≥50% visible) |
| fs | form_start — fires on first field focus; resets after a successful submit |
| ffs | form_field_start — fires per unique field on first focus |
| ffc | form_field_complete — fires on blur if the field has a value |
| fvf | form_validation_fail — fires when required fields are empty on submit (suppresses fsu) |
| fsu | form_submit — fires ~200ms after submit when no validation errors appear |
Step-by-step test flow:
fl for native-contact.fv (once only).fs + ffs.ffc.fsu.fl for native-newsletter.Click the button below. After ~500ms a newsletter form is appended to the DOM, triggering fl for native-newsletter via the adapter's MutationObserver.
collect.dev.remote.listenlayer.com → inspect POST bodies, look for "t":"fl", "t":"fv", etc.plt: nat._ll.debug(true) then interact with the form.t (event type), plt: "nat" (native adapter), fid (form ID), sh (structural hash).