Campaign Edition

Start by clicking the New Campaign button from the In-App tab on Batch's dashboard.

In order to create your first In-App campaign, you will need to create a theme from the dashboard settings.

Labels & targeting


Exactly like push campaigns, you are able to add labels to your In-App campaigns via the Associate Labels button. You can reuse an existing label or create new one. You will be able to filter your campaigns from the campaign list based on the label you choose here.

The targeting process is exactly the same for In-App campaigns as it is for push campaigns. See here for more information.

The capping rules that you may have set on labels in Settings > Capping only apply to Push campaigns.

Synchronization workflow

Though the targeting interface is similar, In-App and push campaigns work differently. When the app is launched, the SDK automatically retrieves from Batch's servers the list of campaigns available at that moment.


This implies that every events and attribute that have been collected during the current session won't be taken into account for the targeting of an In-App campaign until the next session.

For instance, if you set the targeting to a count of events, then the user's own count has to match the targeting criteria at the app launch rather than during the session in order to display the In-App campaign.

Potential reach

Unlike a push campaign, Batch doesn't need any push token to display an In-App message to your users. As a consequence, the estimate will display the number of targeted installs.

Trigger condition

In-App campaigns will appear on your users’ screen according to a specific trigger. This is especially useful to show the message to your user at the right moment.

For example, you can choose to display an In-App promoting a discount when a user is on the adequate category page. You could also invite a user to get a premium account after they read a certain category of article if you have a news app.

Here is how it looks: InAppTrigger

Choosing a trigger

You can use a session start or any event that have been tagged during the integration of the SDK. You can be even more specific by choosing an event label.


If you don’t select any labels, Batch will trigger the message on every trigger of the selected event.

Setting a capping and grace period


The capping allows you to limit the maximum number of times an In-App campaign will be displayed to a user. This is useful to avoid overwhelming your users with the same message.

The grace period allows you to set a delay between each display of the same In-App message. This feature is quite handy to avoid your user to see the same message multiple times in a single session.

Setting a start/end time


This section lets you program your In-App campaign. You can schedule the start and the end date of your campaign based on global time or local time.

We highly advise you set an ending date. In-App campaigns are functional even in the absence of connectivity, so setting an ending date will prevent the campaigns to be displayed for disconnected users after you manually disable it from the dashboard.

Message edition


A few words on the message edition interface:

  • First of all, notice that you can create translations if you are targeting several languages. Just click the [ + ] button in the top left corner.
  • You can select your theme in the top bar of the message edition section. Every text field that you have enabled during theme creation is now editable.
  • You can use any PNG or JPG image wider than 640px in your In-App message, preferably in a portrait format with a few pixel wide margin on the side if there is text in it. Don't exceed 2MB to be sure the image will load up quickly including with poor connectivity.
  • Finally, try to be creative with your image by using a gradient or transparency, a nicely set up image will often improve your campaign performance.

Editing buttons

Button edition

There a three type of buttons or CTAs available for your buttons :

  1. Dismiss: which will simply make the In-App disappear,
  2. Deeplink: this option allows you to add a custom deeplink to your app or any website in your campaign,
  3. Custom: If you have implemented a Custom Action (iOS/Android), you can add it to your button here with a custom payload if necessary.

You can also use a native action of the SDK to manage reoptinisation campaigns, open url in an In-App browser, and more (see more here: iOS / Android).

Enabling your In-App campaign


The editor interface gives you a quick recap of your campaign.

If you're not ready to send it yet, be advised that you can save it as a draft for now and send it later. If everything's alright, then just hit the Save & Run button.


Are you not seeing your In-App campaign while you fit the targeting? Here's a couple possible reasons:

  • Splash screen: If it's your first implementation, be advised that if there is a splash screen in your app, Mobile Landings and In-Apps triggered at session opening might not work (or will be dismissed just after the splash screen's disappear). To temporarily pause the In-App messages display, you can use the Do Not Disturb mode to solve this issue (iOS/Android)
  • Do not disturb issue: Also, check in your implementation if the Do Not Disturb mode isn't activated by default and preventing In-App to be displayed.
  • Specific app architecture: If you have a non standard UI architecture, check that your implementation matches the requirements documentation (iOS/Android).
  • Event tagging issue: If the In-App campaign is triggered by a custom event, check if that event is triggered as expected. This can be easily done by using the Debug tool from Settings > Debug.

If none of this reasons seems to help, don't hesitate to send us any of your questions to our support team.