---
title: "Create Native Content Campaigns"
slug: "in-app-native-inline-content"
updated: 2026-06-08T21:06:06Z
published: 2026-06-08T21:06:06Z
canonical: "docs.xtremepush.com/in-app-native-inline-content"
---

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

# Create Native Content Campaigns

> [!NOTE]
> Closed beta
> 
> This feature is currently in closed beta and not available for general use.

This type of [In-app](/documentation/docs/campaign-in-app) campaign can be created by navigating to Campaigns > New campaign > Single-stage > In-app / On-site, selecting the **Native** option from the **Content** campaign tab.

This message type allows a marketer to generate text content which can be passed to a connected app in order to populate pre-built native components.

![1578](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/cc2127f-Screenshot_2022-10-14_at_13.07.03(1).png)

## Basic payload

If a simple set of key-value pairs are all that is required to be passed to the app, then select **JSON parameters** from the **JSON input type** dropdown.

Each click of the **Add Payload** button creates a new key-value pair which can be populated with the required content.

![2264](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/1062a30-Screenshot_2022-10-14_at_14.36.54(1).png)

## Complex payload

Some content may require a more complex nested format. This can be achieved by adding your own custom JSON payload.

Select **JSON Raw** from the **JSON input type** dropdown.

Correctly formatted JSON can now be added to the provided text area.

![1790](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/4699bef-Screenshot_2022-10-14_at_14.41.44(1).png)

## Templated payload

For a little more control over the payload, you can set up a template via **Content > Templates** and select **In-App Message > Native Message > JSON Form**.

The template builder can then use placeholders within the full JSON code where they will allow the campaign creator to set their own values.

For example:

```json
{
  "limits:" {
    "age_restriction": {{field["age-restricted"]}}
  }
}
```

For each placeholder created in the template as shown before, a field will be presented on the right for which the user editing the template can select the field type.

![952](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/81787ab-Screenshot_2022-08-03_at_11.44.36(1).png)

Then the user editing can provide the options that will be available when applying the template to the campaign:

![940](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/3323cc2-Screenshot_2022-08-03_at_11.45.40(1).png)

These fields will then be displayed to the user when they apply this template to the campaign and the values they enter or select will be used in the final JSON sent to the app.

![679](https://cdn.document360.io/b056e88b-f6c1-4bd2-b5b8-08e9336a17c9/Images/Documentation/078cf6d-Screenshot_2022-08-03_at_11.50.40(1).png)

In this example, when creating the template, the field type was 'select' and the options provided Yes or No. Therefore the user building the campaign will need to select one of those two options from the drop-down menu.

## Check the content

The preview area displays the data which will be passed to the app.

## Preload content

More details on how to preload all content for native inline content can be found in the developers' guide under [native inline content messages implementation guide](/documentation/docs/mobile-native-inline-content)

Essentially as a marketer all that needs to be understood is that preloading content on the initial app load (as opposed to loading on each subsequent page visit) requires the following:

- That the JSON contains a key that the app will look for in order to know which page to display this campaign. In the [Complex payload](/documentation/docs/overview) example, the `screen` key is being used by the receiving app to determine which screen/page to display the content on.
- All native inline content campaigns should be set to use the [session start event](/documentation/docs/campaign-events#select-event) to give them the most time to load and be ready for use by the app developer.
