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

# Offerings Events Tracking

This document outlines the new methods available in the MoEngage Android SDK to report impressions and clicks for Offerings fetched using the [MoEngage Personalize API](https://www.moengage.com/docs/api/experiences/fetch-experience).

# Prerequisites

## SDK version

> You must update your Native Android SDK catalog version to **5.3.1** or higher.

## MoEngage Account Configuration

Ensure your MoEngage workspace is enabled to utilize Offerings. Refer to [this article](https://help.moengage.com/hc/en-us/articles/38661119123732-Offerings) for details on setting up Offerings.

# Reporting Offering Shown events

The SDK provides a helper API to track shown events; please refer to the [API documentation](https://moengage.github.io/android-api-reference/campaigns-core/com.moengage.campaigns.personalize/-mo-e-personalize-helper/offering-shown.html) for more details.

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>
  ```Kotlin Kotlin wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
   MoEPersonalizeHelper.offeringShown(context, offeringContextMap)
  ```

  ```Java Java wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
   MoEPersonalizeHelper.INSTANCE.offeringShown(context, offeringContextMap);
  ```
</CodeGroup>

# Reporting Offering Clicked events

The SDK provides a helper API to track clicked events; refer to the [API documentation](https://moengage.github.io/android-api-reference/campaigns-core/com.moengage.campaigns.personalize/-mo-e-personalize-helper/offering-clicked.html) for more details.

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 as a map.

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>
  ```Kotlin Kotlin wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
   MoEPersonalizeHelper.offeringClicked(context, offeringContextMap, experienceContextMap)
  ```

  ```Java Java wrap theme={"theme":{"light":"github-light","dark":"github-dark"}}
   MoEPersonalizeHelper.INSTANCE.offeringClicked(context, offeringContextMap, experienceContextMap);
  ```
</CodeGroup>
