> ## Documentation Index
> Fetch the complete documentation index at: https://moengage-doc-2298-s2s-type-case-sensitive.mintlify.site/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 covers the helper APIs for reporting impressions and clicks when you fetch [Offerings](https://www.moengage.com/docs/user-guide/decisioning/offer-decisioning/offerings) through the [MoEngage Personalize REST API](https://www.moengage.com/docs/api/experiences/fetch-experience). Use this page if your app calls the Personalize API directly from your server.

<Info>
  If you are integrating MoEngage Personalize natively from your Android app, use the [Personalize SDK](/developer-guide/android-sdk/personalize/personalize-sdk) instead — it covers both experience and offering tracking through a single helper.
</Info>

# 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](/user-guide/decisioning/new-ui-experience/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>
