In order to improve the end user push experience and create a good and sustainable notification ecology, major vendors have been limiting the frequency of pushed messages according to classification.
Introduction
Classify and manage messages based on push content, and you can customize the Channel ID.
Applies to all Android channels
Create a client-side custom channel
Send the corresponding channel ID when pushing
Parameter
Type
Required
Examples
Description
channelId
String
No
channelId: "channelIdTest"
Android notification channelId
If you need to deliver vendor channel important level messages, please refer to the usage guide for each vendor message classification below.
Huawei Classification
Vendor's instructions on message classification
According to the message content, Huawei Push classifies notifications into two categories: Service and Communication, and Information Marketing. It also manages the notification methods and message styles of different types of messages as follows:
Message Type | Service and Communication | Information Marketing |
Push content | Including social communication messages and service reminder messages | Including information messages and marketing messages, which refers to event information, content recommendations, information, etc. sent by operators to users |
Notification method (EMUI 10.0 or later) | Lock screen, ringtone, vibration | Silence notifications, which only display messages in the drop-down notification bar |
Message style | Text + small image | Text only |
Push quantity | Unlimited | Starting from 2023.01.05, the daily push limit for information marketing messages will be managed based on application type. For more information, see Push quantity limit requirements for different application types. |
Configuration method | You need to apply for self-classification rights from Huawei. After the review is passed, the classification information provided by developers will be trusted. Messages are not subject to intelligent classification. | Default value |
Classification Method
Message intelligent classification
The intelligent classification algorithm automatically classifies your messages based on multiple dimensions such as the content you send.
Message self-classification
Starting from July 1, 2021, Huawei Push Service began to receive applications for self-classification rights and interests of developers. After the application is successful, developers are allowed to classify messages according to Huawei push classification specifications.
Huawei Message Classification Application
For more information about self-classification application, see Huawei message classification management solution.
If the application does not have a self-classification benefit, the push messages of the application are automatically classified by using intelligent classification.
If an application has a self-classification benefit, it trusts the classification information provided by the developer. Messages are not subject to intelligent classification.
Connecting with Harmony message classification and parameter enumeration on mPaaS MPS (thirdChannelCategory.hms)
Pass parameter (string) | Description |
1 | IM: Instant Message |
2 | VOIP: Voice Over Internet Protocol |
3 | SUBSCRIPTION: Subscription |
4 | TRAVEL: Travel |
5 | HEALTH: Health |
6 | WORK: Work item reminder |
7 | ACCOUNT: Account dynamics |
8 | EXPRESS: Order&Logistics |
9 | FINANCE: Finance |
10 | DEVICE_REMINDER: Device reminder |
11 | SYSTEM_REMINDER: System prompt |
12 | MAIL: Mail |
13 | PLAY_VOICE: Voice broadcast (only transparent message support) |
14 | MARKETING: Content recommendations, news, financial updates, life information, social updates, research, product promotions, feature recommendations, operational activities (only content is marked and will not speed up message sending) |
Connecting HMS message reminder level parameter enumeration on mPaaS MPS (notifyLevel.hms)
Pass parameter (string) | Description |
1 | LOW: Indicates that the expected reminder mode of the notification bar message is silent reminder. After the message arrives at the phone, there is no ringtone or vibration. |
2 | NORMAL: Indicates that the expected notification mode of the notification bar message is a strong reminder. After the message arrives at the phone, the user is reminded by ringing or vibrating. The actual message reminder mode of the terminal device will be adjusted according to the value of the category field or the result of smart classification (default value). |
Parameter passing example
Parameter name | Type | Required | Examples | Description |
thirdChannelCategory | Map | No | thirdChannelCategory: {"hms": "9"} | In the example, a value of "9" indicates a HUAWEI FINANCE type message. For more information about other values, see Vendor Message Classification |
notifyLevel | Map | No | notifyLevel: {"hms": "1"} | The value of "1" in the example indicates that the expected reminder mode of the notification bar message is silent reminder. After the message arrives at the phone, there is no ringtone or vibration. |
HONOR Classification
Vendor's instructions on message classification
Based on the content of the message, Huawei Push classifies the notifications into two categories: service and communication and information marketing, as follows:
Message Type | Service and Communication | Information Marketing |
Push content | including social communication messages and service alert messages. | Including information messages and marketing messages, which refers to event information, content recommendations, information, etc. sent by operators to users |
Notification method | Lock screen display + drop down notification bar display, support ringtone, vibration | Silent notifications to display messages only in the drop-down notification bar |
Message style | Text + small image | Text only |
Push quantity | Unlimited | Information marketing messages manage the upper limit of the daily push quantity based on the application type,
|
Classification Method
Message intelligent classification
The intelligent classification algorithm automatically classifies your messages based on the content you send and other factors.
Message self-classification
Allows developers to classify messages based on message classification specifications.
Connecting with HONOR message classification and parameter enumeration on mPaaS MPS (thirdChannelCategory.HONOR)
Pass parameter (string) | Description |
1 | Service and communication category |
2 | Information marketing category |
Parameter passing example
Parameter | Type | Required | Examples | Description |
thirdChannelCategory | Map | No | thirdChannelCategory: {"HONOR": "1"} | The example passes a value of "1" to indicate a communication message of the HONOR service. |
Xiaomi Message Classification
Vendor's instructions on message classification
According to the New Rules for Classifying Xiaomi Push Messages, Xiaomi Push classifies messages into two categories: Private Messages and Public Messages. If you choose not to access private messages or public messages, the application is connected to the default channel.
Message Type | Default value | Public Message | Private Message |
Push content | You can follow the public trust scenario description of Xiaomi. | Hot news, new product promotion, platform announcements, community topics, award-winning activities, etc., multi-user universal content | Chat messages, personal order changes, courier notifications, transaction reminders, IoT system notifications, and other content related to private notifications |
Notification method | Not provided | N/A. | Ring, vibration |
Push quantity limit | 1 times | 2-3 times. For more information, see Public trust restrictions. | Unlimited |
User receive quantity limit | 1 entry per day for a single device for a single application | Single application single device single day 5-8 | Unlimited |
Application method | No need to apply | You must apply on the Xiaomi Push platform. For more information, see Channel application and access methods. | |
Xiaomi message classification application
For more information, see Channel application and access method in the official Xiaomi documentation.
Connecting with Xiaomi message classification and parameter enumeration on mPaaS MPS
Parameter | Type | Required | Examples | Description |
miChannelId | String | No | miChannelId:"miChannelIdTest" | The channelId of the push channel of the Xiaomi vendor |
OPPO Message Classification
Old messages classification
Vendor's description on message classification
Message Type | Private | Public |
Push content | For information that users have a certain degree of attention and hope to receive in time, such as instant chat information, personal order changes, express notification, subscription content updates, comment interaction, member points changes, etc. | Public trust is aimed at users' low attention and no psychological expectation for receiving such information, such as hot news, new product promotion, platform announcements, community topics, award-winning activities, etc., and multi-user universal content |
Push quantity limit | Unlimited | There are public channel sharing push times, after reaching the push limit on the same day, all public channel will no longer push messages; Push limit: when the cumulative number of users is less than 50000, it is calculated by 100000; When the cumulative number of users is greater than or equal to 50000, it is calculated by the cumulative number of users * 2 |
Single-user push limit (log/day) | Unlimited |
|
Configuration methods |
| Enable by default |
OPPO private channel application
After the private application email is passed, you need to register the channel on the OPPO push platform and set the corresponding attribute of the channel to private
Connecting with OPPO message classification and parameter enumeration on mPaaS MPS
Parameter | Type | Required | Examples | Description |
channelId | String | No | channelId:"channelIdTest" | OPPO private channel channelId |
New messages classification
Vendor's description on message classification
OPPO PUSH divides messages into two categories and provides corresponding permissions based on the user's attention to different categories of messages:
Message Type | Defining scope | Push content direction | Notification method | Number of messages |
Communications and Services |
|
| The default is <Notification bar, Lock screen>; it can be upgraded to <Notification bar, Lock screen, Banner, Ringtone, Vibration> as a strong reminder method (Need to apply). | There is no limit on the sending and receiving amount. |
Content and Marketing | Content or product promotion notifications proactively sent by developers to users. | Content recommendations, platform activities, social dynamics, etc. | Only displayed in the pull-down notification bar. | The number of push notifications per day and the number of messages a single user can receive are limited. For details, please refer to Push Service Restrictions. |
The new message classification capability currently supports system versions OS13 and above, and will be gradually compatible with OS12 and below in the future.
The default reminder method for communication and service messages is <Notification bar, Lock screen>. You can apply for a strong Notification method of <Notification bar, lock screen, banner, ringtone, vibration> according to the rules and needs. Strong Notification method will cause a certain degree of disturbance to users, so please apply and use them with caution.
Enable OPPO new message classification
To enable OPPO new message classification, please refer to New message classification integration process.
Connecting with OPPO message classification and parameter enumeration on mPaaS MPS (thirdChannelCategory.oppo)
Pass parameter (string) | Description |
1 | IM: instant chat, audio, video calls |
2 | ACCOUNT: Personal account and asset changes |
3 | DEVICE_REMINDER: Personal device notification |
4 | ORDER: Individual order/express status changes |
5 | TODO: Personal schedule/to-do |
6 | SUBSCRIPTION: Personal subscription |
7 | NEWS: News |
8 | CONTENT: Content recommendation |
9 | MARKETING: Platform activities |
10 | SOCIAL: Social dynamics |
Connect to OPPO message notification level parameter enumeration on mPaaS MPS (notifyLevel.oppo)
Pass parameter (string) | Description |
1 | Notification Bar |
2 | Notification bar + Lock screen |
16 | Notification bar + Lock screen + Banner + Vibration + Ringtone |
If the user has not enabled the OPPO new message category, there is no need to pay attention to this field.
If the user has enabled the OPPO new message category and the
notifyLevel.oppoparameter is passed, the correspondingthirdChannelCategory.oppoparameter cannot be empty.
Parameter passing example
Parameter | Type | Required | Examples | Description |
thirdChannelCategory | Map | No | thirdChannelCategory: {"oppo": "7"} | The example value is "7" for news information. For other values, see Vendor Message Classification. |
notifyLevel | Map | No | notifyLevel: {"oppo": "2"} | The example value "2" means "Notification bar + Lock screen". For other values, see Notification bar message. |
vivo Message Classification
Vendor's instructions on message classification
Valid users for which notifications are enabled: The push-sdk subscription for application integration is successful, and the device has the permission to enable notifications for networking within the last 14 days.
If the number of active users on notification is less than 10000, the operation message magnitude is 10000 by default.
The number of valid users with enabled notifications and the magnitude of operational messages that can be sent can be queried in the push operation background.
The push quota is calculated based on the number of arrivals. If the number of arrivals on the current day exceeds the limit, it is included in the control.
Message Type | System Message | Operation Message |
Push content | Messages that users need to know in a timely manner, such as instant messages, emails, reminders set by users, and notifications such as logistics | Messages that users pay less attention to, such as: content recommendations, activity recommendations, social updates and other notifications |
Notification bar permissions |
|
|
Push quantity limit | Three times the number of valid users who are notified. You can apply for unlimited message permissions by email. For more information, see Push message limits. |
|
User receive quantity limit | Unlimited |
|
Connect to vivo's secondary message classification parameter enumeration (thirdChannelCategory.vivo) on mPaaS MPS
Pass parameter (string) | Description |
1 | IM Point-to-point chat messages (private messages, group chats, etc.) between users, including pictures, file transfers, audio (or video) calls in chat messages, not include private messages from unfollowed people, official accounts, or private messages or advertisements and email reminders pushed to users by merchants in batches |
2 | ACCOUNT Account changes: account online and offline, status changes, information authentication, membership expiration, renewal reminders, balance changes, etc. Asset changes: real asset changes under the account, typical operator reminders such as transaction reminders, phone bill balance, traffic, voice duration, SMS quota, etc. |
3 | TODO TODO is related to personal schedule and needs to remind users of something to deal with.
|
4 | DEVICE_REMINDER
|
5 | ORDER Order-related information in various goods and services such as e-commerce shopping and gourmet group purchases is pushed to users.
|
6 | SUBSCRIPTION Users actively subscribe to follow and expect to receive messages at specific times:
Important To apply for subscription messages, you must meet the following requirements and provide complete proof:
|
7 | NEWS Newly occurring and valuable factual news content. |
8 | CONTENT Content-based information recommendations include hot searches, reviews, advertisements, books, music, videos, live broadcasts, courses, programs, game promotions, community topics, etc. as well as:
|
9 | MARKETING
|
10 | SOCIAL
|
Connecting with vivo message classification and parameter enumeration on mPaaS MPS
Parameter | Type | Required | Examples | Description |
classification | String | No | classification:"1" | The type of messages used to pass the vivo push channel:
If this parameter is not specified, the default value is 1 |
thirdChannelCategory | Map | No | thirdChannelCategory: {"vivo": "1"} | In the example, a value of "1" indicates a vivo IM type message |
The classification parameter "0" represents the operation message, which is directly deducted from the total amount of operation messages without secondary correction by intelligent classification, and is controlled by the frequency limit of the number of pieces received by the user.
In the classification parameter, "1" indicates a system message. After the intelligent classification is corrected twice, if the intelligent classification identifies that the message is not a system message, it is automatically corrected to an operation message and the amount of the operation message is deducted. If the message is identified as a system message, the amount of the operation message is deducted from the total amount of the system message.
Java sample code for MPS to connect to manufacture message classification
The vendor's message classification push parameter recommendations are all uploaded, and MPS will encapsulate the corresponding vendor classification parameters according to the device type.
DefaultProfile.addEndpoint("cn-hangzhou", "mpaas", "mpaas.cn-hangzhou.aliyuncs.com");
// Create and initialize a DefaultAcsClient instance.
// The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use a RAM user to call API operations or perform routine O&M.
// We recommend that you do not hard code your AccessKey ID and AccessKey secret in your project code. Otherwise, the AccessKey pair may be leaked and the security of all resources within your account is compromised.
// In this example, the AccessKey ID and AccessKey secret are saved as environment variables. You can also save the AccessKey pair in the configuration file based on your business requirements.
// We recommend that you configure environment variables first.
String accessKeyId = System.getenv("MPAAS_AK_ENV");
String accessKeySecret = System.getenv("MPAAS_SK_ENV");
DefaultProfile profile = DefaultProfile.getProfile(
"cn-hangzhou", // The region ID.
accessKeyId,
accessKeySecret);
IAcsClient client = new DefaultAcsClient(profile);
// Create an API request and set parameters
PushSimpleRequest request = new PushSimpleRequest();
request.setAppId("ONEX570DA89211721");
request.setWorkspaceId("test");
request.setTaskName("Test task");
request.setTitle("Test");
request.setContent("Test");
request.setDeliveryType(3L);
Map<String,String> extendedParam = new HashMap<String, String>();
extendedParam.put("key1","value1");
request.setExtendedParams(JSON.toJSONString(extendedParam));
request.setExpiredSeconds(300L);
request.setPushStyle(2);
String imageUrls = "{\"defaultUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"oppoUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"miuiUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"fcmUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"iosUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\"}";
String iconUrls = "{\"defaultUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"hmsUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"oppoUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\",\"miuiUrl\":\"https://pre-mpaas.oss-cn-hangzhou.aliyuncs.com/tmp/test.png\"}";
request.setImageUrls(imageUrls);
request.setIconUrls(iconUrls);
request.setStrategyType(2);
request.setStrategyContent("{\"fixedTime\":1630303126000,\"startTime\":1625673600000,\"endTime\":1630303126000,\"circleType\":1,\"circleValue\":[1, 7],\"time\":\"13:45:11\"}");
Map<String,String> target = new HashMap<String, String>();
String msgKey = String.valueOf(System.currentTimeMillis());
target.put("user1024",msgKey);
request.setTargetMsgkey(JSON.toJSONString(target));
// The manufacture message category field.
// Encapsulate the VIVO message classification level 1 category.
request.setClassification("1");
// Encapsulate Huawei message classification, HONOR message classification, and VIVO message classification level 2 category
Map<String, String> map = new HashMap<>();
map.put("hms", "2");
map.put("vivo", "3");
map.put("HONOR", "1");
pushSimpleReq.setThirdChannelCategory(map);
// Encapsulate the Xiaomi message classification.
pushSimpleReq.setMiChannelId("miChannelIdTest);
// Encapsulate the OPPO message classification.
pushSimpleReq.setChannelId("channelIdTest");
// Initiate the request and handle the response or exceptions
PushSimpleResponse response;
try {
response = client.getAcsResponse(request);
System.out.println(response.getResultCode());
System.out.println(response.getResultMessage());
} catch (ClientException e) {
e.printStackTrace();
}