> For the complete documentation index, see [llms.txt](https://fredhopper.gitbook.io/product-discovery/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fredhopper.gitbook.io/product-discovery/tracking-and-sending-events/setup-guide/prerequisites.md).

# Prerequisites

Steps to set up tracking on your platform: obtain tracker keys, configure identities, choose an implementation method (SDK, GTM, REST API), and ensure accurate data provision for events.

Before tracking user actions on your platform, complete the following steps:

* [Obtain your tracker key](#obtain-your-tracker-key-s).
* [(Optional) Set up identities](#set-up-identities-optional).
* [Choose an implementation method.](#choose-an-implementation-method)
* [Ensure data provision](#ensure-data-provision).

## Obtain your tracker key(s)

A **tracker key** is a unique UUID that dentifies the environment from which activity events are sent. Typically, each environment has its own **tracker key** to enable separate tracking.

{% hint style="info" %}
To obtain your tracker key(s), reach out to your Customer Support Manager.
{% endhint %}

## Set up identities (Optional)

Our system uses **identities** to help you recognize when the same user performs multiple activities.

By default, you must provide a [**session ID**](/product-discovery/tracking-and-sending-events/identities/working-with-identities.md#session-id). However, you can include additional identities for more comprehensive tracking (e.g. an **e-commerce ID**).

{% hint style="info" %}
Session IDs are supported by default. To include additional identities contact the Rezolve AI team.
{% endhint %}

You can find more information in the [**Identities** sections](/product-discovery/tracking-and-sending-events/identities.md).

## Choose an implementation method

We provide three ways to implement tracking on your platform:

* [SDK](/product-discovery/tracking-and-sending-events/implementation-guide/sdk.md)
* [Google Tag Manager](/product-discovery/tracking-and-sending-events/implementation-guide/google-tag-manager.md)
* [REST API](/product-discovery/tracking-and-sending-events/implementation-guide/rest-api.md)

You can find more information in the [**Implementation methods** section](/product-discovery/tracking-and-sending-events/implementation-guide.md).

## Ensure data provision

To accurately track activity events, you must provide the information required for each specific activity event.

### FHR and XO response object

Most required information is available in the [**FHR response object**](/product-discovery/building-the-front-end-experience-with-fhr/understanding-the-fhr-query-response/fredhopper-query-and-response-samples.md) or [**XO response** **object**](/product-discovery/tracking-and-sending-events/activities/activity-object.md#response-object-example-xo) which powers different pages on your platform. The **response ID** from this object will be required as the [**source** **ID**](/product-discovery/tracking-and-sending-events/activities/activity-object.md#source-id) for most events.

Additionally to the response ID, the FHR or XO response object provides the following IDs and values:

* Campaign ID
* Facet ID
* Facet values
* XO widget ID

### Handling multiple responses on a single page

In scenarios where multiple data responses are used to power a single page, it's essential you ensure activities, such as clicks or views, are attributed to the correct response. For example:

* A page might combine XO recommendations with FHR-powered content.
* [Infinite scroll functionality](/product-discovery/tracking-and-sending-events/activities/activity-object.md#handling-infinite-scroll) might display content from multiple response pages on a single page.

Ensure that you m**atch activities to the relevant response.** Activities (e.g., views or clicks) should always reference the response that supplied the content associated with the action.

### Additional data

In addition, you must provide the following information:

* Product IDs
* Page paths
* Search terms
* Product prices (discounts applied)
* Product sell quantity
* [Context or locale](/product-discovery/tracking-and-sending-events/activities/activity-object.md#metadata)

Depending on your use case, you may need to provide the following information:

* Order ID (when multiple products are [purchsed ](/product-discovery/tracking-and-sending-events/activities/purchase.md)at once)
* User [identities ](/product-discovery/tracking-and-sending-events/identities.md)(when using additional identities)

You can find more information in the [**Activities** section](/product-discovery/tracking-and-sending-events/activities.md).
