In-App Messages

Reach your goals with fewer efforts

Use out-of-the-box In-App solutions for various business cases to make your marketing campaigns even more efficient!

Overview

In-App Messaging is a marketing tool to improve user engagement and retention rates. Combined with push notifications, in-app messages increase the overall audience you can connect with, up to 100% of your userbase. Depending on user behavior, in-app messages are deeply contextual and relevant to a user, which allows you to interact with your audience efficiently.

There are three milestones to create an effective In-App Messaging campaign:

  1. Creative - create a Rich Media page to display it as an in-app message.
  2. Audience - specify the group of users to receive the in-app message.
  3. Scheduling - define a specific event triggering the in-app message.

1. Creative

Add an In-App creative by selecting one of the already-existing Rich Media pages or upload a new one.
Basically, in-app messages are HTML-based pages displayed in a custom web view of the app. An In-App creative should be compressed to a .zip file and comply with the rules below:

  • the .zip archive should contain an index.html file in its root folder;
  • all images, CSS, and JS files should be included in the .zip archive.

To use remote images in your in-app message for iOS, use https protocol or add Allow Arbitrary Loads to Info.plist.

If a Rich Media page is uploaded properly, you will see a preview of an in-app message as it should appear on a device.
If you upload a new .zip archive at that point, it will be saved as a Rich Media page in the corresponding tab in your Pushwoosh Control Panel.

High-priority In-App

To make sure Pushwoosh SDK has finished downloading in-app message in case the trigger Event occurs right after the app’s launched, tick the “High-priority In-App” checkbox. The SDK will block app’s UI for a few seconds the in-app message is downloading.

2. Audience

To define users who should receive the in-app message, set up conditions presented in two sections - Segment and Behavior.

Segment

To send the in-app message to a specific audience segment use Filters based on Pushwoosh Tags and Filters.
The example below will narrow the segment to the devices from the USA on which the last app opening took place in between 1 and 3 days ago.

Behavior

To target users with a specific behavior, use Events based on actions users perform within the app.
The example below will target all users who performed the CartCleared Event at least 1 time during the last 7 days.

3. Schedule

Determine when to show the in-app message to make sure it's relevant to your users.

Trigger

Define the Event triggering the in-app message here. Choose an Event from the list and add attributes to set up the trigger rule.
Events are a tool indicating particular actions your users perform in the app. Events should be first configured in Pushwoosh Control Panel, describing a specific pattern in the app. Choose the Event you find the most appropriate to trigger the in-app message.

Capping

Capping allows you to limit number and frequency of in-app message impressions to a particular user.

Calendar

Add a schedule to display the in-app message in a specified date range or finish the in-app campaign manually later.

Confirmation

Take a glance at your In-App settings and save the in-app message by clicking the 'Save' button.

You can return to any previous step to edit your in-app message settings or save the draft to complete it later.

In-Apps statistics

Once an in-app message is shown to a user, this impression is captured and can be tracked from Pushwoosh Control Panel, allowing you to see the in-app statistics in dynamics. This metric is accessible as a counter of total impressions and as a graphics of distribution over a chosen period:

In-Apps with JavaScript

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

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

var successCallback = function() {
  console.log("Post event success");
}

var errorCallback = function(message) {
  console.log("Post event failed: ", message);
  alert("Post event failed: " + message);
}

pushManager.postEvent(JSON.stringify({
  "event": "In-app shown",
  "attributes": {
    "AttributeString": "someString",
    "AttributeInt": 42,
    "AttributeList": [123, 456, "someString"],
    "AttributeBool": true,
    "AttributeDate": "2015-07-28 19:45" // YYYY-MM-DD hh:mm format
  },
  "success": "successCallback", // optional
  "error": "errorCallback" // optional
}));

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

pushManager.sendTags(JSON.stringify({
  "IntTag": 42,
  "BoolTag": true,
  "StringTag": "Some String",
  "ListTag": ["string1", "string2"]
}));

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

pushManager.closeInApp();

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

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.

In-App Messages