All Collections
In-App Messaging
How do In-App campaigns work?
How do In-App campaigns work?

Everything you wanted to know about In-App Campaigns but were afraid to ask.

Antoine avatar
Written by Antoine
Updated over a week ago

In-App Campaigns allow you to display messages inside your app. You can trigger them when users open your app or when they perform a specific action (e.g. browsing a page, tapping a button, etc).

In-App messages rely on Batch's technology. We have been working on customizable formats that neatly fit your app design, bring the same experience to all your users and allow you to interact better with them!

Understanding In-App Themes

Before creating your first in-app campaign, you need to set up a theme. There are several In-App formats you can use in an In-App message:

  • Fullscreen: Fullscreen In-App themes can contain text (header, title, body), an image, up to two buttons, and a close button. Use the fullscreen format for all your important messages that deserve to interrupt the navigation (supported by Batch SDK 1.10).

  • Banner: Banners can be displayed on the top or the bottom of the screen. They can be attached to the borders of the device or not. Banners can contain text (title, body), up to two buttons, a close button, and an auto-dismiss timer (10 seconds by default, not modifiable). Use banners to suggest optional actions and avoid bothering them when they are making important actions (supported by Batch SDK 1.11).

  • Modal: The modal format will always be displayed in the center of the screen. You can add an image, disable text fields, and buttons and change their color. You can also set a 10-second timer to auto-dismiss the In-App message (supported by Batch SDK 1.14).

  • Image: Displays a full-screen image or a modal with a close button or an auto-close timer. Editing an image theme is straightforward: Choose the format Batch will use to display your image (fullscreen or modal), the background color displayed behind the image, and turn on/off the auto-dismiss option for your theme (supported by Batch SDK 1.14).

  • WebView: A 100% customizable page.

A theme is a customized version of an In-App format you saved on the dashboard. You can create as many themes as you want to manage all the use cases you have in mind (e.g. dark banner with one button, light banner with buttons and a 10 seconds auto-close option, etc.).

It is possible to filter themes by format. You can also edit them and then the changes are applied to all applications to which the theme is attached. However, the edition is blocked when a running campaign is using this theme. Learn more about how to manage themes in this article πŸ‘ˆ

Understanding In-App Campaigns

Now, let's focus on the in-app campaign itself! You can create a new in-app campaign from the Automations tab.

Creating an In-App Campaign

Now you have created your first theme, you need to create an In-App campaign to display it with a message in your app. An In-App campaign always contains:

  1. Targeting conditions. You can target all your users or a part of your userbase.

  2. A trigger. The action that will display the In-App message

  3. A message. The content of the in-app is always attached to a specific In-App theme.

There is one native trigger you can use in your In-App campaigns: New Session. Using this display event in the campaign will display the in-app message the next time users open the app.

Any action tracked with Batch in the app, called "events", can be used as custom triggers (e.g. visited_page). The label of the chosen event can also be used to make sure the message is displayed when users perform an action in a specific context (e.g. trigger an In-App message when users perform the action "visited_page" with the label "checkout").

You will find more details on the In-App campaign creation here in the documentation: In-App Campaign Edition.

You can then select a priority level between Standard, Important and Critical in order to manage the display of campaigns with an identical trigger event (or label).

You will find more details about the priority feature here in the documentation: How does In-App campaigns' priority work?

Synchronization Workflow

Unlike push notifications, In-App campaigns are not pushed to your users' devices.

Once your In-App campaign is running, Batch servers process it and make it available for the users of your app. Every time users open your app, Batch SDK will start and pull the list of new or updated In-App campaigns. Please note the SDK will only store an In-App campaign if the installation of the user matches the targeting of the campaign.

First session

Batch uses the first session to initialize the SDK and the information on all the running In-App Campaigns.

If you picked "New session" as a trigger event or any other custom event, the SDK will wait until the next time it starts to display the In-App message. This happens when the app is closed and opened again:

Modifying an In-App Campaign

Batch doesn't send live updates to your app when you save changes for an In-App campaign or disable a campaign on the dashboard.

These changes will be detected the next time your users open the app. During that session, the SDK will sync again with Batch servers. The SDK may still display an outdated version of your campaign or an In-App campaign recently disabled. All the changes received from Batch servers will be applied in the next session. This is why we recommend you include an end date in your campaigns or double-check the wording of your campaign before activating it:

In-App Campaigns Analytics

In-App Campaigns Performance

Once your In-App campaign is running, the number of "Devices Synced" will grow, meaning users have opened the app and the SDK successfully retrieved data for your In-App campaigns. The campaign will be displayed as many times as set according to the capping rule defined.

Global In-App Campaigns Export

To further your analysis, you can download the results per campaign or day per day during a given timeslot. From the campaign list of the Automations tab, use filters to show the campaigns you want and click on the Export button.

You can either download one of these two formats:

  • Essentials: Campaign token, source, status, label, campaign name, device synced, display, clicks, 1st button, 2nd button, close.

  • Extended: Start date, end date, smart segments, country, custom audience, languages, targeting applied, trigger event, message, format, button 1 action, button 2 action, global action, tracking id.

You will find more details about your Campaigns Analytics here in the documentation: How to export my Campaigns Analytics?

This article belongs to Batch's FAQ. Need more help? Find insightful articles, documentation, case & market studies, guides, and even more in our website's Resources section on and our blog.

Did this answer your question?