> For the complete documentation index, see [llms.txt](https://docs.digia.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digia.tech/digia-engage/user-guides/moengage/inline-carousel.md).

# Inline Carousel

This guide walks you through creating an **Inline Carousel**, connecting it to **MoEngage**, and testing it inside an app slot. Inline campaigns render inside a developer-defined slot in your app layout instead of appearing as an overlay.

Use an Inline Carousel for homepage offers, product discovery cards, feature banners, or merchandising slots.

{% hint style="info" %}
Prefer a quick visual walkthrough first? Watch [Creating Native Inline Content Experiences](https://www.youtube.com/watch?v=Xg8NQnApj00).
{% endhint %}

***

## Before You Start

Make sure you have:

* Access to the correct **Digia Engage project** created with **MoEngage** as the CEP integration.
* Access to the matching **MoEngage project**.
* Your app must already be integrated with Digia Engage and MoEngage. Share the [MoEngage developer integration guide](/digia-engage/developer-guides/moengage.md) with your app team if this setup is not complete yet.
* The audience and trigger event decided in MoEngage.
* A test profile or test segment in MoEngage so you can verify the campaign before launch.
* Your app team must have added a Digia inline slot where the carousel should render.
* The available **slot key** shared by your app team.
* Carousel image URLs and tap actions ready.

{% hint style="info" %}
This guide is written for product managers and marketers. Developer-only setup is linked above so you know what must already be complete before campaign testing.
{% endhint %}

### Slot keys

A **slot key** is the name your app team gives to a place in the app layout where Inline content can render. The slot key in Digia must match the app implementation exactly.

| Slot key          | Where it appears            |
| ----------------- | --------------------------- |
| `home_carousel`   | Homepage hero carousel area |
| `product_offers`  | Product detail offer slot   |
| `checkout_banner` | Checkout reminder banner    |

{% hint style="info" %}
For developer setup details, see the Inline widgets section in the [MoEngage developer integration guide](/digia-engage/developer-guides/moengage.md). After slots are synced, review usable pages and slots in [Component Registry](/digia-engage/user-guides/component-registry.md) before building the campaign.
{% endhint %}

***

## 1. Create an Inline Carousel Campaign

Go to **Campaigns** and choose **New Campaign**. Use a name such as:

```
Homepage Carousel Inline - MoEngage
```

On the **Basics** step, select **Inline** and choose **Carousel** as the widget type.

<figure><img src="/files/3XYWqQmwHxtBYTQUHJDZ" alt="Digia Engage Basics step with Inline and Carousel highlighted"><figcaption><p>Select <strong>Inline</strong> and choose <strong>Carousel</strong> as the widget type.</p></figcaption></figure>

***

## 2. Confirm Setup Values

The **Setup** step shows the campaign key and optional screen targeting. Use **Target screens** only if the carousel should render on specific app screens.

<figure><img src="/files/c3BF7NlgXmyX6SkollY0" alt="Digia Engage Inline Setup step with campaign key and target screens highlighted"><figcaption><p>Confirm the campaign key and decide whether screen targeting is needed.</p></figcaption></figure>

***

## 3. Build the Carousel

On the **Choose UI** step, add carousel items. For each image, paste the image URL and add a tap action only if tapping that image should open a deep link, URL, or another action.

In the **Settings** panel, enter the slot key provided by your app team.

```
home_carousel
```

Keep the default carousel settings unless you need to adjust height, auto-play, interval, infinite scroll, viewport fraction, or indicator dots.

<figure><img src="/files/SRpTJLlycPz9G5tAs641" alt="Digia Engage Inline Carousel builder with carousel items, preview, and slot settings highlighted"><figcaption><p>Add carousel images, check the mobile preview, and set the exact slot key shared by your app team.</p></figcaption></figure>

{% hint style="info" %}
Once the Inline campaign UI is saved, use [Live Testing Campaigns](/digia-engage/user-guides/live-testing.md) to send it to a connected debug device and confirm it renders inside the expected slot before moving into review and MoEngage setup.
{% endhint %}

***

## 4. Review the Inline Campaign

Check the campaign name, type, slot key, number of images, and launch checks. You can save as draft while MoEngage setup is pending, or activate when the carousel is ready.

<figure><img src="/files/CTNnayV3onlRtGwwJVtD" alt="Digia Engage Inline campaign Review step with campaign summary and launch checks highlighted"><figcaption><p>Review the campaign summary and launch checks before saving or activating.</p></figcaption></figure>

Copy the campaign key from the MoEngage setup section.

***

## 5. Create the MoEngage Self-Handled In-App Campaign

Create a MoEngage Self-Handled In-App campaign. MoEngage decides the audience, trigger event, schedule, and priority. Digia decides what renders after the campaign fires. Inline campaigns for MoEngage use the same campaign payload contract as other Digia experiences; the Digia campaign type tells the SDK to render into the matching slot.

<figure><img src="/files/xpmKgUVJIkrVTYSivj6N" alt="MoEngage Target users step for the Homepage Carousel Inline campaign"><figcaption><p>Name the MoEngage campaign, choose platforms, select the trigger, and define the audience.</p></figcaption></figure>

On the content step, switch to **Start from scratch** if MoEngage opens the template gallery first.

<figure><img src="/files/suzOlyHVwN7LI7TCg9eX" alt="MoEngage content template gallery"><figcaption><p>If you land on the template gallery, move to Start from scratch before choosing the content type.</p></figcaption></figure>

Choose **Self-Handled** content so MoEngage can pass the Digia Inline campaign key to the app.

<figure><img src="/files/xwbIRHqxmoPM6jDPTe0C" alt="MoEngage content step with the Self-Handled option"><figcaption><p>Select Self-Handled for the campaign content.</p></figcaption></figure>

***

## 6. Link MoEngage to the Digia Inline Campaign

In MoEngage, go to the campaign data or key-value pairs section and add the Digia payload. Inline campaigns currently require only `digia_campaign_key`.

```json
{
  "digia_campaign_key": "homepage_carousel_inline_moengage"
}
```

Keep the carousel images, slot key, and carousel behavior in Digia. MoEngage should only carry the campaign key.

<figure><img src="/files/Q8GXTasHyhSGHhT2W7jL" alt="MoEngage Self-Handled content editor with Digia Inline campaign key"><figcaption><p>Paste only the Inline campaign key into the MoEngage Self-Handled payload.</p></figcaption></figure>

***

## 7. Test the Inline Campaign End to End

1. Use a test audience in MoEngage.
2. Activate or preview the MoEngage campaign for that audience.
3. Open the app screen that contains the `home_carousel` slot.
4. Trigger the event from a test device.
5. Confirm the carousel appears inside the correct slot.
6. Swipe through all carousel items.
7. Tap any configured item action and confirm it performs the expected action.

<figure><img src="/files/7RHF06Cvn5s96c69BtFA" alt="MoEngage test campaign modal"><figcaption><p>Use MoEngage's test campaign flow to send the Inline campaign to a test user or device.</p></figcaption></figure>

<figure><img src="/files/B2r32fQwJaciUWaMcUmM" alt="MoEngage schedule and goals step"><figcaption><p>Before publishing, confirm schedule, priority, delivery controls, and goals.</p></figcaption></figure>

### If the Inline campaign does not appear, check:

| What to check                                      | Why it matters                                             |
| -------------------------------------------------- | ---------------------------------------------------------- |
| The Digia campaign is active                       | Draft campaigns will not render                            |
| `digia_campaign_key` matches exactly               | The key is case-sensitive                                  |
| The MoEngage campaign uses **Self-Handled In-App** | The Digia plugin only receives the expected payload format |
| The app screen contains the slot                   | Inline content needs a mounted Digia slot                  |
| Slot key matches exactly                           | A typo prevents the carousel from rendering                |

{% hint style="info" %}
MoEngage can sometimes take time to start delivering a newly activated campaign. If the campaign still does not appear after your usual campaign propagation window, reach out to Digia support.
{% endhint %}

***

## Launch Checklist

* Digia Inline campaign is active.
* MoEngage campaign uses **Self-Handled In-App**.
* `digia_campaign_key` matches the Digia campaign key.
* Slot key matches the app team's placement key.
* The slot exists on the screen where MoEngage will trigger the campaign.
* Audience and trigger rules are correct in MoEngage.
* The carousel was tested on at least one real device.
