Pre-launch API. The concepts described here are settled, but the API shape is not: request and response fields, parameters and defaults can still change. Build against it, and talk to your Luigi's Box contact before you put an integration into production.
Ranking learns from shopper behaviour: which results were shown, which were clicked, which were bought. Analytics events carry the shopper’s side of that to Luigi’s Box, and they are also what you report on.
The same events serve both:
| Events give you | Events give ranking |
|---|---|
| Search and listing performance reports | The signal that a result worked |
| Top queries, and queries with no results | Which items to recommend together |
| Funnel and conversion metrics | What a returning shopper is interested in |
| Recommender and A/B test results | The training data behind ranking |
Without events, ranking cannot learn from your shoppers and there is nothing to report on.
What you report, and what you don’t
Section titled “What you report, and what you don’t”Luigi’s Box already records what it showed. The results a surface returned — which objects, in which order, for which query — are captured when the discovery request is served. You never send them.
What Luigi’s Box cannot see is what the shopper did next. That is what you report:
| Report | As | Notes |
|---|---|---|
| A click on a result | interaction, interaction_type: "click" | |
| A cart addition | interaction, interaction_type: "add_to_cart" | |
| A completed order | transaction |
See Event reference for the full field lists, and Sending events for how to send them.
The chain that has to hold
Section titled “The chain that has to hold”A shopper journey produces a few events that have to connect to each other:
(recorded for you) a surface returned 24 products for "running shoes"interaction they clicked the third oneinteraction they added it to the carttransaction they bought itTwo things hold that chain together:
| Links | |
|---|---|
| The reference on each event | The event to the catalog object it is about |
A stable X-Lbx-Visitor-Id | Everything one browser does, over time |
Both are yours to set correctly. The reference is what lets Luigi’s Box match the event against the result sets it recorded for that session, so a click is credited to the search that produced it. A reference that resolves to nothing produces an event that joins to nothing.
user_id, when you have one, additionally links a signed-in shopper’s activity across
devices.
See Object references and Attribution.
Consent
Section titled “Consent”Every event carries consent_granted, and discovery requests carry the matching
personalize flag. Read both from the same consent source, so a shopper’s choice applies
consistently to what they see and to what is recorded.
Events are about objects and result sets, not about people. There is no field for a name, an
email address or an address; user_id is your own opaque key and you decide what it
reveals. Do not put personal data in event fields — including in the free-form context
map.
See Personalization.
What you can report on
Section titled “What you can report on”Reporting is available in the Luigi’s Box Control Hub. Every report is scoped to one or more channels, over a date window, with optional segmentation.
| Area | Answers |
|---|---|
| Channel performance | How is each storefront doing, and how does that trend? |
| Search statistics | Volume, click-through rate, exit rate |
| Top queries | What are shoppers looking for most? |
| Queries with no results | What is your catalog failing to answer? |
| Recommender breakdown | Which placements are earning their space? |
| Listing analysis | How do category and listing pages perform against search? |
| Conversion funnel | Where does traffic come from and where does it drop out? |
| Session explorer | What did one shopper’s visit actually look like? |
| Baselines | Is today’s click-through rate normal for this channel? |
Queries with no results lists demand your catalog does not currently meet, ranked by how often it comes up.
Getting the data right
Section titled “Getting the data right”- Report all three. A funnel with clicks and no purchases cannot compute conversion.
- Check your references resolve. An event whose
referencenames no catalog object is recorded and then joins to nothing — see Object references. - Keep the visitor identifier stable. A visitor ID that changes per page load splits one shopper into many visitors.
- Keep
interaction_typevalues stable. Reporting groups on the exact string, so renaming one splits its history in two.
See also
Section titled “See also”- Sending events — the envelope, the calls, the patterns
- Object references — how an event names a catalog object
- Event reference — every event type and field
- Personalization · Discovery overview
Was this page helpful?
Thanks.