Form analytics

Form analytics that
names the field.

A page funnel tells you people left the checkout. It does not tell you they were in the phone number field when they gave up. Mo does — from one script tag, with nothing to tag.

Why page funnels stop one step short

What a page funnel shows

Six hundred people reached your checkout and two hundred came out the other end. The step is the unit of measurement, so the answer is always the name of a page. You know the checkout is where you are losing money, which you probably suspected already, and you are no closer to knowing what to change. The usual next move is to guess: reorder the fields, soften the copy, ship it, and wait a fortnight to see whether the number moved.

What field-level adds

The field becomes the unit instead. Mo records which fields each visitor touched, in what order, and which one they were in when they stopped — so the checkout stops being one number and becomes a list, ordered by how many people it cost you. When four hundred people abandon on the same field, that is not a hypothesis to test. It is a defect with a name, and it is usually fixable in an afternoon.

No tagging, no naming convention

Most analytics tools can do field-level work if you first tag every field by hand and agree what to call each one. That is the part that never gets done. Mo reads the names already in your markup.

It reads what is there

An element's id, then its name, then a tracking attribute, then its label, placeholder or text — in that order. Fields arrive already named, because your markup already named them.

It tells duplicates apart

Sites repeat the same link in the nav, the body and the footer. Where a derived name occurs more than once, Mo appends the nearest landmark — a_services_in_nav against a_services_in_footer — so clicks on one are never pooled with the other.

You can overrule it

Add mo-data-track="phone-number" to any element and that is the name it reports. Worth doing for the handful of fields you look at weekly; unnecessary for the rest.

<!-- Nothing added. Mo names this "phone" from the name attribute. -->
<input type="tel" name="phone" placeholder="Mobile number">

Every field, ranked by where people leave

The fields table lists every field Mo found on a step, how many people interacted with each, and how many got no further. Sorted so the expensive one is at the top.

  • Ranked by cost

    Interactions and drop-off for every field, worst first.

  • The last field touched

    Where the session actually ended, not just which page it ended on.

  • ×N combined

    Genuinely indistinguishable fields are pooled and badged, rather than guessed at.

  • New fields on their own

    Ship a field today and it appears in tomorrow’s table. Nothing to add.

Running a multi-step quote or enquiry funnel? How Mo handles multi-step forms . Comparing tools? How Mo compares to Zuko .

Built for UK and EU sites

PECR and the ePrivacy Directive, handled in the tracker rather than left to you.

Field-level analytics sounds like the kind of thing that reads what people type. Mo does not. Typed text never leaves the page — what gets recorded is that a field was focused, changed or abandoned, plus which option was chosen on dropdowns, radios and checkboxes (switch that off per field with mo-data-no-values).

The labels Mo reads in order to name a field are redacted in the browser before they are sent, because a label or a selected option can carry user-specific text.

Consent comes first

Under PECR in the UK and the ePrivacy Directive in the EU, analytics storage is not strictly necessary, so it needs consent. Add mo-data-require-consent and Mo reads and writes nothing at all — no storage, no requests — until you grant it.

How to wire it to your banner →

Questions

What is form analytics?

Measurement of how people move through a form field by field — which fields they interact with, which they hesitate on, and which one they were in when they abandoned. It answers a question page-level analytics cannot: not that they left, but where.

How is this different from Google Analytics?

GA reports on pages and on events you have defined in advance. Mo discovers every field on the page by itself and reports on each one, so you do not have to know what to measure before you measure it.

Do I have to tag my form fields?

No. Mo names each field from what is already in your markup — its id, name, label, placeholder or tracking attribute. You can override any name with a mo-data-track attribute if you want a friendlier one.

Does Mo capture what people type?

No. What people type is never sent; for dropdowns, radios and checkboxes Mo records which option was chosen, and site owners can turn that off per field. The labels Mo reads in order to name a field are redacted in the browser before they leave it.

Does it work on multi-step forms?

Yes — that is what it is built for. Steps are picked up from route changes automatically, and you can name them yourself with mo-data-step.

How long does it take to see data?

One script tag, and the first session usually arrives within seconds. There is no tagging pass to complete before the numbers start, and no processing step after: each visit is on your dashboard as soon as the visitor’s browser sends it, every 15 seconds or when they leave a page.

Find out what your forms are costing you.

One script tag, free for your first site, and the first session usually arrives before you have finished reading this.

Get started free