In-App Message Types
Braze offers several default in-app message types, each customizable with messages, images, Font Awesome icons, click actions, analytics, editable styling and color schemes. The currently available types are
HTML Full. It is also possible to define your own custom in-app message view.
All in-app messages implement the
IInAppMessage interface, which defines basic behavior and traits for all in-app messages.
InAppMessageBase is an abstract class that implements
IInAppMessage and provides the foundational in-app message implementation. All in-app message classes are subclasses of
In addition, there is a subinterface of
IInAppMessageImmersive, which adds click action and analytics enabled buttons, as well as header text and a close button.
InAppMessageImmersiveBase is an abstract class that implements
IInAppMessageImmersive and provides the foundational
immersive in-app message implementation.
Full in-app messages are subclasses of
Slideup In-App Messages
Slideup in-app messages are so-named because they “slide up” or “slide down” from the top or bottom of the screen. They cover a small portion of the screen and provide an effective and non-intrusive messaging capability.
Modal In-App Messages
Modal in-app messages appear in the center of the screen and are framed by a translucent panel. Useful for more critical messaging, they can be equipped with up to two click action and analytics enabled buttons.
Full In-App Messages
Full in-app messages are useful for maximizing the content and impact of your user communication. The upper half of a
full in-app message contains an image and the lower half displays text as well as up to two click action and analytics enabled buttons.
HTML Full In-App Messages
HTML Full in-app messages are useful for creating fully customized user content. User-defined HTML Full in-app message content is displayed in a
WebView and may optionally contain other rich content, such as images and fonts, allowing for full control over message appearance and functionality.
The following example shows a survey HTML Full in-app message created by Soundcloud.
Full in-app message content is displayed in a UIWebView and may optionally contain other rich content, such as images and fonts, allowing for full control over message appearance and functionality. Please note that we currently do not support display of custom HTML in-app messages in an iFrame on the iOS and Android platforms.
In-App Message Delivery
In-App Messages (Triggered)
The following documentation refers to Braze’s
In-App Messaging product, aka “triggered in-app messages,” which are branded as highlighted below in the “Create Campaign” drop-down:
You may also refer to the documentation for our deprecated
Original In-App Messaging product.
Our in-app message product allows you to trigger in-app message display as a result of several different event types:
Push Click. Furthermore,
Specific Purchase and
Custom Event triggers can contain robust property filters.
-Note: Triggered in-app messages only work with custom events logged through the SDK and not through the Rest APIs. If you’re working with Android, please check out how to log custom events here. If you’re working with iOS, check out how to log custom events here.
All in-app messages that a user is eligible for are delivered to the user’s device on session start. For more information about the SDK’s session start semantics, see our session lifecycle documentation. Upon delivery, the SDK will pre-fetch assets so that they are available immediately at trigger time, minimizing display latency.
When a trigger event has more than one eligible in-app message associated with it, only the in-app message with the highest priority will be delivered.
For in-app messages that display immediately on deliver (i.e., session start, push click) there can be some latency due to assets not being prefetched.
Minimum Time Interval Between Triggers
By default, we rate limit in-app messages to once every 30 seconds to ensure a quality user experience.
To override this value, set
com_appboy_trigger_action_minimum_time_interval_seconds in your
appboy.xml. An example can be found in our sample application’s
Local In-App Messages
In-app messages can be created within the app and displayed locally in real-time. All customization options available on the dashboard are also available locally. This is particularly useful for displaying messages that you wish to trigger within the app in real-time.
1 2 3 // Initializes a new slideup type in-app message and specifies its message. InAppMessageSlideup inAppMessage = new InAppMessageSlideup(); inAppMessage.setMessage("Welcome to Braze! This is a slideup in-app message.");
1 2 3 // Initializes a new slideup type in-app message and specifies its message. val inAppMessage = InAppMessageSlideup() inAppMessage.message = "Welcome to Braze! This is a slideup in-app message."
Do not display in-app messages when the soft keyboard is displayed on screen, as rendering is undefined in this circumstance.
Manually Triggering In-App Message Display
The following method will manually display your in-app message.
InAppMessageTesterFragment.java in the DroidBoy sample app for example usage.
In-Depth: Defining Custom In-App Message Types
slideup in-app message object extends
modal type messages extend
InAppMessageImmersiveBase. Extending one of these classes gives you the option of adding custom functionality to your locally generated in-app messages.
CustomInAppMessage.java in the DroidBoy sample app for an example implementation.