Create Push
This article is intended to guide users through creating notification messages in the EngageLab console.
Create Notification Message
Go to [Push] - [Create Push] - [Notification Message] to create a push task. The parameter configuration instructions are as follows:
Basic Settings
- Target Platform: Select the platform to push to based on the platform where the SDK is integrated.
- Before selecting a platform, you need to configure the corresponding platform in [Push Settings].
- Sub-accounts can select only the platforms authorized by the main account.
- Notification Title: The title of the push message. Try to avoid meaningless content such as "test", "测试", or pure numbers; otherwise, it may be intercepted by the vendor and the notification may not be received.
- Notification Content: The content of the push message. Try to avoid meaningless content such as "test", "测试", or pure numbers; otherwise, it may be intercepted by the vendor and the notification may not be received.
- Supports adding push titles and push content in multiple languages. We automatically detect the end user's device language. If no other language is set, content in the [Default] language setting will be sent to all target users.
- Supports one-click AI translation.

- Send Time: Select when to send.
- Immediate: Deliver the message immediately.
- Scheduled: The send time must be at least 3 minutes later than the current time, and scheduled tasks cannot exceed one year.
- Rate-Limited Push: Complete the push within the set time to reduce server pressure.
- Open Notification on Click: The action performed after clicking the notification.
- Open the app directly.
intent(recommended), format:intent:#Intent;action=action path;component=packagename/ Activity path;enddeeplink: format:scheme://test?key1=val1&key2=val2

Advanced Settings
- Push Plan Identifier Binding: You can use a push plan identifier to manage similar push messages together. Later, you can view total message deliveries, user clicks, and more by plan.
- Message Type Selection:
- System Message: Corresponds to service notification messages on various vendor channels (Huawei/Honor: service and communication category; Xiaomi/OPPO: private message; vivo: system message). Vendors usually do not limit the number of sends.
- Operational Message: Corresponds to marketing and operational messages on various vendor channels (Huawei/Honor: marketing consultation category; Xiaomi/OPPO: public message; vivo: operational message). Vendors usually strictly limit the number of sends.
- Operational Message is selected by default.
We automatically adapt the message classification field for each vendor channel based on the message type you specify to avoid message delivery restrictions and wasted vendor message quotas.
- Offline Message Retention Duration: You can use this value to specify how long offline messages are retained. If the user is currently offline, the message will be saved as an offline message and pushed again the next time the user comes online. In other words, the user will continue to receive the push if they come online within this period; otherwise, it will expire.
- The default duration is 1 day.
- If set to 0, offline messages are not retained. This means only users who are currently online can receive the message, and all offline users will not receive it.
- Additional Fields: The client can obtain the content of additional fields for custom event processing. Supports adding and deleting additional parameters.

- Vendor-Specific Settings: If any fields configured here overlap with those in the Notification Alert Template above, the settings here take precedence. Vendors not listed here currently do not involve special personalized settings.

- Xiaomi
channel_id: Xiaomi notification category identifier; corresponds to theoptions.third_party_channel.xiaomi.channel_idfield in the Push API. - Huawei: For details on
importance,category, andtarget_user_type, refer to the REST API documentation.- Huawei
channel_id: Huawei custom notification channel identifier; corresponds to theoptions.third_party_channel.huawei.channel_idfield in the Push API. - Huawei
importance: Huawei vendor message alert level; corresponds to theoptions.third_party_channel.huawei.importancefield in the Push API. - Huawei
category: Huawei vendor message type identifier. Requires applying for Huawei self-classification privileges; corresponds to theoptions.third_party_channel.huawei.categoryfield in the Push API. - Huawei
target_user_type: Huawei vendor normal message/test message identifier; corresponds to theoptions.third_party_channel.huawei.target_user_typefield in the Push API.
- Huawei
- Honor
importance: Honor vendor message classification; corresponds to theoptions.third_party_channel.honor.importancefield in the Push API. - OPPO
channel_id: OPPO notification bar channel identifier; corresponds to theoptions.third_party_channel.oppo.channel_idfield in the Push API. - vivo:
- vivo
pushMode: vivo vendor push mode; corresponds to theoptions.third_party_channel.vivo.push_modefield in the Push API. - vivo
category: vivo vendor secondary message classification identifier; corresponds to theoptions.third_party_channel.vivo.categoryfield in the Push API.
- vivo
Android Configuration
- Vendor Channel Status: After completing the integration and configuration of the corresponding vendor channel, that vendor channel's status will be highlighted.
- Notification Delivery Policy: You can specify the preferred delivery strategy between vendor channels and the EngageLab channel. When selecting a vendor strategy, ensure that the vendor channel has been configured successfully.
- Vendor Quota Policy: This policy indicates only whether to ignore and skip the quota check and deduction logic on the EngageLab system side. Actual delivery still follows and is constrained by the vendor's quota mechanism. Currently, this applies only to Xiaomi and OPPO vendors. For Xiaomi notification messages and OPPO private messages, you can choose Ignore. For other types of push messages, Do Not Ignore is recommended.
- Notification Bar Style: Different from the built-in notification bar styles of the MTPush SDK, the notification bar styles here are three commonly used styles built with system APIs. Click ? for details. Supported in MTPush Android SDK 3.0.1 and later.
- Custom Notification Bar Style: Multiple styles with different IDs can be configured on the client side. When pushing from the server side, specifying the ID will display the previously configured style. The default value is 0, which means the default style is used.
- Notification Bar Icon: The icon on the right side of the notification bar.
- Default logo: The notification bar displays the app's default icon.
- Specify icon path: The notification bar displays the icon from the specified path. The image can be a network resource starting with
httporhttps, or a drawable resource folder path. - Upload icon: The notification bar displays the uploaded icon.

- Notification Message Template: You can set the alert priority of notifications to avoid disturbing users too frequently. By default, the General Alert Template is selected. A template includes the template name, channel name, channel ID, notification priority, notification category, notification alert type, and sound settings.
- General Alert Template: The notification priority is
PRIORITY_DEFAULT, and the notification alert type isSound | Vibration | Indicator Light. - Silent Alert Template: The notification priority is
PRIORITY_LOW, and the notification alert type isIndicator Light. - Strong Alert Template: The notification priority is
PRIORITY_HIGH, and the notification alert type isSound | Vibration | Indicator Light. - Click Create New Message Alert Template to customize an alert template.
channel_id: For the notification channel feature in Android 8.0 and later, push notifications must specify a notification channel ID.- Notification Priority: This priority takes effect only on the EngageLab channel. The default priority property is set to
PRIORITY_DEFAULT. See the official description in the developer documentation. Effective in MTPush Android SDK 3.0.1 and later. - Notification Category: The system may use the category property of the notification for sorting or filtering in the notification bar. Effective in MTPush Android SDK 3.0.1 and later. See the official description in the developer documentation.
- Notification Alert Type: Developers can select the corresponding items to specify the alert type on the phone when the notification is delivered, but cannot bypass system restrictions. For example, the phone sound must be on, vibration must be allowed, and an LED indicator must exist and be enabled. Effective in MTPush Android SDK 3.0.3 and later.
- General Alert Template: The notification priority is
- Badge Number: The badge in the upper-right corner of the app icon.
- This property currently takes effect only on Huawei EMUI 8.0 and above and Xiaomi MIUI 6 and above devices, and is supported in MTPush Android SDK 3.3.6 and later.
- If this field is left empty, the badge number is not changed (on Xiaomi devices, due to system control, whether the push is delivered through the EngageLab channel or the vendor channel, the default effect is still
+1even if not passed). Otherwise, thebadge_add_numdata configured for the next notification bar message will be added to the previous badge count. It is recommended to setbadge_add_numto1. Example: ifbadge_add_numis set to1and the app's previous badge count is2, after sending this badge message, the app badge count will display as3.

iOS Configuration
silent_push:content-available: 1, without carrying any badge, sound, message content, or other parameters. It can be used for content updates and other operations without disturbing the user. Refer to Silent Remote Notifications.- Notification Subtitle: This field applies only to iOS 10 and later. The Android platform and other iOS versions are not affected by this field.
content-available(Push Wake-Up): A feature added in iOS 7. Enabling it here means a Background Remote Notification; if not enabled, it is a normal Remote Notification. For details, refer to Background Remote Notification.mutable-content: A feature added in iOS 10. Enabling it here means support for theUNNotificationServiceExtensionfeature in iOS 10; if not enabled, it is a normal Remote Notification. For details, refer to UNNotificationServiceExtension.apns-collapse-id: Notifications carrying the collapse ID parameter will overwrite notifications in the notification center that carry the same collapse ID. The value of the collapse ID cannot exceed 64 bytes. For details about this field, refer to the APNs Guide.

- Notification Message Template: You can set the alert priority of notifications to avoid disturbing users too frequently. By default, the General Alert Template is selected. A template includes the template name, notification type, sound, volume, critical, category,
thread-id, andinterruption-level.- General Alert Template: The notification type is Notification Type, sound is Default Notification, and
interruption-levelisactive. - Silent Alert Template: The notification type is Notification Type, sound is Silent, and
interruption-levelispassive. - Click Create New Message Alert Template to customize an alert template.
- Normal Notification: Specify the sound through the
soundfield. The default isdefault, which means the system default sound. If set to an empty value, it is silent. If set to a special name, that sound must be configured in your app to work properly. - Critical Alert: Apps that need to push critical alerts must apply for permission on the Apple Developer website.
category: iOS category. Only iOS 8 and later support pushing this parameter.thread-id: An app-specific identifier used to group notifications. Notifications with the samethread-idare grouped together.interruption-level: The interruption level used to define notification priority and delivery timing.
- Normal Notification: Specify the sound through the
- General Alert Template: The notification type is Notification Type, sound is Default Notification, and
badge: You can specify the badge for APNs push notifications, displayed directly in the upper-right corner of the app icon on the home screen. It represents the number of unread messages in the app and also supports badge+N/-N. Example: if recipients A and B have badge counts of1and2respectively, then after pushing+2, A's badge becomes3and B's badge becomes4. The system default value is1.

HarmonyOS Configuration
- Notification Bar Style: Supports the system default style and multi-line text style.
- Notification Bar Icon: Supports only displaying the app's default icon and an icon from a specified path.
- Badge Number: Default effect is
+1. - Vendor-Specific Settings:
category: HarmonyOS vendor message type identifier. Requires applying for HarmonyOS self-classification privileges; corresponds to thenotification.hmos.categoryfield in the Push API.test_message: HarmonyOS vendor normal message/test message identifier; corresponds to thenotification.hmos.test_messagefield in the Push API.receipt_id: HarmonyOS vendor push data receipt address identifier; corresponds to thenotification.hmos.receipt_idfield in the Push API.
Target Audience
Select Target: The target audience to receive the push. For testing, it is recommended to use the registrationID obtained from the registration logs.
- All/Broadcast to All: The push will be sent to all currently registered and future registered online users of the app.
- User Segments: Supports customizing user segments based on rules and pushing to those segments.
- registrationID: Up to 1000 per push.
Send Timing
- Send Immediately: The message will be delivered immediately.
- Scheduled Send by Organization Time: Send according to the time zone set for the current organization. Scheduled tasks cannot exceed one year.
- Scheduled Send by End User Time: Send according to the time zone set on each end user's device. If you want to send a notification to all users in different time zones at 10:00 AM tomorrow, you only need to set 10:00 AM tomorrow here. Note: if the time has already passed in a certain time zone when the message is sent, the message will be discarded. Therefore, please make sure to start sending at least 24 hours in advance to avoid important messages failing to reach end users.
- Recurring Scheduled Send: Recurring scheduled push allows you to set automatic periodic notifications within a time period. Note that if monthly recurring is selected and February 30 is selected, the 30th selection will be ignored.
Send Preview
After configuring the push parameters, click Send Preview to view the configured push parameters.

Confirm the sending parameters, then click Confirm to successfully create the push task.
If there is no push target that meets the conditions, the following error will be returned:

Create Custom Message
Go to [Create Push] - [Custom Message] to create a push task. For parameter configuration instructions, refer to Create Notification Message.

Create In-App Message
In-app messages are messages displayed within the app to convey information, promotional activities, or remind users to perform certain actions. This section introduces the types of in-app messages we support and the corresponding creation steps.
- In-app messages are delivered only through the Jiguang channel and support only Android and iOS platforms.
- In-app messages can be sent only through the web portal; API sending is not currently supported.
- This feature requires SDK version v4.5.0+
Basic Settings
Message Name: No more than 20 characters.
Target Platform: Select the platform to push to based on the platform where the SDK is integrated.
- Before selecting a platform, you need to configure the corresponding platform in [Push Settings].
- Sub-accounts can select only the platforms authorized by the main account.
After selecting the platform, you can also choose how the message pop-up page works:
- No Page Restriction: The in-app message can be displayed on any page in the app (one message pops up only once).
- Specify Specific Page Path: The in-app message will pop up only on the specified page in the app (one message pops up only once).
Target Users: The target audience to receive the push. For testing, it is recommended to use the
registrationIDobtained from the registration logs.
- All/Broadcast to All: The push will be sent to all currently registered and future registered online users of the app.
- User Segments: Supports customizing user segments based on rules and pushing to those segments.
- registrationID: Up to 1000 per push.
Message Content
Our in-app messaging system supports three fixed models: interstitial, banner, and full-screen, which can be switched using buttons. Templates can also be created by writing your own HTML code.
- Message Content:
- Message Image:
- Image URL: Supports network images.
- Image Action: Use a web link or deep link to direct your users to an external page or a specific page in your app. Supports selecting Jump to URL, Open Deeplink, Push Enable Prompt, and No Action.
- Jump to URL
- Open Deeplink
- Push Enable Prompt: If the user previously denied permission in the native prompt, the click action will open the device settings for your app. If the user has already enabled notification permissions, the device settings for the app will not be opened.
- No Action: When this option is selected, the pop-up disappears when the user clicks.
- Text Title:
- Message Title: Supports setting bold, font size, position, and font color.
- Text Content:
- Message Content: Supports setting bold, font size, position, and font color.
- Supports adding push titles and push content in multiple languages. We automatically detect the end user's device language. If no other language is set, content in the [Default] language setting will be sent to all target users.
- Action Buttons: If you are sending marketing or advertising information, please ensure the page has a prominent one-click close function.
- Supports setting a primary button and a secondary button.
- Button names and button actions can be customized. For button actions, refer to the image actions above.
- Close Button: Closes the current page when clicked. Supports setting it at the bottom center or top right.
- Message Image:
Send Timing
- Send Time: Select when to send.
- Immediate: Deliver the message immediately.
- Scheduled: The send time must be at least 3 minutes later than the current time, and scheduled tasks cannot exceed one year.
- Rate-Limited Push: Complete the push within the set time to reduce server pressure.
Advanced Settings
- Delayed Pop-Up:
- Pop Up Immediately: The in-app message will pop up on the page immediately when conditions are met.
- Delayed Pop-Up: Supports setting "pop up ** seconds after staying on the page," with a default of 3 seconds; also supports setting "pop up ** seconds after the previous in-app message popped up," with a default of 3 seconds.
- Dismissal Timing: By default, it disappears after a certain period of time. It can be changed to require the user to manually close the pop-up before it disappears.
- Disappear After a Certain Time: The default time for banner messages is 5 seconds; interstitial and HTML messages disappear after 30 seconds by default. The configurable range is 5 to 180 seconds. If a full-screen message has a skip button and skip time configured, it is not controlled by this setting.
- User Manually Closes: If this option is selected, the close button must be enabled. If it is not enabled, the system will automatically enable it.
- Message Display Validity Period: This means the user must come online and enter the display page within this duration for the message to be displayed normally; otherwise, it expires.
- If a push sent to a user finds that user currently offline, the message will be saved as an offline message before the display end time and pushed again the next time the user comes online.
- If a message has already been delivered to the app, but the end user has not entered the specified page, then after the display end time has passed, the in-app message will no longer be displayed even if the user enters the page.
- Additional Parameters: Used for client-side custom event processing.

A/B Testing
Go to [Create Push] - [A/B Testing] to create a push task. The parameter configuration instructions are as follows:

- Message Name: Customize the message name for this A/B test for easier management and retrieval later.
- Select Platform: Currently supports Android and iOS platforms. On iOS, you can select either the development environment or production environment. If no platform is selected, the A/B group message content will display a dual-platform preview by default. After selecting a platform, the corresponding platform configuration settings will be added under Advanced Settings.
A/B Group Message Content Configuration
The message content configuration for A/B groups is the same as for Notification Message, supporting settings such as multilingual content, notification title, subtitle, content, additional fields, click behavior, and advanced styles.
Group B supports one-click copying of all settings from Group A for quickly building comparison content.
Group B supports one-click copying of Group A settings. You can click one-click copy and then make changes based on Group A.

Target Audience
The EngageLab push platform supports multiple target audience selection methods, making it convenient for developers and operations teams to precisely reach users based on different business needs. For testing, it is recommended to use the registrationID obtained from the registration logs. For detailed configuration, refer to Notification Message.
A/B Test Settings

Among users who simultaneously meet the target audience conditions and platform conditions (MacOS/Android), set the percentage of users participating in the A/B test.
The user ratio for Groups A and B participating in the test is equal. For example, if the user ratio is 40%, then the user ratio for Groups A and B will each be 20%.
The final calculated number of users is rounded down to an integer. If the target number of participants in the A/B test is fewer than 2, the push will fail.
Send Time and Advanced Settings
The send time and advanced settings for A/B group pushes are the same as for Notification Message. For detailed configuration instructions, refer to Notification Message.
Android Configuration

Notification Delivery Policy: You can specify the preferred delivery strategy between vendor channels and the EngageLab channel. When selecting a vendor strategy, ensure that the vendor channel has been configured successfully.
- You need to set the priority when FCM and mobile vendor channels coexist.
Advanced Attribute Settings: You can choose a general alert template or a custom template to meet notification style requirements in different business scenarios. The badge number (
badge_add_num) setting takes effect only on Huawei EMUI 8.0 and above and Xiaomi MIUI 6 and above devices.
For different Android vendors, EngageLab supports personalized configuration of push parameters. Please fill in the specific fields according to each vendor's push specifications and the detailed instructions in the page prompts.
iOS Configuration

EngageLab supports personalized configuration of push parameters. Please fill in the specific fields according to each vendor's push specifications and the detailed instructions in the page prompts.
- Notification Alert Template: You can choose a general alert template or a silent message template. Click Create New Message Template to add a custom template.

- Badge Number: You can set the badge number on the app icon, supporting either System Default or a custom specific value, suitable for scenarios such as unread message counts.
Send Preview
After completing all configurations, click the Send Preview button at the bottom of the page to view the actual display effect of the current notification template. After confirming that everything is correct, click Confirm Send to send the push message to the test audience.

After the message is sent, you can view the detailed effectiveness analysis of this A/B test on the Push Records page.
