Use deeply contextual in-apps to capitalize on user engagement


In-app messages are displayed directly within the app interface while a user is already interacting with an app. As a result, users perceive in-apps as less intrusive than push notifications, emails or SMS.

In-app messages always contain images or videos called Rich Media. In-apps can also include formatted text, links, buttons with CTAs, and other data, allowing you to communicate with your app users in engaging forms.

Let’s see how you can tweak your in-app messages using Pushwoosh. In this article, you’ll discover:

In-app formats

In-app editor

In-app personalization

In-app templates

Sending in-apps

In-app statistics

In-app formats

Full-screen in-apps: commonly used for user onboarding, offerwalls, and paywalls.

Part-screen in-apps: can be displayed in different formats, such as a sticky header or footer or inline or half-interstitial in-app messages. Often used for product tours, announcements, and other promo content.

Read more about in-app formats here >

In-app editor

Create your in-app template first to be able to send and re-use it in future.

To create an in-app template (also called Rich Media), go to Content → Rich Media → Add template:

You can either build a template from scratch using an in-app builder or upload an existing one as a zip file. Learn how to build in-apps from scratch in the Rich Media builder >

To import a template, click Add template, enter the template name in the Name field, choose Upload ZIP, and click Add template. Your template will open up, ready for editing. Read more about uploading your ZIP files >

To build a template from scratch, click Add template, enter the template name in the Name field, choose Create new template, and click Add template. You will be prompted to choose a blank template or one of the pre-built templates from our library.

In-app personalization

You can also personalize the template to make it more attractive to users. You can personalize the main text, the header, or the button. Simply click the text on a canvas, click Merge Tags and choose a type of personalization you would like to add. Read more about in-app content customization >

Please follow our detailed guide on the in-app builder >

The Name is always required for your Rich Media template, but you can change it whenever you want by clicking the template name and editing it. Click Enter to apply changes.

In-app templates

In-app templates are pre-built in-apps that you can quickly customize before sending. To choose one, go to Content → Rich Media → Add template and choose Create new template.

Choose a template that suits your needs. Read more about templates in our guide here >

Sending in-apps

To send in-app messages, save your template first and then create a journey to deliver it to your users.

Go to Pushwoosh Customer Journey Builder → Create Campaign. Here, you are able to set up a target audience and add custom scheduling settings.

Please follow our guide on sending your in-app messages >

In-app statistics

You can view statistics per in-app or as a whole campaign (journey).

Stats per in-app (Rich Media) give you a deeper understanding of user interactions, such as Impressions, Interactions, and Audience as user devices.

More about in-app statistics >

In Pushwoosh Journey, you can analyze overall interactions per campaign, including in-apps, push notifications, emails, SMS, etc. and see how your users interact with each channel. Read more about Statistics in Pushwoosh Journey >

And now you are ready to send your in-app messages. Follow our guide to do this

In-Apps with JavaScript

In-Apps are HTML-based and support JavaScript. Pushwoosh SDK injects pushwooshvariable that provides the following API:

You can use postEvent method to send a new event directly from In-App JavaScript code.

    TestAttributeString: 'testString',
    TestAttributeInt: 42,
    TestAttributeList: [123, 456, 'someString'],
    TestAttributeBool: true,
    TestAttributeNull: null,
    TestAttributeDaysAgo: 7,
    TestAttributeDate: new Date()
  function() {
    console.log('Post event success')
  function(error) {
    console.log('Post event failed: ', error)

You can also use sendTags method to set tags for the device from an in-app:

  IntTag: 42,
  BoolTag: true,
  StringTag: 'testString',
  ListTag: ['string1', 'string2']

To get device tags, use the getTags method as follows:

  function(tags) {
    console.log('tags: ' + JSON.stringify(tags))
  function(error) {
    console.log('failded to get tags: ' + error)

If you want to close an in-app from the JavaScript code call closeInApp() method:


Or simply use custom scheme URL for the button/link <a href="pushwoosh://close">

When sending a push notification with Rich Media, you can get custom data of that push with the following code: pushwoosh.getCustomData()

Custom JavaScript interface

In-App Messages JavaScript functionality can be unlimitedly extended by exposing native Java/Objective-C/Swift methods to JavaScript. This can be achieved with addJavaScriptInterface methods of Pushwoosh SDK for iOS and Android.

Last updated