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

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 centre of the screen. You can add an image, disable text fields, and buttons and change their colour. 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 colour displayed behind the image and turn on/off the auto-dismiss option for your theme (supported by Batch SDK 1.14).

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, 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.

Understanding In-App Campaigns

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 is an action that will display the In-App message

  3. A message, is always attached to a specific In-App theme.

There are two native triggers you can use in your In-App campaigns:

  • New Session: The message will be displayed the next time users open the app.

  • ASAP: The message will be displayed as soon as the SDK gets the information on the In-App campaign. This may happen when users are reading an article in your app or filling out a form to complete their order.

ℹ️ For example, if you want to create a campaign announcing maintenance on your app, you can specify a starting and ending date to be more precise, and use AS SOON AS POSSIBLE display event.

Any action tracked with Batch in the app, called "events", can be used as custom triggers (e.g. visited_page). You can use the label of the event 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 the SDK starts to display the In-App message. This happens when the app is closed and opened again:

If you picked "ASAP" as a trigger, then the SDK will display the In-App message as soon as it retrieves it from Batch servers. Depending on your users' network, this can take time and the message can be displayed when your users don't want to be bothered:

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. 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?