Skip to main content

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)

EventWhenPayload
SearchThe user runs a queryText, filters, locale, searchLogId (returned in the response)
Product clickClick on a result card or CTAsearchLogId, productId, position
Result impressionResults visible in viewportsearchLogId, list of productIds shown
Voice / imageSearch initiated from voice/image modalSame fields as search + modality flag
Guided cart viewThe user opens a kit / buyers guide / comparisonsearchLogId, 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:

POST/api/plugin/shops/{shopId}/track/conversion

That 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 searchLogId is opaque: it identifies an anonymous search session on Neuroon's side.
  • The neuroon_clicks cookie the widget sets is first-party, Lax, ≤ 4 KB and only contains productId → 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