Analytics & tracking
The widget reports events to the Neuroon backend automatically. Your integration does not emit them — the CDN bundle consumes them when the user interacts with the UI. This page describes what is reported and which single endpoint you call: server-to-server conversion attribution.
What the widget reports (automatic)
| Event | When | Payload |
|---|---|---|
| Search | The user runs a query | Text, filters, locale, searchLogId (returned in the response) |
| Product click | Click on a result card or CTA | searchLogId, productId, position |
| Result impression | Results visible in viewport | searchLogId, list of productIds shown |
| Voice / image | Search initiated from voice/image modal | Same fields as search + modality flag |
| Guided cart view | The user opens a kit / buyers guide / comparison | searchLogId, product ids shown |
All these events travel to the backend using the Widget Token the bundle already has. You don't have to call any endpoint for this to work.
The only endpoint you call: conversion attribution
For Neuroon to attribute the revenue of an order to the search that drove it, your server must call:
/api/plugin/shops/{shopId}/track/conversionThat closes the funnel: click (automatic, via cookie) → conversion (server-to-server, called by you). Without that call, clicks are left without an attributed sale.
Full pattern (cookie neuroon_clicks, searchLogId, cross-origin gateways, Node/.NET/Python/PHP) in Recipe · Conversion tracking.
Why conversion goes server-to-server
Relying only on a JS pixel loses a meaningful share of conversions (adblockers, Safari ITP, strict CSPs, offline service workers). Calling the endpoint from your order-confirmed handler eliminates those vectors and keeps attribution stable. Details in the recipe linked above.
Privacy
- The widget does not send PII (email, name, client IP) in automatic events.
- The
searchLogIdis opaque: it identifies an anonymous search session on Neuroon's side. - The
neuroon_clickscookie the widget sets is first-party,Lax, ≤ 4 KB and only containsproductId → searchLogId. No user information. - If your site has a consent manager (GDPR/CCPA), honor the flags before loading the widget
<script>— the widget cannot be disabled after init.
Further reading
- Recipe · Conversion tracking — end-to-end flow with code.
- API ·
POST /track/conversion— endpoint reference. - Widget events — DOM CustomEvents your host can listen to.