This document describes in-app messages and mobile inboxes, which can be used to deliver messages to users of your mobile apps and websites.
NOTE
- To learn how to send in-app message campaigns with Iterable, read Sending In-App Messages
- To learn more about in-browser messages, read In-Browser Messaging Overview.
In this article
In-app messages
In-app messages are custom messages that appear in an iOS or Android mobile app while it is in the foreground. Or, they can appear on your website. These messages can be used to point users to new content or functionality in the app, promotions or any other important information.
In-app messages:
- Only appear when a mobile app is in the foreground, unlike push notifications, which show on the lock screen.
- Can be sent to mobile apps or websites.
- Can be created with raw HTML or a drag-and-drop editor.
- Can contain buttons and links.
- Can be sent as part of blast, triggered, or journey campaigns.
- Can be given a display priority, to help determine their display order.
- Can be displayed in any order or prevented from displaying at all (using custom code in your mobile apps).
- Can contain metadata that the associated mobile app can inspect.
- Can be tied to different Iterable message channels and types.
How does a mobile app receive in-app messages?
To let mobile apps know that new in-app messages are available, Iterable sends silent push notifications: invisible, silent notifications that serve only as a communication mechanism between Iterable and the app.
Iterable's mobile SDKs also check for new in-app messages at strategic times during an app's lifecycle, such as when it comes to the foreground.
After downloading new in-app messages, apps can use included metadata to determine whether or not to display them and in what order. By default, mobile apps will show all in-app messages in the order they were sent.
Iterable will not show the same in-app message to the same user more than once unless the message has been re-sent or selected in a mobile inbox.
How does a website receive in-app messages (in-browser messages)?
A website can check for in-app messages by querying Iterable's API. To do this, it's easiest to use Iterable's web SDK.
Buttons and links in in-app messages
In-app messages can provide buttons and links to encourage users to take action on their content. These buttons and links might direct users to specific content in the app or on the web, or simply close the message.
For example, consider the in-app message at the top of this document:
The Read Now button might point to a web URL or a deep link URL (to open specific content in the app itself). Tapping this button would close the in-app message and navigate to the specified address.
The close button would have URL
iterable://dismiss
, and tapping it would close the message and return the user to the app.
When users tap on the buttons or links in an in-app message, Iterable captures events that you can use for campaign analytics, to trigger journeys, to filter users in a journey or segment users, or to trigger system webhooks:
All button and link taps create an in-app click event.
Close button taps (URL
iterable://dismiss
) create in-app click and in-app close events.Delete button taps (URL
iterable://delete
) create in-app click, in-app close and in-app delete events.
For more information, read Events for In-App Messages and Mobile Inbox.
Mobile Inbox
Users may sometimes want to save in-app messages to read when they have more time or when they're more relevant. In other cases, you may want to send promotions or announcements in a non-intrusive way, making them available for users to read as they see fit.
To accomplish these things, use a mobile inbox: a place in your mobile apps for users to receive, store, browse, read and delete in-app messages.
Mobile inboxes benefit users, developers, and marketers:
For users, a mobile inbox provides convenience and value, allowing them to save your messages and read them when they're most relevant.
-
For developers, Iterable's iOS and Android SDKs provide an out-of-the-box mobile inbox, including a customizable, dark-mode compatible user interface you can use in your apps.
TIP
Iterable's web SDK does not currently provide a mobile inbox implementation.
For marketers, Iterable's mobile inbox implementation provides rich analytics that describe how often and how long users have spent looking at their inbox, which messages have made an impression, which messages have been opened, and which messages have been deleted.
Using Mobile Inbox
A mobile inbox lists a user's saved in-app messages for the current app. It includes all in-app messages for which mobile inbox was enabled during campaign creation, regardless of whether they were sent directly to the inbox (without first being shown) or not. Inbox-enabled in-app messages show up in an app's mobile inbox as soon as the app receives them, regardless of any custom code that modifies message display time or display order.
For each message, a mobile inbox will, by default, display a title, some descriptive text, a send date, and an associated image.
A user can then tap a message to view it.
Syncing a mobile inbox across many devices
Iterable's iOS and Android SDKs automatically sync a mobile inbox across all the devices on which a user has logged in to your app—including whether or not each message has already been read.
If you're not using one of Iterable's mobile SDKs:
- To determine whether or not a message has been read, examine its
read
field, as returned byGET /api/inApp/getMessages
. - To mark a message as read, call
POST /api/events/trackInAppOpen
.
NOTE
For more information about cross-device read state syncing, see:
- Iterable's Android SDK, v3.2.12 release notes
- Iterable's iOS SDK, v6.2.21 release notes
Deleting in-app messages
There are two ways for users to delete in-app messages from a mobile inbox:
Tap a delete button (URL
iterable://delete
) in the content of the message.-
In the inbox, swipe left on the message and click Delete.
INFO
Deleting a message by swiping left in a mobile inbox does not create in-app close or in-app click events in Iterable.
Further reading
User guides:
Developer documentation:
- Iterable's iOS SDK
- Iterable's Android SDK
- Iterable's React Native SDK
- In-App Messages Overview
- In-App Messages on iOS
- In-App Messages on Android
- Setting up Mobile Inbox on iOS
- Setting up Mobile Inbox on Android
- Customizing Mobile Inbox on iOS
- Customizing Mobile Inbox on Android
- Using a Mobile Inbox with Iterable's React Native SDK
- Animating In-App Messages with CSS
- Image Carousels in In-App Messages
- Testing and Troubleshooting In-App Messages
- In-App Messages Without the SDK
- API Overview and Sample Payloads
- API Overview