Eureka Click Event Guide

Prev Next

Send the product-click event every time:

  • When a user clicks on a product from search results or a listing page.

  • The product field is a single object (not an array).

Event-Level Fields

For the complete list of all fields (including optional ones), where to get each value, refer to Common Properties.

Field

Required

Notes

eventType

Yes

Must be "product-click"

source

No

oneof: search-popup, search-listing, category-listing, brand-listing, other

Defaults to search-listing

userId

No

Unique user identifier. Defaults to "default"

platform

Yes

required, oneof: desktop-web, mobile-web, tablet-web, ios, android, other

integrationType

Yes

One of: api, web, sdk, app

searchSessionId

No

Deprecated. Use product.traceId instead. Bidirectional fallback with product.traceId. No spaces.

product

Yes

Single product object (not an array)

referrer

Yes

Must be a valid URL

createdAt

No

RFC 3339 timestamp. Defaults to the current time if omitted or invalid

campId

No

Campaign identifier. Defaults to 999999

variationId

No

Variation identifier. Defaults to 999999

Refer to Common Properties for further details.

Product Fields

The product field is a single object (not an array):

Field

Required

Notes

id

Yes

Unique product identifier. No spaces

groupCode

No

Product group code. Needed for group-level analytics

price

Yes

Price of the product

convertedPrice

No

Converted price in preferred currency. Defaults to price if not provided

traceId

Yes

Must match the traceId from the originating search/listing event

searchSessionId

No

Deprecated. Use traceId instead. Bidirectional fallback with traceId

query

Conditional

Required when the source is search-popup, search-listing, or other. Must not be blank. Defaults to "default"

listValue

Conditional

Required when the source is category-listing or brand-listing. Must not be blank.

displayPosition

Yes

Position when first displayed. Min: 1

clickPosition

Yes

Position when clicked. Min: 1

currency

Yes

ISO 4217 currency code. No spaces

preferredCurrency

No

Main currency of your site. Defaults to currency if not specified

sorting

No

Sorting method. Defaults to "Relevancy"

resultCount

Yes

Number of search results returned. Min: 1

itemsPerPage

Yes

Number of items per page. Min: 1

totalPages

Yes

Total number of pages. Min: 1

currentPage

Yes

Current page number. Min: 1

facets

No

Applied filters

SessionId

No

Browser/app session identifier

strategyId

No

Optional strategy identifier

quantity

No

Defaults to 1 for click events

isMerchandisedItem

No

Whether the product is a merchandised (promoted/sponsored) item.

Refer to Common Properties for further details.

Source-Dependent Fields

Source

Required Product Field

Description

search-popup, search-listing

product.query

The search query. listValue must not be provided

category-listing, brand-listing

product.listValue

Category/brand hierarchy. The query must not be provided

Refer to Common Properties for further details.

Sending the wrong combination (e.g. query with category-listing) results in a validation error.

Position Fields

Field

Meaning

displayPosition

Where the user first saw the product on the page

clickPosition

Where the product was when the user clicked it.

After sorting or filter changes, the same product may appear in a different position. In this case, displayPosition (original) and clickPosition (at time of click) may differ.

Sample Requests

Click after Search Example

curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \
--header 'x-auth-token: YOUR_AUTH_TOKEN' \
--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \
--header 'Content-Type: application/json' \
--data-raw '{
  "eventType": "product-click",
  "source": "search-listing",
  "userId": "user-123",
  "platform": "desktop-web",
  "searchSessionId": "sess-abc-123",
  "integrationType": "api",
  "referrer": "https://example.com/search?q=queryA",
  "product": {
    "id": "product-001",
    "groupCode": "group-1",
    "query": "queryA",
    "price": 999.99,
    "currency": "USD",
    "displayPosition": 3,
    "clickPosition": 3,
    "resultCount": 25,
    "itemsPerPage": 10,
    "totalPages": 3,
    "currentPage": 1,
    "sorting": "Relevancy",
    "traceId": "sess-abc-123",
    "sessionId": "session-123"
  }
}'

Click after Category Listing Example

curl --location --request POST 'https://eurekaevent.api.useinsider.com/api/v1/events' \
--header 'x-auth-token: YOUR_AUTH_TOKEN' \
--header 'x-partner-config-key: YOUR_PARTNERID-YOUR_LOCALE' \
--header 'Content-Type: application/json' \
--data-raw '{
  "eventType": "product-click",
  "source": "category-listing",
  "userId": "user-123",
  "platform": "desktop-web",
  "searchSessionId": "trace-cat-456",
  "integrationType": "api",
  "referrer": "https://example.com/category/categoryA",
  "product": {
    "id": "product-001",
    "groupCode": "group-1",
    "listValue": "categoryA~categoryB",
    "price": 999.99,
    "currency": "USD",
    "displayPosition": 1,
    "clickPosition": 1,
    "resultCount": 120,
    "sorting": "Relevancy",
    "traceId": "trace-cat-456"
  }
}'