> ## 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 API on Android.

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://www.moengage.com/docs/user-guide/decisioning/offer-decisioning/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/personalization-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={null}
   MoEPersonalizeHelper.offeringShown(context, offeringContextMap)
  ```

  ```Java Java wrap theme={null}
   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/personalization-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={null}
   MoEPersonalizeHelper.offeringClicked(context, offeringContextMap, experienceContextMap)
  ```

  ```Java Java wrap theme={null}
   MoEPersonalizeHelper.INSTANCE.offeringClicked(context, offeringContextMap, experienceContextMap);
  ```
</CodeGroup>
