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.
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.
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.
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.
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.
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.
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">
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.
Interactions and drop-off for every field, worst first.
Where the session actually ended, not just which page it ended on.
Genuinely indistinguishable fields are pooled and badged, rather than guessed at.
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 .
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.
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.
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.
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.
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.
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.
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.
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.
One script tag, free for your first site, and the first session usually arrives before you have finished reading this.
Get started free