---
title: "Widget item click events"
slug: "widget-item-click-events"
abstract: "Understand widget item click events, which track when a site visitor clicks a Sitecore Search widget item in your app."
---
# Widget item click events

The widget item click event tracks when the site visitor clicks a search result in your app. Tracking which results get clicked helps improve search recommendations by, for example, displaying recently viewed or popular products to the site visitor.

You can send widget item click events by using the [`widgetItemClick`](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-search/cloud-sdk-search-browser/functions/cloud-sdk-search-browser-widgetitemclick.html "widgetItemClick") function and passing it the [widget item click event data object](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-reference/cloud-sdk-search/cloud-sdk-search-browser/interfaces/cloud-sdk-search-widgetitemclickeventparams.html "WidgetItemClickEventParams").

## The widget item click event data object

The widget item click event data object represents all the required and optional data about the event.

This is the object where [you provide data about the event](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-concepts/concepts-tracking/events/sitecore-search-events/events.html#UUID-b78ff86e-4442-71e7-edc6-81adf8fabe27_section-idm46246153457504340509825241 "The data in the events"). All this data is sent to Sitecore Search, so make sure to provide the correct data depending on your organization's requirements. Construct the object in the following way:

- Provide the ID of the widget[^UUID-101b62f6-b640-ed11-1057-29646ebb9fb7_N67248fcfc8b58] that was clicked, data about the index document that was clicked, and the URI where the event triggered.
- Optionally, you can provide data such as the channel and the language of the page where the event triggered.

## Examples

> [!tip]
> During development, use your web browser's developer tools to [check the payload](https://doc.sitecore.com/sdk/en/developers/005/cloud-sdk/cloud-sdk-concepts/concepts-tracking/events/sitecore-search-events/events.html#UUID-b78ff86e-4442-71e7-edc6-81adf8fabe27_section-idm234451877631545 "Checking the payload") containing all the event data that is sent to Sitecore.

Example 10. Sending a widget item click event

Here's an example event data object for a widget item click event. The object contains all the required and some optional event data. You can send this event by passing the object to the `widgetItemClick` function:

::::tabs
:::tab{title="Browser module"}

```typescript
import { widgetItemClick } from "@sitecore-cloudsdk/search/browser";
import type { WidgetItemClickEventParams } from "@sitecore-cloudsdk/search/browser";

const eventParams: WidgetItemClickEventParams = {
  entity: {
    entity: "product",
    id: "1"
  },
  pathname: "/page",
  widgetId: "rfkid_7",
  itemPosition: 1,
  request: {
    keyword: "green",
    numResults: 3,
    totalResults: 3,
    numRequested: 10
  },
  page: "sample-page"
};

widgetItemClick(eventParams);
```

:::
:::tab{title="Server module"}

```typescript
import type { NextRequest } from "next/server";
import { NextResponse } from "next/server";
import { CloudSDK } from "@sitecore-cloudsdk/core/server";
import { widgetItemClick } from "@sitecore-cloudsdk/search/server";
import type { WidgetItemClickEventParams } from "@sitecore-cloudsdk/search/server";

export default async function middleware(request: NextRequest) {
  const response = NextResponse.next();

  // Initialize the SDK and the package...

  // Send event:
  const eventData: WidgetItemClickEventParams = {
    entity: {
      entity: "product",
      id: "1"
    },
    pathname: "/page",
    widgetId: "rfkid_7",
    itemPosition: 1,
    request: {
      keyword: "green",
      numResults: 3,
      totalResults: 3,
      numRequested: 10
    },
    page: "sample-page"
  };

  const widgetItemClickResponse = await widgetItemClick(request, eventData);
  console.log("Sent widget item click event.", widgetItemClickResponse);

  return response;
};
```

:::
::::

For this widget item click event data object, the following payload is sent to Sitecore:

```json
{
  "browser_id": "a38b230c-11eb-4cf9-8d5d-274e9f344925​",
  "client_key": "",
  "language": "EN",
  "page": "sample-page",
  "pos": "",
  "requested_at": "2026-01-13T11:`31:03`.467Z",
  "sc_search": {
    "data": {
      "action_cause": "entity",
      "value": {
        "context": {
          "page": {
            "uri": "/page"
          }
        },
        "entities": [
          {
            "entity_type": "product",
            "id": "810565084"
          }
        ],
        "index": 1,
        "request": {
          "keyword": "green",
          "num_requested": 10,
          "num_results": 3,
          "total_results": 3
        },
        "rfk_id": "rfkid_7"
      }
    },
    "metadata": {
      "ut_api_version": "1.0"
    }
  },
  "type": "SC_SEARCH_WIDGET_CLICK"
}
```

[^UUID-101b62f6-b640-ed11-1057-29646ebb9fb7_N67248fcfc8b58]: A *widget ID*, also known as the RFK ID, is a unique identifier assigned to every widget in Sitecore Search. Cloud SDK developers use the widget ID when requesting widget data and when capturing *events* that occur in a specific widget.
