Vendor channel push limits and message classification

更新时间:
复制 MD 格式

Push deliveries can fail because vendor channels have different push limitations and some vendors categorize messages. To prevent these failures, understand the push limitations of each vendor and, where required, apply for message categories for your application to meet their platform requirements. This article outlines best practices for vendor channel push limitations and message categories.

Vendor push limits and message classification

Vendor

Message type

Total daily push limit

Per-device reception limit

Other limits

Huawei

Service and communication message

Unlimited

Unlimited

  1. Managed by message classification.

  2. You must apply for self-classification permission.

  3. If an app sends more than 3,000 messages to a single device per day, any additional messages are throttled and discarded for 24 hours.

  4. Huawei's channel is used as a custom notification channel to manage notification display, not for message classification.

  5. QPS limits apply. Applications to increase QPS are supported.

Information and marketing message

Unlimited

News (level-3 classification is News): 5 messages

Others: 2 messages

Honor

Service and communication message

Unlimited

Unlimited

  1. Managed by message classification.

  2. Honor does not support custom notification channels.

  3. QPS limits apply. Applications to increase QPS are not currently accepted.

Information and marketing message

Unlimited

News (level-3 classification is News): 5 messages

Others: 2 messages

Xiaomi

Private message

Unlimited

Unlimited

  1. Managed by message classification.

  2. You must apply to send private messages.

  3. The management console supports querying quotas.

  4. Xiaomi's channel is used for message classification.

  5. Push permission depends on the app's release status.

  6. Applications to increase QPS are not currently accepted.

Public message

Calculated by multiplying the number of active users with notifications enabled on MIUI by a multiplier (default: 2).

5 to 8 messages per app, per device, per day.

Default

1 message per app, per device, per day.

OPPO

Communication and Service (formerly private messages)

Unlimited

Unlimited

  1. Managed by message classification.

  2. You must apply for permission to send Communication and Service messages (formerly private messages).

  3. You must apply to use strong reminders with the new message classification.

  4. The management console supports querying quotas.

  5. The new message classification does not support custom notification channels. The OPPO channel is used for the legacy message classification.

  6. Applications to increase QPS are not currently accepted.

Content and Marketing (formerly public messages)

If cumulative user count is less than 10,000, the daily limit is 20,000. If it is 10,000 or more, the daily limit is cumulative user count × 2.

News (level-3 classification is News): 5 messages

Other app types: 2 messages.

vivo

System message

3 times the number of active users with notifications enabled

Unlimited

  1. Managed by message classification.

  2. You can request an unlimited quota for system messages separately.

  3. News apps must apply for specific quota and frequency limits.

  4. Push time restrictions apply.

  5. You can query the remaining daily push quota.

  6. vivo does not support custom notification channels.

  7. Push permission depends on the app's release status.

  8. Applications to increase QPS are not currently accepted.

Operational message

News (level-3 classification is News): 3 times the number of active users with notifications enabled

Others: 2 times the number of active users with notifications enabled

News (level-3 classification is News): 5 messages

Others: 2 messages

Meizu

/

/

After 4 messages, subsequent messages are collapsed.

  1. Not managed by message classification.

  2. Applications to increase QPS are supported.

Google

/

/

/

  1. Not managed by message classification.

  2. Applications to increase QPS are not currently accepted.

HarmonyOS

Service and communication message

Unlimited

An app's total daily messages to a single device—including service, marketing, and other types—is limited to 3,000.

  1. Managed by message classification.

  2. You must apply for self-classification permission.

  3. If an app sends more than 3,000 messages to a single device per day, any additional messages are throttled and discarded for 24 hours.

  4. You must create a notification channel when sending messages through Alibaba Cloud's online service.

Information and marketing message

Unlimited

News (requires an Internet News Information Service License): 5 messages

Others: 2 messages

APNs

/

/

/

  1. Not managed by message classification.

  2. Applications to increase QPS are not currently accepted.

HUAWEI

Push limits

Push limit

According to its Push Quantity Management Rules, Huawei uses a message classification system to manage the number of notifications by category. As of January 5, 2023, daily pushes for information and marketing messages are capped by application type, while service and communication messages have no daily limit:

Message type

Daily push limit

User daily limit per app

Service and communication messages

Unlimited

Unlimited

Informational and marketing messages

Unlimited

News (Requires Internet News Information Service License): 5 messages

Others: 2 messages

Important

As of September 15, 2023, a new Huawei policy governs all notifications on its devices, regardless of an app's online or offline status. This includes limits on the number of notifications sent and how they are displayed. For details, see New Control Rules and Adaptation for Huawei Push Service.

Push rate QPS limit

QPS is calculated by multiplying the MAU for an application in the Huawei channel by the application category weight and the overall allocation coefficient.

  • MAU: monthly active users.

  • application category weight: If your application is not published on HUAWEI AppGallery, it is classified as Default, with a weight of 1.

  • overall allocation coefficient: A dynamic coefficient used for QPS calculation. You do not need to calculate this value, as you can view it in AppGallery Connect. For instructions, see the Huawei FAQ document.

  • If your application's calculated QPS is less than 6,000, the system applies a default QPS of 6,000. High overall network traffic may also trigger system-level flow control. For more information, see message control issues.

To request a QPS adjustment, please email Huawei at hwpush@huawei.com.

Message classification

According to the Message Classification Standard, Huawei Push Kit classifies notification messages as: Promotional Information and Service & Communication.

Message classification

1. Specific message types

  1. Follow the process in the Huawei self-categorization privilege application to apply for one or more category parameters.

  2. The Huawei channel offers two self-categorization privilege parameters: importance and category.

  • importance: Specifies the notification method. NORMAL indicates an important message, and LOW indicates a low-priority message.

  • category: Consists of the cloud notification category and local notification category. The delivery behavior is as follows:

    • If values are provided for both the cloud and local notification categories, specify only the cloud notification category value. Push result: Messages are delivered through the Alibaba Cloud channel when the app is online and through the Huawei channel when the app is offline.

    • If the cloud notification category is "Not involved" and a value is provided for the local notification category, specify only the local notification category value. Messages are delivered exclusively through the Alibaba Cloud channel.

    • If the local notification category is "Not supported" and a value is provided for the cloud notification category, specify only the cloud notification category value. Messages are delivered exclusively through the Huawei channel.

Category

Sub-category

Type

Cloud category value

Local category value

Notification method

Service and communication

Social communication

IM

IM

CATEGORY_MESSAGE

These notifications appear on the lock screen with a ringtone and vibration. Their NORMAL importance level classifies them as important messages.

VoIP

VoIP

CATEGORY_CALL

Service reminders

Subscription

SUBSCRIPTION

Not supported

Travel

TRAVEL

CATEGORY_NAVIGATION

Health

HEALTH

Not supported

Work item reminders

WORK

CATEGORY_REMINDER

Account activity

ACCOUNT

Not supported

Order and logistics

EXPRESS

Not supported

Finance

FINANCE

CATEGORY_SERVICE

Device reminder

DEVICE_REMINDER

Not supported

Email

MAIL

CATEGORY_EMAIL

Alarm/timer

Not applicable

CATEGORY_ALARM

Stopwatch

Not applicable

CATEGORY_STOPWATCH

Progress

Not applicable

CATEGORY_PROGRESS

Location sharing

Not applicable

CATEGORY_LOCATION_SHARING

Information and marketing

Content information

Content recommendation

MARKETING

CATEGORY_RECOMMENDATION

These notifications are delivered silently and appear only in the notification drawer. Their LOW importance level classifies them as general (silent) messages.

News

Financial updates

Lifestyle information

Surveys

Other

Social updates

CATEGORY_SOCIAL

Marketing campaigns

Product promotion

MARKETING

CATEGORY_PROMO

Feature recommendation

Promotional events

2. High-priority pass-through scenario

This feature requires special permissions from the Huawei platform. See Apply for Special Permissions for details. Possible values for category are VOIP (audio and video call) and PLAY_VOICE (voice broadcast).

Message classification

  1. Prerequisites: You have integrated the Android SDK and the Huawei push channel.

  2. Once your application for the Huawei self-classified messaging permission is approved, use the EMAS console or OpenAPI to send categorized push notifications.

Pushing from the EMAS console

To send a push notification using the push service in the EMAS console, navigate to vendor settings > notification channels and notification categories, select the Huawei channel, and then choose the appropriate message type.

image.png

OpenAPI push

When calling the advanced push API, pass the following parameters:

  • AndroidMessageHuaweiCategory: Specifies the category value for a cloud notification or local notification on the Huawei channel.

  • AndroidNotificationHuaweiChannel: Specifies the importance parameter for the Huawei channel.

  • Typically, you only need to pass the AndroidMessageHuaweiCategory parameter. If you want to send service and communication messages as silent notifications (with no ringtone or vibration), you can also add the importance field and set its value to LOW.

Other settings

Test message

1) To call the advanced push API, set the following parameters:

  • AndroidHuaweiTargetUserType = 1: Enables direct push. Each application can send up to 500 test messages per day, which are not subject to the daily push limit.

image.png

  • AndroidTargetUserType=1: Setting this parameter is equivalent to setting the AndroidHuaweiTargetUserType, AndroidHonorTargetUserType, and AndroidVivoPushMode parameters simultaneously.

image.png

For this example, select Java. For this example, select . Select the JAR package and then select the uploaded version. Set arguments for the startup command. Configure environment variables for the application. The values of these variables can be accessed from your code.

2) To send a push notification using the EMAS console push service, navigate to vendor settings and disable the production notification for the Huawei channel.

image.png

Honor

Push limits

Push quota

Honor Push Service uses the message classification standard to classify notification messages into two categories: information and marketing, and service and communication. The following table lists the message limits.

Message type

Overall daily limit

Per-user daily limit

Service and communication

Unlimited

Unlimited

Information and marketing

Unlimited

news (level-3 category): 5 messages

others: 2 messages

QPS limit

The QPS is 3,000.

Honor is not currently accepting increase requests.

Message classification

To enhance the push experience for end users, Honor Push Service classifies push messages. For more information, see the Honor Message Classification Standard.

Note

Applications must apply for self-classification rights on the Honor Developer Service Platform by December 31, 2024, to classify and manage push messages.

If an application has not applied for self-classification rights, or if it has self-classification rights but a push message does not include the importance field, the message is automatically classified as News and Marketing Messages.

Message classification

  1. Honor Push Service classifies push messages into two categories based on application type, message content, and sending scenario: service and communication messages (NORMAL) and news and marketing messages (LOW). The classification parameter is importance.

  2. Based on the message classification, each category has a different notification method and importance value:

Message type

Value

Notification method

System notification

NORMAL

Displays on the lock screen and in the notification drawer, with ringtone and vibration.

Marketing notification

LOW

Displays as a silent notification in the notification drawer only.

  1. Honor Push Service handles message classification in two ways:

  • Intelligent message categorization

    • An intelligent algorithm automatically categorizes your messages based on factors such as app type and message content, according to the classification standards.

  • Manual message categorization

    • Developers can manually categorize messages according to the classification guidelines. To apply for this capability, see Application for Manual Categorization.

    • Manual message categorization is currently the default for all messages. As the Honor Push Service evolves, these classification methods will be updated. For more information, see Honor Message Categorization Standard.

Message classification

  1. Prerequisites: Complete the Android SDK integration and the Honor channel integration.

  2. Once your application for Honor self-classified messaging is approved, send categorized messages using the EMAS console or OpenAPI.

EMAS console push

To send a push notification using the EMAS console push service, go to Vendor Configurations - Notification Channel and Notification Category, select the Honor channel, and choose the corresponding message type.

  • For informational and marketing messages, importance is LOW. By default, they appear as silent notifications, appearing only in the notification shade.

  • For service and communication messages, importance is NORMAL. By default, they appear on the lock screen and in the notification shade.

image.png

OpenAPI push

When calling the advanced push API, pass the following parameters:

  • When AndroidNotificationHonorChannel is set to LOW, the message is classified as a marketing and promotional message and delivered as a silent notification by default, appearing only in the notification drawer.

  • When AndroidNotificationHonorChannel is set to NORMAL, the message is classified as a service and communication message and displayed on the lock screen and in the notification drawer by default.

Additional settings

Send test message

1. To call the Advanced Push API, set the following parameters:

  • AndroidHonorTargetUserType = 1: Direct push. Each application can send 500 test messages per day, and these messages do not count against the daily push limit.

image.png

  • AndroidTargetUserType=1. This has the same effect as setting the AndroidHuaweiTargetUserType, AndroidHonorTargetUserType, and AndroidVivoPushMode parameters.

image.png

2) When using the EMAS console push service to send a push notification, go to vendor settings and turn off the production notification for the Honor channel.

image.png

Xiaomi

Push limits

Push quantity limit

Effective February 1, 2023, under the New Mi Push Message Classification Rules, Mi Push will require messages to be classified into two categories: private messages and public messages. If an application does not specify a category, its messages are sent through the default channel.

Message type

Total daily push limit

Daily message limit per user per app

default

1x

1 message

official public message

With an Internet News Information Service License: 3x

Others: 2x

With an Internet News Information Service License: 8 messages

Others: 5 messages

private message

Unlimited

Unlimited

Note
  • The total daily push quota for formal messages is calculated using the formula: notification-enabled installation count on MIUI × multiplier. The default multiplier is 2. For applications that have an Internet News Information Service License, the multiplier is 3. If the notification-enabled installation count is less than 10,000, it is treated as 10,000.

  • A notification-enabled installation on MIUI is defined as an installation where a user has activated the application and manually enabled the main notification switch.

  • The daily push quota is based on the delivery count. Exceeding this quota triggers throttling.

QPS limit for push rate

Mi Push tiers an app's push rate (QPS) primarily based on the number of installations with notifications enabled.

QPS: The number of requests per second. Each request can contain up to 1,000 target devices. For example, at 3,000 QPS, you can push to up to 3 million devices per second.

QPS is tiered based on the number of devices that have notifications enabled:

Enabled notification switches

QPS

≥10,000,000

3,000

≥5,000,000 and <10,000,000

2,500

≥1,000,000 and <5,000,000

2,000

≥100,000 and <1,000,000

1,000

<100,000

500

Xiaomi is not currently accepting requests for QPS increases.

Application publishing limitations

Your app must be published before you can enable the Xiaomi push service.

Message classification

If your push quota is insufficient, you can optimize your push policy. Alternatively, if any of your messages qualify as private messages, you can request access to the private message feature. Once enabled, these messages will bypass push limits.

Important

For the Xiaomi channel, each application is limited to 8 channels. Please plan accordingly.

Message classification

According to the Xiaomi Push Message Classification Rules, Xiaomi Push classifies messages as either private messages or public messages. If an application does not specify a message category, it uses the default channel.

If you need a higher message quota (for example, if many users report not receiving messages), you can request an increase from Mi Push. For instructions, see Mi Push Message Quota Appeal.

Message classification

  1. Prerequisites: You have completed Android SDK integration and Xiaomi channel integration.

  2. Once your application for a Xiaomi self-classified message is approved, a corresponding channel_id is automatically generated. You can use the EMAS console and OpenAPI to push classified messages.

EMAS Console push

When using Mobile Push in the EMAS console to send a notification, go to Third-party Settings - Notification Channels and Categories, select the Xiaomi channel, and enter the channel_id of the approved channel. If you leave this field blank, the default channel is used.

image.png

OpenAPI push

When calling the push advanced API, specify the parameters:

  • AndroidNotificationXiaomiChannel is the channel_id provided after your message classification request is approved; if omitted, the default channel is used.

Private message template

Application template

As announced in the Xiaomi notice on new push rules for message templates, Xiaomi's new message template regulations will take effect at 00:00 on July 1, 2026. The deadline to complete the template integration and upgrade is 23:59 on December 31, 2026. Under these new regulations, you must send all direct messages with both a channel_id and a template ID. If you have already integrated the Xiaomi direct message service, you must complete the template integration and upgrade by December 31, 2026. Failure to meet this deadline will disrupt the delivery of your direct messages.

After applying for a Xiaomi private message template, you can use it to push private messages. To apply for and integrate the template, see Xiaomi push private message template integration instructions.

Private message template

The parameters for pushes sent via the PushV2 and MassPushV2 APIs are located in PushTask under PushTask.Notification.Android.Options.Xiaomi:

  • Channel The channel_id assigned once your application for Xiaomi message classification is approved. This parameter is required when pushing messages using a Xiaomi private message template.

  • TemplateId The Xiaomi private message template ID.

  • TemplateParams The parameters for the Xiaomi private message template, formatted as a JSON object string.

The parameters for the Push and MassPush interfaces are as follows:

  • AndroidNotificationXiaomiChannel The channel_id assigned after your application for a Xiaomi notification channel is approved. This parameter is required when pushing messages with a Xiaomi private message template.

  • AndroidXiaomiTemplateId The Xiaomi private message template ID.

  • AndroidXiaomiTemplateParams The Xiaomi private message template parameters, specified as a JSON object string.

Note

When specifying a template ID, you must also provide the Xiaomi channel. When specifying template parameters, you must also provide a template ID.

OPPO

Push limitations

To improve the user notification experience and maintain a healthy push ecosystem, OPPO PUSH limits the number of pushes and the push rate (QPS). If you exceed these limits, the OPPO platform throttles your pushes and returns an error message in the message receipt. For more information, see OPPO PUSH service limitations.

Push throttling

OPPO offers two types of push permissions: formal permission and test permission. The new message classification system has two categories: Communication and Service and Content and Marketing. Applications that have not adopted the new message classification system default to the legacy Private Message and Public Message categories. The specific limits are as follows:

Push permission

Message category

Application category

Daily push quota

Daily user limit per app

Official permission (For apps published on the OPPO App Market)

Communication and services (formerly private message)

/

Unlimited

Unlimited

Content and marketing (formerly public message)

News (level-3 category)

If the cumulative user count is less than 10,000, the total quota is 20,000. If the cumulative user count is 10,000 or more, the total quota is twice the cumulative user count.

5 messages

Other app types

2 messages

Test permission

(For apps not published on the OPPO App Market)

Communication and services (formerly private message)

/

Not supported

Content and marketing (formerly public message)

/

1,000

2 messages

Note
  1. Cumulative users: The total number of users who have installed and activated the app and enabled the main notification switch within the last 30 days, excluding uninstalled users. This metric is updated daily on the OPPO Push Operations Platform.

  2. If your app is unpublished on the OPPO software store, you must apply for test permissions and add test devices before sending test messages.

  3. If you have formal push permissions, you can also add test devices on the OPPO Push Operations Platform under Configuration Management > Test Devices. The push limit per device does not apply to test messages sent to these devices.

Push QPS limit

OPPO Push sets QPS tiers based on an application's total user count.

QPS (Queries Per Second) is the number of users you can send notifications to per second via OPPO PUSH. For example, a rate limit of 3,000 QPS at the application level means an application can send notifications to up to 3,000 users per second. All interfaces share this application-level rate limit.

Cumulative users

QPS

≥10 million

5,000

≥5 million and <10 million

3,000

<5 million

2,000

Message classification

OPPO currently provides both legacy and new message classification methods. For applications that enabled OPPO Push before November 20, you can use either the new message classification method or the legacy self-built channel. However, for applications that enable OPPO Push on or after November 20, you must use the new message classification method. The legacy self-built channel is no longer supported, and all messages must include the new message classification field for successful delivery.

If your push quota is insufficient, optimize your push policy. Depending on the message type, apply for the new message category or private message channel. Using these channels makes your marketing and public communications more efficient.

New message classification

OPPO push will optimize its message sending channel and message classification, launching a new message classification access method on October 31, 2024.

Message classification

Per the OPUSH Message Classification Rules, OPPO classifies notifications into two main categories: Communication and Service, and Content and Marketing. Messages not classified as Communication and Service default to Content and Marketing. The values and notification methods for different message types are as follows:

Message category

Message type

Category value

Notification method

Notify_level value

Communication and Services

Instant messaging, audio, and video calls

IM

Default: notification bar and lock screen. Can be upgraded to a high-priority notification that also includes a banner, ringtone, and vibration. (Application required. For details, see High-priority Notification Application).

  1. For the default method (notification bar and lock screen), the value is 2.

  2. For the high-priority method (notification bar, lock screen, banner, ringtone, and vibration), the value is 16.

Personal account and asset changes

ACCOUNT

Personal device reminder

DEVICE_REMINDER

Personal order and logistics updates

ORDER

Personal schedule/to-do

TODO

Personal subscription

SUBSCRIPTION

Content and Marketing

News

NEWS

Displays only in the notification bar.

The value is 1.

Content recommendation

CONTENT

Platform activity

MARKETING

Social feed

SOCIAL

New OPPO message classification: Application Process

  1. To use the new message classification feature, you must enable it on the OPPO Push Platform. For details, see Section 3: New Message Classification Integration Process in the Message Classification Rules. Once enabled, all push notifications use the new classification format by default. Assess the impact before you proceed.

  2. If you do not integrate the Communication and Service category, messages default to the Content and Marketing category, and you do not need to apply.

  3. If you need to send messages in the Communication and Service category, you must apply for permission online. For details, see Section 4.1: Default Reminder Application in the Message Classification Rules. After your application is approved, the OPPO Push Platform automatically adds the Communication and Service message category. By default, alerts appear on the notification bar and lock screen. If you already have permission for the legacy private message channel, you do not need to apply again.

  4. If you use the Communication and Service category and also require critical alerts, you can apply according to the rules. For details, see Section 4.2: Critical Alert Application in the Message Classification Rules. A critical alert is delivered to the notification bar and lock screen, and includes a banner, ringtone, and vibration. Because critical alerts can be disruptive to users, please use this feature with caution.

Important

The new OPPO message classification feature currently supports OS 13 and later. We will gradually extend support to OS 12 and earlier versions.

Message classification
  1. Prerequisites: Complete Android SDK integration and OPPO channel integration.

  2. After your application for the new OPPO message classification permission is approved, you can use OpenAPI to send categorized push notifications. We recommend specifying both AndroidMessageOppoCategory and the legacy channel ID to ensure reach for users on older versions.

OpenAPI push method

When you call the advanced push API, pass the corresponding parameters:

  • AndroidMessageOppoCategory: The value for OPPO's category parameter.

  • AndroidMessageOppoNotifyLevel (Optional): The value for OPPO's notify_level parameter. To use this parameter, you must also specify AndroidMessageOppoCategory.

Legacy channel message classification

Legacy channel message classification

Under the legacy OPPO Message Classification Rules, messages are classified into two categories: private messages and public messages. If an application has not implemented message classification, its messages are considered public messages by default and are subject to the corresponding rules. The private message channel has no limits on the number of messages that can be sent or received.

Type

Configuration method

Value

Private message

Once your email request is approved, register the channel on the OPPO Push Platform, setting the channel attribute to private message.

Channel ID

Public message

Enabled by default

/

Requesting private messages:

  1. Follow the instructions in Android 8.0 notification channel settings to create a notification channel and specify its channel ID in your app's code. Then, publish a new app version that includes this channel.

  2. Use the OPPO private message email template to email OPPO and request that the channel be designated as a private message channel.

  3. Register the channel on the OPPO Push Platform and set its corresponding attribute to private message.

Important
  • The channel ID cannot be changed or deleted once set.

  • When you create a private message channel, review the notes on channel adaptation.

  • The private message channel permissions take effect only after the client creation and release is complete, the channel is registered on the OPPO Push Platform, and your email application for private message privileges is approved.

  • The channel creation code examples in Android 8.0 notification channel settings include feature settings like vibration and sound. These settings apply only to notification channels on Android 8.0 and later. For OPPO offline channels, you must configure these features using the custom notification style interface.

Legacy channel message classification
  1. Prerequisites: You have completed the Android SDK integration and the OPPO vendor channel integration.

  1. Once the OPPO direct message channel permission is active, you can use the EMAS console and OpenAPI to push categorical messages.

EMAS console push

To send a push notification from the EMAS console, configure the following settings:

  1. Under Vendor Settings - Notification Channels and Notification Categories, select OPPO Channel.

  2. In the Push Settings section, if you specify a channel ID, offline messages are sent via the OPPO private message channel. If you do not specify a channel ID, they are sent via the OPPO public message channel by default.

image.png

OpenAPI push

When you call the advanced push API, pass AndroidNotificationChannel. This parameter serves two purposes:

  • When the app is online, messages are delivered through the Alibaba Cloud online channel. The AndroidNotificationChannel parameter specifies the client-created notification channel.

  • When the app is offline, messages are delivered through the OPPO vendor channel. The AndroidNotificationChannel parameter specifies the provisioned OPPO private message channel.

Direct message template

Application template

OPPO requires new users to push communication and service messages (previously direct messages) using a message template. Existing users must complete this upgrade by December 31, 2025. To integrate direct message templates, see the OPUSH direct message template validation integration guide.

Direct message template

After your private message template is approved, use the PushV2 and MassPushV2 APIs to send pushes. The relevant parameters can be found in the PushTask object under PushTask.Notification.Android.Options.Oppo:

  • PrivateMsgTemplateId The ID of the private message template.

  • PrivateTitleParameters The title parameters for the private message template.

  • PrivateContentParameters The content parameters for the private message template.

The parameters for the Push API are as follows:

  • AndroidOppoPrivateMsgTemplateId The ID of the private message template.

  • AndroidOppoPrivateTitleParameters The parameters for the private message template's title.

  • AndroidOppoPrivateContentParameters The parameters for the private message template's content.

vivo

Push Limits

Daily push limit

Per the push notification limits, vivo Push classifies messages into two main categories: system message and operational message. If message classification is not implemented, messages are categorized as operational message by default. Each category has different limits:

Message type

Application category

Total push limit

Limit per user

System message

/

3× the number of valid users with notifications enabled

(You can apply for an unlimited quota.)

Unlimited

Operational message

News & Information

(Requires both an Internet News Information Service License and the "News & Information" application category. To apply, see News App Quota and Frequency Permissions.)

3× the number of valid users with notifications enabled

5 messages

Others

2× the number of valid users with notifications enabled

2 messages

Test message

For applications under review on the vivo platform, push permissions are "restricted." You can only send test messages to test devices via the API. You can add up to 20 test devices. Test messages are not subject to volume or frequency limits.

Note
  1. Effective users with notifications enabled are users of a vivo channel-integrated app who have enabled the notification permission and whose device has connected to the internet within the past 14 days.

  2. If the number of effective users with notifications enabled is less than 10,000, the operational message volume defaults to 10,000.

  3. You can check the count of effective users with notifications enabled and the available operational message volume in the vivo push operations console.

  4. The push quota is based on the delivery count. If the daily delivery count exceeds this quota, throttling is triggered.

Application publishing restrictions

If an application is not published on an app store, its push permission will be restricted. You cannot send production messages but can only send test messages to test devices.

When an application is published to a marketplace, it is granted production push permissions. It can send production messages and also send test messages to test devices.

Push time limit

To avoid disturbing users, vivo delivers operational messages only between 7:00 and 23:00. This time limit does not apply to system messages. If an operational message is sent outside this window, the server returns error code 10071 and does not deliver the message.

Push content limits

1. "Test" messages must be alphanumeric.

The interface has content restrictions to prevent developers from accidentally sending test messages to users during debugging.

Note: Test messages and production messages use the same rules. The term 'test' includes the Chinese word '测试' and the English word 'test'.

System message

Operational message

Subcategory: IM

Subcategory: Not IM

No content restrictions

The following content will be blocked:

Symbols only

Symbols + numbers

"test" + symbols

"test" + numbers

"test" + symbols + numbers

JSON format

The following content will be blocked:

Numbers only

Symbols only

Symbols + numbers

"test" + symbols

"test" + numbers

"test" + symbols + numbers

JSON format

(Note: "test" + Chinese text is allowed.)

2. Repetitive operational message interception limit

The vivo platform rejects duplicate operational messages. Avoid sending the same copy to the same audience more than once within a calendar day.

Client-side deduplication: The client automatically discards duplicate operational messages received within the same calendar day. (This mechanism does not apply to system messages.)

Push rate limit

The vivo push QPS automatically adjusts based on the number of active users with notifications enabled, with a default range of 3,000/s to 5,000/s.

QPS defines the maximum number of users you can push to per second. For a single push, you can make up to 3,000 API calls per second. For a list-based push that targets 100 users per call, you can make up to 30 API calls per second.

Enabled users

Push speed

0–5,000,000

3,000

5,000,000–8,000,000

4,000

>8,000,000

5,000

Message classification

The Push Message Classification Description outlines two main message categories for vivo Push: system message and operational message. Unclassified messages default to operational messages and are subject to the rules for that category.

Message classification

Top-level category:

  • You do not need to apply for the system message and operational message categories. However, you must ensure your push content complies with vivo's definition of classified messages.

  • vivo routinely inspects messages and prohibits the sending of operational messages through the system message channel. If your push content is non-compliant with its category, you will face strict penalties. For more information, see vivo's operational supervision and penalties.

  • The default quota for system messages is three times the number of active users with notifications enabled. If this quota is insufficient, you can apply for unlimited system messages through the vivo Ticket System.

  • To apply for the unlimited system messages permission, you must first implement secondary message classification and provide the required information. The platform will evaluate your application based on this classification. For subscription and reminder messages, you must first apply for the system message archiving permission and then the unlimited system messages permission. For details, see the vivo push service ticket operation guide.

Subcategory:

  • If a secondary message category in the table below matches your app's push scenario, you can use it directly. If the message is a subscription message, you must use the ticketing system to apply for system message archiving. For details, see the vivo Push Service Ticketing Guide.

  • If there is no matching secondary message category for your app's push scenario in the table below, you must email the vivo team to apply for special classification parameters, which require approval before use.

Primary message category

Primary category value

Secondary message category

Secondary category value

Notification method

System message

AndroidNotificationVivoChannel: 0

instant message

IM

Heads-up notification, lock screen notification, ring, and vibrate

account and assets

ACCOUNT

schedule and to-do

TODO

device information

DEVICE_REMINDER

order and logistics

ORDER

subscription reminder

SUBSCRIPTION

Marketing message

AndroidNotificationVivoChannel: 1

news

NEWS

Displays in the notification shade only.

content recommendation

CONTENT

marketing campaign

MARKETING

social update

SOCIAL

Message classification

  1. Prerequisites: Complete Android SDK integration and vivo channel integration.

  2. Once your vivo message category application is approved, you can use the EMAS console and OpenAPI to push messages in these categories.

EMAS console push

To send a push notification from the EMAS console, go to Vendor Settings-Notification Channel and Notification Classification, select the vivo channel, and select the appropriate message type.

image.png

OpenAPI push

To call the advanced push API, pass the following parameters:

  1. AndroidNotificationVivoChannel: The primary message category. Valid values are 0 (default) for marketing messages and 1 for system messages.

  2. AndroidMessageVivoCategory: The secondary message category. Enter a value that complies with the message classification rules. It must be in uppercase.

Important

We recommend setting only the AndroidMessageVivoCategory parameter and not the AndroidNotificationVivoChannel parameter.

If you also set the AndroidNotificationVivoChannel parameter, the value of AndroidMessageVivoCategory must correspond to it. Otherwise, the API call returns an error.

Other settings

Send a test message

1) To call the advanced push API, set the following parameters:

  • AndroidVivoPushMode = 1. Enables direct push. Each application can send up to 500 test messages per day that do not count toward the daily push limit.

image.png

  • AndroidTargetUserType = 1. This is equivalent to simultaneously setting the AndroidHuaweiTargetUserType, AndroidHonorTargetUserType, and AndroidVivoPushMode parameters.

image.png

2) When using the EMAS console push service for push notifications, go to vendor settings and turn off production notifications for the vivo channel.

image.png

Meizu

Message classification

Meizu Push classifies messages into two categories: private message and public message. Unclassified messages are treated as public messages by default. For more information, refer to the Meizu Push message classification guidelines.

Type

Description

Limit

private message

  • instant message

  • account and assets

  • schedule and to-dos

  • device information

  • orders and logistics

  • subscription reminder

Unlimited

public message

  • news

  • content recommendation

  • promotions

  • social updates

The daily push limit varies by application category. See the "Push limits - push notification quota" section for details.

Push parameters

When pushing to Meizu using the PushV2 and MassPushV2 interfaces, the parameters are in PushTask.Notification.Android.Options.Meizu:

  • NoticeMsgType

    • 0: public message (default)

    • 1: private message

To send a push notification using the Push API, use the following parameters:

  • AndroidMeizuNoticeMsgType

    • 0: Public message (default)

    • 1: Private message

Push restrictions

For information about Meizu Push Service limitations, such as message volume and push rate, see Meizu Push Message Limit Description.

Push message limit

The daily push limit for public messages per device is as follows:

Secondary category

Tertiary category

Daily push limit (messages)

news & reading

news & information

(requires an Internet News Information Service License)

5

Categories such as e-book, magazine, audiobook, animation & comics, humor, sports, and classifieds without an Internet News Information Service License

3

casual & puzzle

strategy & simulation

sports & racing

card & board

role-playing

video & entertainment

tools

social & communication

education

photo & video

lifestyle

maps & navigation

shopping

business

kids

finance

health & fitness

All

3

Others

All

3

To request an increase to your push quota, contact Meizu Push at push_support@dreamsmart.com.

Push rate and limits

  1. Each service has a push rate limit, with a default of 10,000 devices per 10 seconds per app. A service can have a maximum of 100 subscription tags and is limited to 1,000 pushes per day.

  2. The default limit for creating push tasks with the API is 10,000 per day.

  3. If a device receives four or more push messages from the same service, the system collapses them. On devices running a system version earlier than Flyme 10, the system moves unclicked messages to the message box in the upper-right corner.

  4. The system automatically unsubscribes a device after 30 days of inactivity.

Google

Push limits

The Google channel does not differentiate between message types, but it does enforce limits on a per-application and per-device basis. The specific limits are as follows:

Per application

1,500,000 messages per minute

Per device

1,000 messages per minute

Channel limits

Google has deprecated the legacy Firebase Cloud Messaging API (formerly Google Cloud Messaging, or GCM). To send pushes through the Google channel, you must use the Firebase Cloud Messaging (FCM) HTTP v1 API. For integration instructions, see Google push channel integration.

Warning

If you still use the legacy GCM channel, your messages will be rejected. Upgrade immediately by following the Firebase channel upgrade guide.

HarmonyOS

Push limits

The HarmonyOS Push Management Rules classify notification messages into two categories: Service and Communication; News and Marketing, each with different receiving limits on the HarmonyOS channel:

Message type

Total push limit

User receive limit

Service and Communication

Unlimited

A device cannot receive more than 3,000 messages in total per day from a single application. This total includes Service and Communication, Information and Marketing, and other scenario-based messages.

Information and Marketing

Unlimited

News Category (requires an Internet News Information Service License): 5 messages

Others: 2 messages

Message classification

HarmonyOS manages notifications by category to improve the notification experience for end users.

Message classification

According to the HarmonyOS notification message classification standard, HarmonyOS classifies notification messages into Service and Communication and Information and Marketing. If you do not apply for a message category, your messages are automatically classified as Information and Marketing, which is subject to message push limits:

  1. To apply for the message types that suit your business needs, follow the instructions in the Apply for self-classification privilege for notification messages on HarmonyOS document. You can apply for multiple types.

  2. This table lists the current values for the category parameter of the self-classification privilege for notification messages on the HarmonyOS channel and their corresponding notification methods:

Category

Subcategory

Type

Value

Notification method

Service and communication

Social communication

IM

IM

This method uses lock screen alerts, ringtones, and vibration.

VoIP

VoIP

Service notification

Subscription

SUBSCRIPTION

Travel

TRAVEL

Health

HEALTH

Work reminder

WORK

Account activity

ACCOUNT

Order and logistics

EXPRESS

Finance

FINANCE

Device reminder

DEVICE_REMINDER

Mail

MAIL

Information and marketing

Content and information

Financial news

MARKETING

This method uses silent notifications that appear only in the notification shade.

Lifestyle information

Survey

Other

Content recommendation

News

Social feed

Marketing campaign

Feature recommendation

Promotional event

Product promotion

Message classification

  1. Prerequisites: You have completed the HarmonyOS SDK integration and set up a vendor-specific channel.

  2. Once approved for HarmonyOS self-categorized messaging, you can use the EMAS console and OpenAPI to push categorized messages.

EMAS console push

To send push notifications to a HarmonyOS app using the Mobile Push service in the EMAS console, select the appropriate notification message category in HarmonyOS settings.

image.png

OpenAPI push

Pass the parameters when calling the advanced push API.

  • HarmonyCategory: The value for the category parameter of the Harmony channel.

Alibaba Cloud proprietary channel

For online devices, messages are delivered through the Alibaba Cloud channel. This behavior is controlled by the HarmonyOS notification channel through the SlotType parameter. The values and descriptions for this parameter are as follows:

Slot type

Category

Value

Description

SOCIAL_COMMUNICATION

social communication

1

Notifications are enabled. A notification icon appears in the status bar, with a banner and a notification sound.

SERVICE_INFORMATION

service information

2

Notifications are enabled. A notification icon appears in the status bar, with a notification sound but no banner.

CONTENT_INFORMATION

content information

3

Notifications are enabled, but do not include a notification icon in the status bar, a banner, or a notification sound.

CUSTOMER_SERVICE

customer service

5

This channel is for user-initiated customer service messages between users and businesses.

Notifications are enabled and a notification icon appears in the status bar, but there is no banner or notification sound.

OTHER_TYPES

other

0xFFFF

Notifications are enabled, but do not include a notification icon in the status bar, a banner, or a notification sound.

  1. Prerequisites: You have completed the HarmonyOS SDK integration.

  2. Create a notification channel on the HarmonyOS client-side. For details, see HarmonyOS development steps.

  3. After creating the notification channel, you can use the EMAS console or OpenAPI to push categorized messages:

    1. Push from the EMAS console

      • When pushing from the EMAS console via the Alibaba Cloud online notification channel, select the corresponding notification channel type in HarmonyOS Settings.

      image.png

    2. Push using OpenAPI

      • When calling the advanced push API, pass the HarmonyNotificationSlotType parameter. This value maps to the SlotType value in the preceding table.

Other settings

Send test message

1) When calling the advanced push API, set HarmonyTestMessage to true. Each project can send up to 1,000 test messages.

image

2) When using the EMAS console push service to send a HarmonyOS app notification, go to HarmonyOS Settings and enable test messages.

image.png

More recommendations

Improve your notification delivery rate by adding features that prompt users to subscribe to and enable push notifications, and by applying for the vendor self-classification privilege.

  • Classify messages to prevent critical ones from consuming the quota for non-critical messages or being sorted into the wrong lists.

  • For non-critical messages, consider offering them as opt-in subscriptions.

  • Except for user re-engagement scenarios, reduce the sending volume to inactive users to avoid wasting resources on ineffective reach.

  • Send push notifications in moderation to avoid overwhelming users into disabling notification permissions.

Higher quotas with subscriptions

Sending excessive operational messages, such as marketing or informational content, quickly exhausts the daily per-device quota from vendor channels. By contrast, system messages, like service notifications or private messages, are typically exempt from these limits. To maximize delivery capacity per device, classify messages carefully, prioritize sending system messages, and conserve your operational message quota. We recommend implementing a user subscription model in your app to manage these quotas effectively. Each vendor channel has the following user subscription requirements:

Vendor

Category name

API parameter

Description

Huawei

service and communication → service reminder → subscription

AndroidMessageHuaweiCategory=SUBSCRIPTION

Content a user actively subscribes to and agrees to receive via push messages. (Subscription is limited to the following scenarios; applications for other scenarios will be rejected.)

  • User-set reminders for the start of a single live stream or a scheduled event.

  • User-set reminders for check-ins.

  • User-set alerts for product price drops.

Note

To apply for subscription messages, you must meet the following conditions and provide supporting screenshots:

  1. Your application must support subscription and unsubscription. The user interface must display text such as "Subscribe" or "Schedule." The "Subscribe" and "Unsubscribe" buttons must be on the same page, and the "Unsubscribe" button must be clearly visible.

  2. Subscription must be a user-initiated action, and the subscription button must be off by default. (Do not send push messages to users who have not subscribed.)

  3. A user's subscription or follow action does not imply consent to receive subscription push messages. "Subscribe" and "Receive subscription push messages" must have separate, independent toggles that are off by default. (For example, after a user subscribes, a pop-up should ask if they want to receive push messages for that subscription.)

  4. The scope of subscription messages must be specific and not overly broad. (Incorrect example: "Subscribing to market news" or "interest tags" is too broad and non-specific.)

  5. The push message content must indicate that it is a subscription message. For example, include text such as "Subscription message" or "Your subscription: xx" in the message title or body.

Honor

service and communication → service reminder → subscription

AndroidNotificationHonorChannel=NORMAL

Content the user subscribes to and reminders they set.

  • Subscribed topic content, scheduled event reminders, user-set live stream start reminders, and book updates.

  • User-set price drop alerts for products or flights, and group-buy start reminders.

  • Alerts for followed market trends.

  • User-set check-in reminders.

  • Update reminders for paid subscription content.

The push message content must identify it as a subscription message. For example, include text such as "Subscription message" or "You subscribed to..." in the message title or body.

Note: Subscription is a user-initiated action. Do not send push messages to users who have not subscribed.

Xiaomi

private message → personal subscription

AndroidNotificationXiaomiChannel

Examples of user-initiated subscriptions include alerts for followed market trends, start reminders for followed streamers, updates from specially followed accounts or authors, and update reminders for paid subscription content.

Note

To apply for subscription messages, you must meet the following conditions and provide supporting evidence:

  1. Your application must support user subscription and unsubscription. The user interface must display text such as "Subscribe" or "Schedule."

  2. Subscription must be a user-initiated action. Do not send push messages to users who have not subscribed.

  3. After a user subscribes, the application's UI must clearly state that the user will receive subscription-related push messages. For example: "You will receive push messages for XX."

  4. The scope of subscription messages must be specific and not overly broad. For example, "subscribing to market news" is too broad and non-specific.

OPPO

New message classification →

personal subscription

AndroidMessageOppoCategory=SUBSCRIPTION

Reminders a user actively sets and agrees to receive. Examples include: user-set reminders for live stream starts and book updates; user-set alerts for product or flight price drops, and group-buy start reminders; alerts for followed market trends; user-set check-in reminders; and update reminders for paid subscription content.

Note

To apply for this message category, you must meet the following conditions and provide supporting evidence. Your application must support subscription and unsubscription, with UI text such as "Subscribe" or "Schedule." Subscription must be a user-initiated action; do not send push messages to users who have not subscribed. After a user subscribes, the application's UI must clearly state that they will receive subscription-related push messages, for example: "You will receive push messages for XX." The scope of subscription messages must be specific and not overly broad. For example, "subscribing to market news" is too broad and non-specific.

Legacy private message → Content updates for user-followed topics

AndroidNotificationChannel

  1. Reminders a user actively sets and agrees to receive, such as user-set live stream start reminders and book updates;

  2. Price drop alerts for products or flights, group-buy start reminders, alerts for followed market trends, check-in reminders, and update reminders for paid subscription content.

Note:

  • Only live stream start reminders for followed streamers and updates from specially followed accounts/authors are considered important messages. Updates from regularly followed accounts/authors are not.

  • Social interaction messages like likes, @mentions, follows, reposts, comments, and replies are considered standard messages, not important messages. Exceptions include review reminders from businesses to users and comment reminders from teachers on student homework.

vivo

system message → subscription reminder

AndroidMessageVivoCategory=SUBSCRIPTION

Messages that a user actively subscribes to and expects to receive at a specific time:

  • Reminders for actively subscribed topic content, scheduled events, user-set live stream starts, and followed book updates.

  • User-set price drop alerts for products or flights, and group-buy start reminders.

  • Alerts for followed market trends.

  • User-set check-in reminders.

  • Update reminders for paid subscription content.

Note

To apply for subscription messages, you must meet the following conditions, provide supporting evidence, and complete system message archiving:

  1. Your application must support user subscription and unsubscription. The user interface must display text such as "Subscribe," "Schedule," or "Follow."

  2. Subscription must be a user-initiated action. Do not send push messages to users who have not subscribed.

  3. When a user subscribes, the application's UI must clearly state that the user will receive subscription-related push messages. For example: "You will receive push messages for XX" (The prompt must contain "message," "notification," or "push").

  4. The scope of subscription messages must be specific and not overly broad. For example, "subscribing to market news" is too broad and non-specific.

  5. The push message content must identify it as a subscription message. For example, include text such as "Subscription message," "You subscribed to...," "You scheduled...," or "You are following..." in the message title or body.

HarmonyOS

service and communication → service reminder → subscription

HarmonyCategory=SUBSCRIPTION

Content a user actively subscribes to and agrees to receive via push messages. (Subscription is limited to the following scenarios; applications for other scenarios will be rejected.)

  • User-set reminders for the start of a single live stream or a scheduled event.

  • User-set reminders for check-ins.

  • User-set alerts for product price drops.

Note

To apply for subscription messages, you must meet the following conditions and provide supporting screenshots:

  1. Your application must support subscription and unsubscription. The user interface must display text such as "Subscribe" or "Schedule." The "Subscribe" and "Unsubscribe" buttons must be on the same page, and the "Unsubscribe" button must be clearly visible.

  2. Subscription must be a user-initiated action, and the subscription button must be off by default. (Do not send push messages to users who have not subscribed.)

  3. A user's subscription or follow action does not imply consent to receive subscription push messages. "Subscribe" and "Receive subscription push messages" must have separate, independent toggles that are off by default. (For example, after a user subscribes, a pop-up should ask if they want to receive push messages for that subscription.)

  4. The scope of subscription messages must be specific and not overly broad. (Incorrect example: "Subscribing to market news" or "interest tags" is too broad and non-specific.)

  5. The push message content must indicate that it is a subscription message. For example, include text such as "Subscription message" or "Your subscription: xx" in the message title or body.

The requirements for each vendor channel can be summarized as follows:

  1. Your app must require an active user opt-in for subscriptions and provide a clear way to unsubscribe. The subscription copy must explicitly state that users will receive push notifications, rather than using vague terms like "follow."

  2. Subscription content must not be overly broad and must be organized into distinct categories.

  3. Each push notification's copy must clearly relate to the user's specific subscription.

Prefer activity push to broadcast push

To control push costs and account for vendor channel limits on marketing messages, avoid sending pushes to a broad audience. Instead, tag each device with its activity level and send pushes to the corresponding tags. Consider the following solution:

  1. When the app starts, query the device's tags to check if it has the current activity tag. A tag name can include year and month information, such as tag202403. You can also tag devices by week. However, if you tag devices daily, be aware of the limit on the number of tags allowed in a tag expression.

  2. If the current activity tag is not present, add it to the device.

  3. When you call the push API from your server, use a tag expression to target devices. For example: TargetValue={"and": [{"tag": "tag202402"}, {"tag": "tag202403"}]}.

  4. To avoid an excessive number of tags, periodically remove expired ones. For example, you can run a monthly job to remove activity tags that are more than 24 months old.

Stale device deletion

Enable the receipt log to diagnose errors in sent_fail or arrive_fail logs and remove invalid devices to improve your OpenAPI call efficiency. For receipt error codes, refer to Partial error codes and causes for Mobile Push vendor channels.