Introduction to in-app messages

In-app messages allow you to display any creation in a mobile application. This feature allows you to implement use cases such as abandoned cart, discount codes, or any information campaign, such as application update.

In contrast to push notifications which are sent (pushed) to the app user by Synerise, in-app messages are requested (pulled) by the user’s device through Synerise mobile SDK. Thanks to this, you can design your mobile application to request and show notification precisely when you need to, making them more reliable in some scenarios than push notifications. Combining this with the capabilities of segmentations and the Analytics module that allow you to measure the performance, in-app messages can be targeted better and more effective.

In-app messages vs push notifications

In-app messages Push notifications
In-app messages are fetched to a device by using the SDK, but Firebase integration is needed for testing. Firebase integration is required
In-app messages are displayed right after occurrence of a triggering event The message is delivered as a push notification and the time of deliverability is dependent on Firebase
User’s agreement is not required A user’s agreement is required
One in-app message can be displayed at a time Push notifications are aggregated in the notification center
The possibility of full layout customization using HTML and CSS Lack of HTML and CSS customization support
Support personalization (Jinjava) Support personalization (Jinjava)

How it works

In-app messages are fetched either in intervals which can be defined individually (10 minute by default) while implementing the SDK or in response to a client.applicationStarted event. When a user performs an activity that’s set to trigger an in-app message, the message is displayed.

The mobile application can display only 1 in-app message at a time. The selection of the in-app message to display is based on:

The rest of the in-app messages which overlap are stored in the memory. They can be displayed if triggered.

Key information

  • In-app messages are fetched and kept by SDK for 6 hours. Because of this, when you stop the communication, customers may still see the message until one of the following conditions occurs:
    • The customer starts the mobile application and the client.applicationStarted events triggers an in-app message fetch request.
    • The time between refreshing in-app messages (10 minutes by default) passes.
  • Only 10 in-app messages can be active at the same time.
    This ensures good performance of the mobile application.
  • If your mobile application is a single-activity application, an in-app message is displayed after switching between the screens in the application.


  • Recommended Mobile SDK version:
    • Android - 5.3.0 or newer
    • iOS - 4.12.0 or newer
    • React Native - 0.12.0 or newer
    • Flutter - 0.5.0 or newer
  • Enable the IN_APP_DEFINITIONS_COMMUNICATION_READ (Communication) permission in the Profile (formerly Client) API key so the mobile application can fetch in-app messages.
    The API key permission matrix with the in-app permission
    The API key permission matrix with the in-app permission

Events generated by in-app messages

Interaction with in-app messages generates the following events. Based on these events, you can create analyses to measure the performance of in-app messages.

See In-app Mobile Campaigns section in the Event Reference.


On the list of the in-app messages, you can find basic statistics on in-app performance such as:

  • the number of times an in-app message has been displayed,
  • the number of clicks in the links in an in-app have been clicked,
  • Click-Through Rate (CTR)

You can create more advanced analyses in the Analytics module using the events generated by in-app messages.


We are sorry to hear that

Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.



Thank you for helping improve out documentation. If you need help or have any questions, please consider contacting support.

Close modal icon Placeholder alt for modal to satisfy link checker