To create an In-App campaign:
- Navigate to the MoEngage Dashboard.
- From the left navigation, use one of the following options:
- Click Engage > Campaigns. The All Campaigns page displays. At the top right, click + Create Campaign. The Create Campaign page appears.
- Click Create New > Campaign. The Campaign page appears.
- Click Engage > Campaigns. The All Campaigns page displays. At the top right, click + Create Campaign. The Create Campaign page appears.
- Under Inbound, click In-App. The In-App campaign creation page appears.
Create an In-App Message Campaign
To create an In-App message campaign, follow these steps:
- Target users: Define the audience for your campaign.
- Content: Design the message content.
- Schedule and goals: Set the delivery schedule and track campaign performance.
Step 1: Target Users
Campaign Details
The Campaign Details section includes:
- Campaign name: Enter a name to easily identify and manage your campaign. The campaign name must be between 5 and 256 characters.
- Campaign tags: Select up to five tags from the drop-down list. Tags help you organize and filter campaigns. For more information, refer to Campaign Tags.
Select Platform
In the Target platforms section, select the required platforms where your In-App message should display.
Trigger Criteria
This section defines when the In-App message triggers for users.
Select On session start to display the In-App message as soon as a user's app session begins. An app session starts when the user first interacts with the app. The session ends if the user logs out, enters from another traffic source, or is inactive for longer than the defined inactivity period (default is 30 minutes).
Under Select trigger time, select Immediately to send the message as soon as the campaign is published, or select After Delay to send the message after a specified time.
info |
Note
|
Select On screen load to display the In-App message on a specific screen or app context.
Under Select screen/In app context, you have the following options:
- Any screen (Earlier on app open): The message appears as soon as the app opens on any screen where showInApp() or showNudge() is explicitly called. If these methods are not present on the initially opened screen, the message does not display until the user navigates to a screen where these methods are called. For instance, if your app has ten screens and you have added the methods to five screens, the message displays on every screen where these methods are added. Add relevant delivery controls to your campaign to prevent the message from appearing on all screens where the methods are present. For more information on delivery controls, refer here.
-
Specific screens: After selecting Specific screens, configure the screens or app context based on the platforms you selected. For your In-App message, you can configure either the screen, the app context, or both.
- Screen: An application can contain multiple screens, such as login, home, product, and checkout screens. Under the Android and iOS tabs, choose where the In-App campaign should display. Select screens from the Screen is any of list. You can select a maximum of five screens. This is an OR condition, so the message displays on any one of the selected screens.
- App context: A context is a section or part of a screen where you can display messages. For example, a podcast screen can have two contexts: For you and All episodes. To display the In-App campaign on the desired app context, add the context name in the App context is any of field. This is an OR condition, so the message displays on any one of the app contexts. For more information on context, refer to Android and iOS.
Under Select trigger time, select Immediately to send the message as soon as the campaign is published, or select After Delay to send the message after a specified delay.
info |
Note
|
Select On custom event to display In-App messages when a user performs a specific custom event.
IF user
In this section, select the event condition for your In-App campaign. MoEngage sends the In-App campaign if a user performs this event. You can add multiple events and attributes.
- From the Select an event list, select the event.
- Beginning with In-App Android SDK version 8.1.0 and In-App iOS SDK version 5.0.1.1, you can add multiple OR conditions within events by clicking + Trigger. For example, display the In-App message to users who have clicked in-app on mobile at least one time.
You can also refine the custom event:
- Click + Attributes to add attributes to the filter.
- From the Select attribute drop-down list, select the attributes and the logical drop-downs for the selected attribute.
- To add more attributes:
- Click + Attribute.
- Click AND or OR.
- From the Select attribute list, select the attributes and the logical drop-downs for the selected attribute.
For instance, if you select the event User installs the app, you can add the attribute App Version to filter for users who installed a specific version of the app.
AND then
You can add more customization with the AND then feature. In addition to the + Trigger option, the + Filter button enables you to string multiple events together.
For instance, you can select the In-App Clicked Android event and then use the AND then option to add the Added to Cart event.
By doing this, the In-App campaign displays to users who have clicked an In-App campaign on their mobile device at least once AND then proceeded to add an item to their cart at least once.
You can also define the time to wait before the event in the Filter condition evaluates. Setting this limit to 15 minutes implies that the user must perform the Filter event within 15 minutes of performing the first trigger event. In this example, the first event is In-App Clicked Android. You can set a maximum delay of 24 hours and a minimum delay of 1 minute here.
If you click + Filter again, you can add another event to the trigger criteria. You get the option to choose AND or OR. Combine the two filter conditions by choosing AND, or use the OR to filter users if they perform any of the events within the time limit.
THEN
In the THEN section, under Trigger the message, select an option to define when to display the message. The available options are:
- Immediately: The message displays immediately after the trigger criteria are met.
- After Delay: The message displays after the defined delay.
Trigger criteria summary: This section summarizes the trigger based on the events and attributes you select, making it easier to understand the trigger criteria.
info |
Note
|
Select Target Audience
This section includes segmentation filters to help you select the target audience for your campaign.
Select this filter option to send the campaign to all app users. When you use this option, you cannot add multiple filters.
Select this filter option to target users based on properties such as first seen, last seen, or city. Click the User property tab and follow these steps:
- Select the desired attribute from the drop-down list. This enables filters based on the selected attribute. For example, numeric attributes can have filter conditions such as 'is equal to', 'is not equal to', 'is between', while string attributes have different filters.
- Enter the filter value(s) to create the desired user segment.
- Click + Nested Filter to add a filter to create nested AND or OR conditions (optional).
For more information, refer to Create Segments.
Select this filter option to target users based on their behavior or events, such as app/site opened or viewed product. Click User Behavior and follow these steps:
- Select the execution condition and the desired user activity (event).
- Enter the event frequency and time duration for the event execution.
- Click + Attributes and add an event attribute with a filter condition.
- Enter the filter value(s) to create a rule.
- Use the + Aggregation button to add aggregation functionality. For more information, refer to Aggregation Operations.
- Click + Nested Filter to add a filter to create nested AND or OR conditions (optional).
For more information, refer to Create Segments.
Select this filter option to target groups of users created based on their actions with a specific attribute value. Click User Affinity and follow these steps:
- Select the desired user event or attribute.
- Select the user affinity parameter from the following:
- Predominantly: Select affinity attribute with a filter condition and provide the affinity values.
- For a minimum of: Select affinity attribute with a filter condition and provide the affinity values.
- Most no. of times: Enter a value or use the arrows to provide the top percentage of users.
- Least no. of times: Enter a value or use the arrows to provide the bottom percentage of users.
- Enter or use the arrows to provide the time duration for the event execution.
- Click + Attribute to add more attributes to the filter.
- Click + Nested Filter to add a filter to create nested AND or OR conditions (optional).
For more information, refer to Create Segments.
Select this filter option to use a custom segment as the target audience.
- Select a custom segment as the target audience from the list of custom segments available.
- Click + Nested Filter to add a filter to create nested AND or OR conditions (optional).
For more information, refer to Custom Segments.
After selecting the filter criteria, you can also perform the following actions:
-
Create Multiple Filters: Create and combine multiple user property, user activity, and custom segment rules to build complex user segments.
- Click + Filter.
- Click AND or OR.
- Select the attribute or event and define the filter conditions.
- Exclude Users: Select this check box to define filter criteria for users to exclude from the campaign.
- Reset filters: Click this option to clear all segmentation filters.
- Show count: Click this button to display the total number of users currently in the configured segment.
Campaign Audience Limit
This feature helps you control campaign reach and expenditure by limiting the number of users who receive it based on engagement metrics like sends, impressions, and conversions. You can set total, daily, or instance-level limits for campaigns. For more information, refer to Campaign Audience Limit.
In-session Attributes
In-session attributes enable you to group and target users based on their actions within the current app session. For example, use in-session attributes to display onboarding flows exclusively to new users visiting your app for the first time. This method ensures that these users receive a customized experience immediately during their initial session.
To add an in-session attribute:
- Click the + In-session attributes button and select the required attribute from the list.
- Use And/Or to combine multiple in-session attributes.
- Select the Exclude Users check box to exclude users based on their in-session activity.
You can use the following in-session attributes with your In-App campaign:
-
Query Parameter: This attribute segments users based on query parameters in the Uniform Resource Locator (URL). Typically, users land on your personalized URL by clicking an advertisement on any social media platform.
- You can use UTM parameters to segment users based on their source or the campaign that led them to the URL.
- UTM parameters like utm_source identify campaigns driving users to websites. You can use UTM and custom parameters to segment users and personalize their experience.
-
User Type: This attribute segments users based on whether they are new or returning. The SDK stores user details (unique_id) for each user in the app storage. A user is considered a Returning User if the associated user details exist in the SDK data storage. Otherwise, the user is considered New. If the user clears the app cache, they are considered new.
- Note: If two users (User 1 and User 2) use the same device and User 2 logs in after User 1, User 2 is considered a returning user.
- Day of the Week: This attribute segments users based on the day of the week they visit your app.
- Time of the Day: This attribute segments users based on the hour of the day they visit your app. You can choose from any of the one-hour slots available in the list.
- GeoLocation: This attribute segments users based on their geolocation when they visit your app. You can choose the country, state/region, and city where the user is located or exclude a specific country.
Control Group
This section provides information about control groups for the campaign. Control Groups are enabled only for promotional campaigns. They are not applicable for transactional campaigns. Enable control groups to which you want to send the promotional campaign.
In the Control group section:
For more information, refer to Control Group. |
Click Next or use the tabs at the top of the campaign creation navigation to proceed to Step 2: Content.
Step 2: Content
The following options are available to add content for your campaign:
Prebuilt and Saved Templates
This option enables you to choose a template from the following categories: All (chosen by default), Pre-built, Saved templates, and API templates.
In this section, you can perform the following actions:
- Search templates: Enter the template name in the Search templates bar.
- Filter templates: Use the following options to filter templates:
-
- Filter By Type: Filter templates based on pre-built types (e.g., Nudges, Carousel, Pop-up).
- Filter By Use Case: Filter templates based on their purpose (e.g., Promotional, Feedback, Survey).
- Filter By Content: Filter templates based on their content (e.g., text-only, buttons).
- Filter By Editor: Filter based on the editor that supports the template (Native, HTML, or Self Handled).
-
Pre-built Templates
Pre-built templates support various options beyond adding text, such as adding links and buttons, displaying ratings, and pop-up templates. The following table summarizes some common pre-built templates:
Field | Description |
---|---|
Text | Displays templates with text. |
With Image | Displays templates with images. |
Without Image | Displays templates without images. |
Single Button | Displays templates with a single button. |
Multiple Button | Displays templates with multiple buttons. |
Full Screen | Displays templates that enable full screen. |
Pop up | Displays templates that have pop-up windows. |
Embedded | Displays templates with embedded links. |
Rating | Displays templates with rating options. |
Nudge | Displays nudge templates in a non-intrusive manner. |
You can modify and save templates. For more information, refer to Saving Customized Templates.
Start from Scratch
This option enables you to choose from the following content creation methods:
- Self Handled: For more information, refer to Self Handled In-App Template.
- Zip upload: For more information, refer to Zip Upload Templates.
- Custom HTML upload: For more information, refer to HTML In-App Templates.
Add Content to the Template
Perform the following steps to add content to the selected template and template type.
Common Actions
- Turn the Mirror platforms toggle on to use the same template and configure the message together for the selected platforms.
- Click + A/B test to create a variation. You can create a maximum of five variations.
For more information, refer to A/B Testing Overview. - Click + Locales to add a locale. You can add a maximum of 10 locales for a single campaign.
For more information, refer to Using Locales. - Click the
icon to:
- Save Template
- Change Template
- Reset Template
Template Settings
Field | Description and action |
---|---|
Background color | Select the Background color option and define the background color of the message. |
Phone background color | Select and define the background color of the phone or device. |
Image |
Do one of the following:
Note:
|
Animation |
Entry and exit animations for the entire In-App message. Select from one of the following animations:
|
Close Button |
|
Border |
Select the following:
|
Text
Field | Description and action | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Heading | Type or paste the heading in the text box. | ||||||||||||||||||||||||||
Font size | Type or use the up and down arrows to select the font size used in the text. | ||||||||||||||||||||||||||
Font color | Type the hexadecimal code or select the font color used in the text. | ||||||||||||||||||||||||||
Custom font | Select the custom font and type the font name used in the text. | ||||||||||||||||||||||||||
Background color | Select and define the background color of the message. | ||||||||||||||||||||||||||
Action |
Select one of the following from the drop-down list:
|
||||||||||||||||||||||||||
Width, Margin, and Padding | |||||||||||||||||||||||||||
Width |
Use the slider or type the value to define the width of the text box in percentage. |
||||||||||||||||||||||||||
Margin |
Select Together and use the slider or type the value to define all margins of the text box in pixels. OR Select Separate and use the slider or type the value to define the top, bottom, right, and left margins of the text box in pixels. |
||||||||||||||||||||||||||
Padding |
Select Together and use the slider or type the value to define all padding for the text box in pixels. OR Select Separate and use the slider or type the value to define the top, bottom, right, and left padding of the text box in pixels. |
||||||||||||||||||||||||||
Border |
Select the following:
|
Image
Perform one of the following actions:
Field | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Image URL | Select the Image URL option and enter or paste the URL of the image. | ||||||||||||||||||||||||||
Upload image |
Select the Upload image option and drag and drop the image or click upload from the computer to upload the stored image. Note:
|
||||||||||||||||||||||||||
Action |
Select one of the following from the drop-down list:
|
Buttons
Field | Description | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Button text | Type or paste the text used in the button. | ||||||||||||||||||||||||||||||
Font size | Type or use the up and down arrows to select the font size used in the button. | ||||||||||||||||||||||||||||||
Font color | Type the hexadecimal code or select the font color used in the button. | ||||||||||||||||||||||||||||||
Custom font | Select a custom font and type the font name used in the button. | ||||||||||||||||||||||||||||||
Background color | Select and define the background color of the button. | ||||||||||||||||||||||||||||||
Action |
Select one of the following from the drop-down list:
|
||||||||||||||||||||||||||||||
Width, Margin, and Padding | |||||||||||||||||||||||||||||||
Width |
Use the slider or type the value to define the width of the text box in percentage. |
||||||||||||||||||||||||||||||
Margin |
Select Together and use the slider or type the value to define all margins of the text box in pixels. OR Select Separate and use the slider or type the value to define the top, bottom, right, and left margins of the text box in pixels. |
||||||||||||||||||||||||||||||
Padding |
Select Together and use the slider or type the value to define all padding for the text box in pixels. OR Select Separate and use the slider or type the value to define the top, bottom, right, and left padding of the text box in pixels. |
||||||||||||||||||||||||||||||
Border |
Select the following:
|
Personalize Content
Personalize the content of your In-App campaign by using the '@' symbol to insert user attributes, user events, product sets, content APIs, and content blocks. This enables dynamic and relevant messages for each user.
For more information, refer to:
- MoEngage Templating Language (JINJA)
- Derived Events & Attributes
- Content APIs
- Content Block
- Auxiliary Data
Do the following:
- In step 2 of campaign creation, click the text box or the image property URL.
- Type @ to personalize the content.
- Click either Data personalization or Content Block.
- Click the Data personalization tab and from the drop-down, select one of the following:
- User Attributes
- Select one of the following as fallback options if personalization does not work:
- No Fallback: No alternate content is provided if personalization fails.
- Do not send In-App: The In-App message is not sent if personalization fails.
- Replace Text: Type or paste the text to use if personalization fails.
- Product Sets
- Content API: Modify the values of the Content API parameters.
- Click Content Block:
- Select the content block to insert.
- Click Insert only the content of the content block.
- Click Done.
Test campaigns enable you to preview the campaign on a test device to ensure your notification displays as desired.
Test the campaign you created by selecting any of the following options and providing the value for the attribute chosen for your test user:
- Unique ID
- Email ID
- Mobile Number (Registered With MoEngage)
- Google Advertising Identifier
- iOS Identifier For Advertising
- Device Push Token
- Custom Segment
For more information about testing campaigns, refer to Testing In-App Campaign.
Step 3: Schedule and Goals
This section includes:
- Delivery Schedule: Choose when to deliver the campaign to your users and how often.
- Conversion goals: Select the conversion goals and revenue metrics to track for the campaign.
- Delivery controls: Choose advanced delivery options such as throttling, frequency capping, and expiration settings.
Delivery Scheduling
The following delivery schedule options are available for In-App Campaigns:
Select this option to send the campaign immediately or at a specified time to target users.
Field | Action |
---|---|
As soon as possible |
Sends the campaign immediately to target users. You can select:
|
At specific date and time |
Send the campaign at the specified time, time zone, or predicted time. This section helps you send the campaign on a specific date and time and contains the following fields:
|
Select this option to send the campaign periodically on a specified date and time. The following fields are available in this section:
- Campaign time zone: The timezone in which the campaign should send.
- Start date: The date on which the campaign should send.
-
Periodic: The periodicity of the campaign. You can choose from the following options on the left of the screen:
Periodicity Description Daily Repeat every: This option enables you to specify the number of days after which the campaign should repeat. Weekly Repeat every: This option enables you to specify the number of weeks for which the campaign should repeat.
Repeat on: This option enables you to specify the day(s) of the week on which the campaign should send (For example, select Monday, Wednesday, and Friday to send the campaign every Monday, Wednesday, and Friday).
Monthly Repeat every: This option enables you to specify the number of months for which the campaign should repeat.
Repeat on: This option enables you to do the following:
-
Days of month: Choose this option for repeating date-specific campaigns. Select the date(s) of the month the campaign should send (For example, to send the campaign on the 5th and the 25th of a month, select the 5th and 25th in the calendar widget.).
Note: If the selected date(s) do not exist in the specified month (if it is a shorter month), a campaign sends on the last day of the month (For example, if the 30th and 31st are selected and the month is February, one campaign sends on the 28th). -
Days of week: Choose this option to specify the day(s) of the week on which the campaign should send (For example, if you want to send the campaign every Monday, Wednesday, and Friday, select these days in this option).
Note: If a day of the week does not exist in a month (for example, the fifth Saturday), the campaign is skipped for that instance. If overlap occurs (for example, 4th Monday and last Monday), only one instance is sent.
-
Days of month: Choose this option for repeating date-specific campaigns. Select the date(s) of the month the campaign should send (For example, to send the campaign on the 5th and the 25th of a month, select the 5th and 25th in the calendar widget.).
-
Ends: The date on which the campaign should end. The following options are available:
- Never: The campaign runs daily.
- On: The campaign ends on the end date and end time you specify.
-
Campaign active window: The time duration for which the campaign will be active for the set periodicity. For example, if the campaign displays to the user daily, the campaign active window setting determines the time interval during the day the campaign will be active. If this interval is set between 6 PM and 8 PM for a campaign with daily periodicity, the campaign will display every day to users from 6 PM to 8 PM. If the campaign is active twice a week, the campaign active window setting determines the time duration when the campaign will display to the user during the days on which the campaign would be active. The following fields are available to set the campaign active window:
- Start time: The time at which the campaign triggers for the user.
- End time: The time after which the campaign no longer displays to the user, regardless of whether the campaign is set to be active on the specified day.
Conversion Goals
You can add conversion goals to track business metrics for your campaigns, with a maximum of five goals. Choose any app event as a conversion goal activity. The first goal is treated as a primary goal.
For example, if you want to track the number of customers who purchased an iPhone after your campaign was sent (Event: Purchase event, Product: iPhone), your conversion goal setup might resemble the following image:
With multiple conversion goals, you can track more than one business metric or visualize a funnel for your user actions. For example, use multiple conversion goals to check:
- How many users viewed the product page?
- How many added that product to the cart?
- How many made a successful order?
With MoEngage, you can track the revenue generated by your campaigns. For example, track the revenue generated by your product after sending a communication. To track revenue performance, enable the Revenue performance toggle for the conversion goal for which you want to track the revenue. In the example here, to track revenue for orderSuccessful events, enable the Revenue performance toggle. |
After choosing the goal, select the numeric attribute that captures the order's total monetary value. In this example, cartValue contains the total order value. You can choose the currency in which your monetary value is reported. |
Set Attribution window: Set an attribution window (a time period or window calculated from when the user receives/clicks the campaign, for which you want to attribute conversion goals to a specific campaign). By default, it is set for 36 hours, while the maximum attribution window can be set up to 10 days. In the example below, the attribution window is set to 5 hours. |
Campaign Priority
Set a priority for your In-App campaign as Critical, High, Medium, Normal, or Low.
Delivery Controls
You can select the following options for your In-App Campaign:
-
Limit the maximum number of times a user can see messages from this campaign to: Control campaign frequency by entering how many times to display the message.
Note: Frequency capping works at the device level, not the user level. This means if your user logs on to two devices at once, they receive the campaign on both devices even if the frequency setting is set to 1.
- Add a minimum delay between two messages of this campaign: Add a minimum delay between two messages to control the frequency and timing of displaying In-App messages to the user. This setting is disabled for Nudge Templates.
- Ignore global minimum delay: Enable or disable global minimum delay settings for this particular campaign.
- Auto Dismiss message after: This option dismisses the In-App message after a specified duration (in seconds). After the specified time, the In-App message is dismissed even if the user does not perform any action on it.
If you have multiple In-App campaigns, you can stagger them by setting a minimum delay between messages from different campaigns. Go to Settings > Channels > Delivery controls.
Note: This minimum delay applies to messages from different campaigns and the same campaign.
Here you can set the minimum delay (in minutes) between two In-App messages from different campaigns. With this setting, if your user sees a message from Campaign 1 at time T and another message is sent before T+15, it does not display.
Your campaign is now ready to send. Click Publish and confirm in the dialog box that opens to create the campaign. After successful creation, the Campaign Info page displays.
info |
Information In-App campaigns support the Campaign Approval Workflow (CAF). If CAF is enabled, the campaign must be reviewed and approved for publishing. For more information, refer to CAF. To enable CAF, contact your Customer Success Manager. |