> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Offerings events tracking

> Track impression and click events for MoEngage Offerings fetched via the Personalize SDK or API.

This document outlines the new methods available in the MoEngage Personalize SDK to report impressions and clicks for Offerings fetched using the [MoEngage Personalize SDK](/developer-guide/personalize-sdk/sdk-integration/self-handled-personalize-api-experiences) or directly via the [MoEngage Personalize API](https://www.moengage.com/docs/api/personalize-experience/personalize-overview).

# Pre-Requisites

## SDK Integration

<Steps>
  <Step title="Web SDK Integration">
    Refer to [this article](/developer-guide/web-sdk/web-sdk-integration/basic-integration/web-sdk-integration) to integrate the Web SDK on your website.
  </Step>

  <Step title="Personalize SDK Integration">
    Refer to [this article](/developer-guide/personalize-sdk/sdk-integration/web-personalization-v2) to integrate the Personalize SDK on your website.
  </Step>
</Steps>

## MoEngage Account Configuration

Ensure your MoEngage workspace is enabled to utilize Offerings. Refer to [this article](https://www.moengage.com/docs/user-guide/decisioning/offer-decisioning/offerings) for details on setting up Offerings.

# Reporting Offering Shown events

The SDK provides a method to track offering shown events.

Impressions should be reported when an Offering is visually presented to the user.

To report an impression offering, pass the **offeringContext** as a map.

<CodeGroup>
  ```javascript Javascript wrap theme={null}
  <script type="text/javascript">
  Moengage.personalize.offeringShown(offeringContext)
  </script>
  ```
</CodeGroup>

# Reporting Offering Clicked events

The SDK provides a method to track offering clicked events.

Clicked events should be reported when a user clicks on any offering contained in the response of the Personalize API. To report a click event for a single offering, pass the **offeringContext** of the offering.

When a user clicks on an Offering, we understand that they are also implicitly clicking on the parent Experience. You can now optionally pass the experienceContext to the **offeringClicked** function.

### **What this means**

* **If you pass both contexts,** MoEngage will **automatically** track clicks for **both** the Offering and the Experience. You no longer need to make a second, separate call to track the click event for the parent experience.
* **If you only pass the offeringContext,** the **experienceContext** is optional. If you don't pass it, we will only track the click for the Offering. You would then need to track the experience click separately, if required.

  <CodeGroup>
    ```javascript Javascript wrap theme={null}
    <script type="text/javascript">
    Moengage.personalize.offeringClicked(offeringContext,experienceContext)
    </script>
    ```
  </CodeGroup>
