New Beta Feature: In-app message prioritization

Thanks for being a beta tester for one of our new features!

In-app message prioritization allows you to set a priority level for your in app messages. This affects what happens when a user qualifies for and triggers multiple in-app messages at once.

How it works

With in-app message prioritization, when a user qualifies for and triggers multiple in-app messages at once, our SDK will go through the matching in-app messages and sort them by priority order. The first in-app message that qualifies for display with the highest priority will be displayed, and all other messages will be muted. Muted messages will not have their View events tracked.

If multiple messages have the exact same priority, then all messages with that priority will be shown in non-deterministic order.

Note on iOS Interstitial messages: It is not currently possible to send multiple interstitial messages with the same delivery trigger and priority in iOS. (Web-interstitials and push pre-permissions also behave this way.)

When multiple interstitials are triggered with the same priority, only one of them will show in iOS. If you have a particularly important iOS interstitial or push pre-permission message, it's best to give it a separate trigger event or set your other interstitials at a lower priority. See the interstitial example below for more details.

How targets affect prioritization

Users will only see the message with the highest-priority that they qualify for. This does not mean they will always see a message with priority set to 1. It means that if multiple messages are sent to them at the same time (based on targeting and display when criteria), our SDK will only show the message with the higher priority of those matching messages.

So, it's entirely possible for some users to see a lower priority message than others, since their targets are different and they may not qualify for the 1st priority message. 

For example, if you create three in-app messages (with priorities 1, 2, and 3) and a user only qualifies for priority 2 and 3 messages, they will only see the 2nd priority message. This is because it is the highest priority message that they qualify for. Meanwhile, another user might only qualify for the 3rd priority message, so they will only see the 3rd priority message.

It's important to remember that priority is evaluated after targets. Once the targets are evaluated, the SDK sorts all of the matching messages for that user by priority and then determines which to display. So the message displayed is always relative to each user based on how they qualify for your messages.

Setting message priority

The Priority field is located adjacent to the Display When box on the in-app message set up page.


Priority can be set from 1 (high) to 999 (low). If not specified (left as None), a default priority of 1000 will be assigned so that those messages will always have the lowest priority.

If a user fits the target for many different messages that are triggered from the same event, you can use priority to control which messages are more important for that user to receive.



For example, let's say we have the following in-app messages activated, all of which are set to display when “User starts or resumes app." Each has been assigned a priority of 1, 2, or 3.

  • Daily Deal (priority 2)
  • Reminder Message (priority 3)
  • Global Promotion (priority 2)
  • New User Tip (priority 1)

A user could meet the targeting requirements for none of the messages, all of the messages, or some of the messages. For our example, here are four possible scenarios an end user could fall into:

Scenario 1: The user is eligible for all four messages.

  • The user will receive the messages at the highest priority level—in this case, just the New User Tip (priority 1).

Scenario 2: The user is eligible for the Reminder Message (priority 3), the Global Promotion and the Daily Deal (priority 2).

  • The user will receive the Global Promotion message and the Daily Deal message (in no particular order). 

Scenario 3: The user is eligible for only one message—the Reminder Message.

  • The user will only receive the Reminder Message (priority 3).

Scenario 4: The user is not eligible for any of the messages:

  • No message will show. 

Interstitial example (iOS vs. Android)

Here's an example to illustrate how interstitial messages (and push pre-permissions) currently work with the priority beta feature. Let's say the user is eligible for Message A (priority 3), Message B (priority 2), and Message C (priority 2). 

For iOS: If all three messages are interstitials, the user will receive one of the two higher priority messages — either Message B or Message C — because only one interstitial can be sent at a time in iOS. This shouldn't affect other message types though. For example, if Message B is interstitial and Message C is an alert, the user should receive both messages in no particular order. 

For Android: All messages on the highest priority level will send (in non-deterministic order), regardless of whether or not they are interstitial (Message B and Message C).

How to integrate this feature

Reach out to your customer success manager to find out if you can be added to the whitelist for In-app Message Prioritization. This will reveal the Priority field in the Leanplum dashboard. To be considered, you will have to update to the newest SDK versions.

This feature is supported on Leanplum Android SDK 1.2.25 and higher and Leanplum iOS SDK 1.3.12 and higher. If the end user is still using a version of the app with an older SDK version, then the Priority field will be ignored. Meaning the user will get the same experience they had before this feature was released.

Please reach out to or directly to your customer success manager with any questions or for more info on how you could take advantage of this new functionality.


Was this article helpful?
Have more questions? Submit a request