Forms
How the tracker finds your forms, how to name them, and what it leaves out
The tracker records three things for every form on your site, with no code to add: a start (someone typed into a field), a submit (they sent it) and, when you mark it, a success (your site confirmed it). A submit that carries an email or a phone number is also a lead.
Use this page when a form is missing from the Forms report, shows under an unreadable name, or should not be tracked at all.
Name a form
The Forms report lists forms by name. A form the tracker can only identify by the address it posts to or by its position in the page is tracked but hidden, because that label reads poorly and changes when your site does.
| What you add | Example | Notes |
|---|---|---|
data-fv-form | <form data-fv-form="newsletter-signup"> | Wins over everything else. Works on the container of the fields too, when there is no <form> tag (React or Vue apps, embedded widgets) |
id | <form id="newsletter-signup"> | Used when there is no data-fv-form |
A name attribute does not name a form. A new name applies to activity from the
moment it is on your site; earlier activity stays under the old name.
Named for you
| Form | Shows as |
|---|---|
| Shopify's cart drawer and cart page (the checkout button) | Checkout |
| Klaviyo signup forms, embedded or popup | Klaviyo · <form id>, the id Klaviyo shows for the form |
Klaviyo forms send their signups through Klaviyo's own script, so the tracker reads Klaviyo's form events instead of the page: the submit carries the email or phone the visitor gave Klaviyo, and counts as a lead. A form with several steps (an email step, then a phone step) counts once per visit: one start, one submit.
A data-fv-form on one of these forms still wins, if you prefer your own name.
What is not a form
The tracker leaves these out, so they never appear as forms or leads:
- Search boxes. A search is recorded as a search, with the term, not as a form.
- Filters, sorting and pagination: forms that reload the page with new
parameters (
method="get", or no method at all) and have nothing a visitor types into: no email, phone, message or text field. A form with a text field counts, whatever its method. - Pickers without free text: a group of radio buttons, checkboxes or dropdowns, such as product variant swatches.
- Shopify system forms: the country and currency switcher, product options
(
properties[…],options[…], quantity) and the add-to-cart form. Adding to the cart is recorded as an add to cart, with the product, not as a form: the Forms report shows adds in their own Add to cart section, per product, with the page they happened on. - Password fields, hidden fields and payment card fields, which are never read.
Keep a field or a form out
| What you add | Effect |
|---|---|
class="fv-no-track" | Nothing inside the element is captured: no clicks, no form activity |
data-fv-private | Same, as an attribute |
Confirm a success
A submit means the visitor pressed the button; it does not mean your site accepted it. To count confirmed submissions, mark the confirmation:
- add
data-fv-successto the element your site shows after a successful send (the tracker records a success when it becomes visible), or - call
window.fv.formSuccess("newsletter-signup")from your own code, with the form's name.
