Page views arrive on their own. Track the rest from the browser, your backend or a span you already emit, and see where people stop on the same dashboards as your latency.
In motion
Each step counts the people who reached it inside the conversion window. Switch to drop-off to see who left, how long converting took, and where they went instead.
Three ways in
All three land in one place with the same ids, so a funnel can start in the browser and finish in a webhook handler.
browser
One call next to the click. The event shows up in the session replay beside the requests around it.
MapleBrowser.track("checkout_completed", {
plan: "pro",
seats: 12,
}) span
Two attributes on a span you already emit. No second SDK on the server.
span.setAttributes({
"maple.product_event.name": "plan_started",
"maple.product_event.user_id": user.id,
}) server
NDJSON over HTTP with your ingest key. For mobile apps, cron jobs and webhook handlers.
curl https://ingest.maple.dev/v1/events \
-H "Authorization: Bearer $INGEST_KEY" \
-H "Content-Type: application/x-ndjson" \
-d '{"name":"plan_started","user_id":"u_123"}' What it does
One endpoint, one key. Traces, logs, metrics and sessions, linked from the first request.