In-app message content

Send in-app messages to your App channel.


There are two variations of in-app messages:

TypeDisplay formatDisplay timingCreation methodsComposers
StandardBannerUpon opening the app.
  • API
  • Dashboard
  • Message
  • A/B Test
  • Automation
  • Sequence
In-App AutomationBanner, modal, fullscreen, Custom HTMLStored on the user’s device then displayed according to defined triggers.
  • Dashboard
  • In-App Automation

This document is for standard in-app messages only. See also: In-App Automation.

About in-app messages

You can send in-app messages to your entire app audience, not just users who have opted in to push notifications. Use in-app messages to:

  • Engage with users as they browse your app
  • Reach users opted out of push notifications or may not have seen your push notification
  • Reach users who saw your notification but opened the app without interacting with it

Use cases:

  • Welcome messages — Communicate the value of your app and highlight key features.
  • Push and location opt-in prompts — Explain the value of your notifications to drive opt-in rates.
  • Feature education — Drive adoption of critical/new features that promote retention.
  • Onboarding messages — A series of messages educate users about the app over time.
  • App reviews — Prompt users to rate your app after positive experiences.
  • Registration/login — Drive registrations and logins to your loyalty program or account.
  • Profile enhancement — Promote the benefits of a completed profile, and provide a link to the relevant page in your app. Encourage your users to take a second to personalize their experience, and increase engagement and retention.
  • App updates — Send your users an in-app message highlighting your app’s newest features, or encourage users on older versions to update the app. If you just added a new page or have some new content, make sure to include a Deep Link so that they can find it quickly.
  • Ongoing promotions — If you have a promotion that users can take advantage of at any time — such as a discount for inviting a friend or for taking a survey — an in-app message serves as a convenient reminder.

You can combine an in-app message with a Push NotificationA message that can appear on any screen on a mobile device. Push notifications appear as banners. and/or Message CenterA place in your app where you can display persistent rich messages, including HTML, video, etc. Similar to email, Message Center represents both the medium (the in-app inbox) and the message type (the messages you send to the inbox). message.

Combined messaging example:

Many media companies send breaking news push notifications with a deep link to the story within their app; when a user taps the notification, they’re taken directly to the story. For users that don’t tap notifications directly and instead open the app later, that news story may be difficult to find. An in-app message that appears the next time a user opens the app provides a second opportunity to link them directly to the story, and a much more streamlined experience.

Appearance and behavior

In-app messages are in banner format. Every in-app message requires text, and you can also add one or two buttons.

  • Animation — In-app messages animate into the user’s screen. Depending on your your project’s design defaults or API request specifications, the message will animate in from either the top or bottom of the user’s screen.

  • Colors —  Notification colors can be specified in your project’s design defaults or the API.

  • Dismissal — Notification dismissal on iOS and Android is accomplished with a drawer pull.

By default, an in-app message will display while a user is browsing your app. If a user is not browsing your app while you send an in-app message, the message will be displayed the next time they open the app.

Users will see an in-app message as long as:

  • The message is not expired.
  • They have not tapped a push notification that was sent in combination with the in-app message.

They behave largely like push notifications, and they can be dismissed as you would dismiss a push notification. However, there are a few key differences regarding display behavior:

In-app messages are not PersistentMessage content that remains available even if the alerts for the message are dismissed. For example, Message Center, email, and SMS content can be viewed in the app’s Message Center, email inbox, or the device’s native SMS client until the message is deleted by its recipient. Non-persistent message types become unavailable when users dismiss them. A message’s linked content, e.g., a web link, deep link, an Apple News story, remains available as determined by the source host.. By default, an in-app message will only appear on a user’s screen for 15 seconds before disappearing. You can change this value in the design defaults for the in-app messages in your project. When sending in-app messages via the API, you can override this value with the duration key.
Sending Multiple Messages
An app will only store a single in-app message at a time. If a valid message is waiting to be displayed in a user’s app and a you send another in-app message, the new message takes the place of the prior one. Moreover, there is no way to specify an in-app message’s priority. The latest message will always replace the previous one.


You can add buttons to push notifications and in-app messages to direct users to take specific actions. One or two buttons are supported, e.g., a single Watch Now button, or a Yes/No pair, and you associate each button with an ActionA configurable behavior that occurs when a user interacts with your message, e.g., opening a web page.. You can also add or remove TagsMetadata that you can associate with channels or named users for audience segmentation. Generally, they are descriptive terms indicating user preferences or other categorizations, e.g., wine_enthusiast or weather_alerts_los_angeles. Tags are case-sensitive. or opt a user in to or out of a Subscription ListAn audience list of users who are opted in to messaging about a specific topic. Users can manage their opt-in status per list using a preference center. when they tap a button.

Airship records button clicks to help you track how your audience engages with your messages. Airship records them as Custom EventsEvents that indicate that a user performed a predefined action, such as adding an item to a shopping cart, viewing a screen, or clicking an Unsubscribe button. Custom events can trigger automation, including Sequences, Scenes, and Surveys. You can code them into your app or website, or send them to Airship from an external source using the custom event API. Custom events contain properties that you can use to personalize messages. with the name button--<BUTTON_ID>, where BUTTON_ID is either the button’s label or ID (when using the API). These events are included in Message Reports, Event Tracking, and Real-Time Data StreamingA service that delivers engagement events in real time via the Data Streaming API or an Airship partner integration..

Airship provides 30+ predefined buttons, which have preset labels and actions. Some buttons support changing their associated actions.

You can also create custom buttons, which must be configured in your project before you can add them to a message. Custom buttons can be associated with Airship actions, or they can be associated with custom actions.

See Interactive Notifications for more information about buttons. See Custom Notification Buttons to add buttons to your project.

Design defaults

You can set the default colors, message position, and duration in your project settings.

Additional customization may be made via the SDK. See: Mobile: In-App Automation.

Creating content

You configure the appearance of the message in the Content step of a composer; in the Delivery step you can configure content-related features that do not affect the appearance of the message.

In the Content step, click In-App Message then Add content:

Now you can configure the body of the message:

  1. Enter the message text. If you are using HandlebarsHandlebars is Airship’s templating language for personalization. Handlebars expressions use double curly braces wrapped around a content template, ranging from a simple variable, e.g., {{first_name}}, to complex evaluations of personalization data., you can enable Preview Data to test how they will appear. See: Previewing personalized content.

  2. Select an ActionA configurable behavior that occurs when a user interacts with your message, e.g., opening a web page.:

    • Home
    • Message Center
    • Landing Page
    • Deep Link
    • Adaptive Link
    • Web Page
    • Share
  3. (Optional) Set and/or remove tags when the user interacts with your message.

    1. Click Set a tag.
    2. Select Add or Remove, then search for tags that exist in the system, or create a new tag.
    3. (Optional) Click Set another tag and repeat the previous step.

    Setting one or more tags when a user interacts with a message can help you track user interactions for follow-on retargeting campaigns. For example, if you set a tag responded-campaign1, you can target users bearing the responded-campaign1 tag with another message at a later date, knowing that they are active users. Alternatively, you can re-engage users with this tag using an automated message if they are inactive for a period of time.

  4. (Optional) Add buttons.

Now you are ready to complete the remaining steps in the composer.

Combining message types

When you combine a push notification and in-app message, the in-app message’s alert text is the same as the push notification text by default. To use different messages, select Write Alternative for In-App Message Text and enter your text.

When you combine an in-app message with Message Center, the Message Center ActionA configurable behavior that occurs when a user interacts with your message, e.g., opening a web page. is preselected.