---
title: "Tracking events using Sitecore Discover runtime JS"
slug: "tracking-events-using-sitecore-discover-runtime-js"
abstract: "Describes the process of tracking events using Sitecore Discover runtime JavaScript."
---
# Tracking events using Sitecore Discover runtime JS

> [!note]
> Integration using Sitecore Discover runtime JS is deprecated.
>
> We recommend that you [use the Discover JS SDK](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/integrate-using-discover-sdks.html "Integrate using Discover SDKs") to integrate your website or [the Discover API](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/integrate-using-discover-rest-apis.html "Integrate using Discover REST APIs") for a website or application integration.

If you have integrated using Sitecore Discover runtime JS, all widget events and page view events are streamed to Discover automatically. However, you must still manually send [add to cart](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/add-to-cart-event.md "Add to cart event"), [cart status](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/cart-status-event.md "Cart status event"), [order](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/order-event.md "Order event"), and [user login](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/user-login-event.md "User login event") events using the `rfk.push()` function, which is available through the [Discover beacon](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/using-the-sitecore-discover-beacon.md "Using the Sitecore Discover beacon").

The format to send events using `rfk.push()` is as follows:

```javascript
window.rfk = window.rfk || [];
rfk.push(["trackEvent", {<event object>}, <settings>]);
```

In this code, `"trackEvent"` is a constant string. The [event object](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/the-event-object-model.md "The event object model") consists of key-value pairs representing the event.

> [!tip]
> We recommend that you use the [Event Builder](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/using-the-event-builder.html "Using the Event Builder") to learn or validate your event format, then use [Event Monitor](https://doc.sitecore.com/discover/en/developers/discover-developer-guide/deprecated-integration-methods/integrate-with-discover-runtime-js/using-the-event-monitor.html "Using the Event Monitor") to verify the implementation of your funnel events.

<details>
<summary><h2>Example: Tracking an add to cart event</h2></summary>

When a user adds an item to their cart, you must send an `add to cart` event to Discover using the `rfk.push()` function. The following code sample shows how to send an `add to cart` event that takes place on a product detail page:

```javascript
rfk.push(["trackEvent",
  {
    "value": {        
      "products": [            
        {                
          "sku": "3x112f92d16",                
          "quantity": 1,                
          "price": 9.99,                          
        }        
      ]    
    },    
    "type": "a2c",    
    "name": "pdp"
  }]);
```

</details>