Every body the first-party metrics script sends to metrics.endpoint, and the page markers it reads.
The script sends with navigator.sendBeacon and falls back to fetch with keepalive. Bodies are JSON with the content type text/plain, so a cross-origin request needs no preflight. Measure visits turns it on.
Fields on every body
Field
What it holds
p
the page path, location.pathname
k
the page kind from data-stomme-page, or page
t
the body type: pv, ev, blk or vit
Body types
t
When
Other fields
pv
on load
e: the entry from data-stomme-entry; r: the referrer; u: { s, m }, the utm_source and utm_medium
ev
on a contact intent
d: { type, detail }, see below
blk
when the page is hidden or left
d.items: up to 40 { block, pos, act }, where act is seen (half the block in view) or click
vit
when the page is hidden or left
d: { lcp, cls, inp }, Largest Contentful Paint and Interaction to Next Paint in milliseconds, Cumulative Layout Shift to three decimals
Contact intents
d.type
Sent when
d.detail
tel
a tel: link is clicked
the link
mailto
a mailto: link is clicked
the link
outbound
a link to another host is clicked
that host
form
a form inside an element with the class contact-form is submitted, which the engine's contact blocks have; another form sends nothing