為了改善終端使用者推送體驗、營造良好可持續的通知生態,各大廠商陸續對推送的訊息根據分類進行限額限頻。
簡介
根據推送內容對訊息進行分類管理,可以自訂 Channel ID。
適用所有 Android 渠道
建立用戶端自訂渠道
推送時下發對應的渠道 ID
參數名稱
類型
是否必填
樣本
描述
channelId
String
否
channelId: "channelIdTest"
Android 通知 channelId
若需要下發廠商通道重要層級訊息,請參考下文各個廠商訊息分類的使用指南
華為分類
廠商針對訊息分類的說明
根據訊息內容,華為推送將通知分類為 服務與通訊、資訊營銷 兩大類別,並對不同類別訊息的提醒方式、訊息樣式進行差異化管理,具體如下:
訊息類型 | 服務與通訊 | 資訊營銷 |
推送內容 | 包括社交通訊類訊息和服務提醒類訊息。 | 包括資訊類訊息和營銷類訊息,指的是營運人員向使用者發送的活動資訊、內容推薦、資訊等 |
提醒方式(EMUI 10.0及以上) | 鎖屏、鈴聲、震動 | 靜默通知,僅在下拉通知欄展示訊息 |
訊息樣式 | 文本+小圖 | 僅有文本 |
推送數量 | 不限量 | 自 2023.01.05 起,資訊營銷類訊息根據應用類型對每日推送數量進行上限管理,具體要求參見 不同應用類別的推送數量上限要求 |
配置方式 | 需要向華為申請自分類權益,審核通過後將信任開發人員提供的分類資訊,訊息不經過智能分類。 | 預設 |
分類方式
訊息智能分類
智能分類演算法將根據您發送的內容等多個維度因素,自動將您的訊息按照分類標準進行歸類。
訊息自分類
2021.07.01 起,華為推送服務開始接收開發人員自分類權益的申請。申請成功後,允許開發人員根據華為推送分類規範,自行對訊息進行分類。

華為訊息分類申請
自分類申請詳情參見 華為訊息分類管理方案。
若應用沒有自分類權益,則應用的推送訊息將通過智能分類進行自動歸類。
若應用有自分類權益,將信任開發人員提供的分類資訊,訊息不經過智能分類。
在 mPaaS MPS 上對接華為訊息分類傳參枚舉(thirdChannelCategory.hms)
傳參(String) | 含義 |
1 | IM:即時聊天 |
2 | VOIP:音視訊通話 |
3 | SUBSCRIPTION:訂閱 |
4 | TRAVEL:旅行類 |
5 | HEALTH:健康 |
6 | WORK:工作事項提醒 |
7 | ACCOUNT:帳號動態 |
8 | EXPRESS:訂單&物流 |
9 | FINANCE:財務 |
10 | DEVICE_REMINDER:裝置提醒 |
11 | SYSTEM_REMINDER:系統提示 |
12 | MAIL:郵件 |
13 | PLAY_VOICE:語音播報(僅透傳訊息支援) |
14 | MARKETING:內容推薦、新聞、財經動態、生活資訊、社交動態、調研、產品促銷、功能推薦、營運活動(僅對內容進行標識,不會加快訊息發送) |
在 mPaaS MPS 上對接 HMS 訊息提醒等級傳參枚舉(notifyLevel.hms)
傳參(String) | 含義 |
1 | LOW:表示通知欄訊息預期的提醒方式為靜默提醒,訊息到達手機後,無鈴聲震動 |
2 | NORMAL:表示通知欄訊息預期的提醒方式為強提醒,訊息到達手機後,以鈴聲、震動提醒使用者。終端裝置實際訊息提醒方式將根據 category 欄位取值或 智能分類 結果進行調整(預設值) |
傳參樣本
參數名稱 | 類型 | 是否必填 | 樣本 | 描述 |
thirdChannelCategory | Map | 否 | thirdChannelCategory: {"hms": "9"} | 樣本傳值為“9”表示華為 FINANCE 財務類型訊息。其他取值詳情請參見 廠商訊息分類 |
notifyLevel | Map | 否 | notifyLevel: {"hms": "1"} | 樣本傳值為“1”表示通知欄訊息預期的提醒方式為靜默提醒,訊息到達手機後,無鈴聲震動。 |
榮耀分類
廠商針對訊息分類的說明
根據訊息內容,華為推送將通知分類為 服務與通訊、資訊營銷 兩大類別,具體如下:
訊息類型 | 服務與通訊 | 資訊營銷 |
推送內容 | 包括社交通訊類訊息和服務提醒類訊息。 | 包括資訊類訊息和營銷類訊息,指的是營運人員向使用者發送的活動資訊、內容推薦、資訊等 |
提醒方式 | 鎖屏展示+下拉通知欄展示,支援鈴聲、震動 | 靜默通知,僅在下拉通知欄展示訊息 |
訊息樣式 | 文本+小圖 | 僅有文本 |
推送數量 | 不限量 | 資訊營銷類訊息根據應用類型對每日推送數量進行上限管理:
|
分類方式
訊息智能分類
智能分類演算法將根據您發送的內容等多個維度因素,自動將您的訊息按照分類標準進行歸類。
訊息自分類
允許開發人員根據訊息分類規範,自行對訊息進行分類。
在 mPaaS MPS 上對接榮耀訊息分類傳參枚舉(thirdChannelCategory.honor)
傳參(String) | 含義 |
1 | 服務通訊類 |
2 | 資訊營銷類 |
傳參樣本
參數名稱 | 類型 | 是否必填 | 樣本 | 描述 |
thirdChannelCategory | Map | 否 | thirdChannelCategory: {"honor": "1"} | 樣本傳值為“1”表示榮耀服務通訊類訊息 |
小米訊息分類
廠商針對訊息分類的說明
根據《小米推送訊息分類新規》,小米推送將訊息分為 私信訊息 和 公信訊息 兩個類別,若應用選擇不接入私信或公信,則會接入 預設 通道。
訊息類型 | 預設 | 公信訊息 | 私信訊息 |
推送內容 | 可按照小米的 公信情境說明 | 熱點新聞、新品推廣、平台公告、社區話題、有獎活動等,多使用者普適性的內容 | 聊天訊息、個人訂單變化、快遞通知、交易提醒、IoT 系統通知等與私人通知相關的內容 |
提醒方式 | 無 | 無 | 響鈴、震動 |
推送數量限制 | 1 倍 | 2-3 倍,具體規則請參見“公信限制規則 | 不限量 |
使用者接收數量限制 | 單個應用單個裝置單日 1 條 | 單個應用單個裝置單日 5-8 條 | 不限量 |
申請方式 | 無需申請 | 需在小米推送平台申請,詳情請參見 channel 申請及接入方式 | |
小米訊息分類申請
申請方式請參見小米官方文檔 channel 申請及接入方法。
在 mPaaS MPS 上對接小米訊息分類傳參樣本
參數名稱 | 類型 | 是否必填 | 樣本 | 描述 |
miChannelId | String | 否 | miChannelId:"miChannelIdTest" | 小米廠商推送渠道的 channelId |
OPPO 訊息分類
舊訊息分類
廠商針對訊息分類的說明
訊息類型 | 私信 | 公信 |
推送內容 | 針對使用者有一定關注度,且希望能及時接收的資訊,如即時聊天資訊、個人訂單變化、快遞通知、訂閱內容更新、評論互動、會員積分變動等。 | 公信是針對使用者關注度不高,且對於接收這類資訊並無心理預期,如熱點新聞、新品推廣、平台公告、社區話題、有獎活動等,多使用者普適性的內容 |
推送數量限制 | 不限量 | 有公信類通道共用推送次數,當日達到推送量限制後,所有公信類通道將不能再推送訊息; 推送限量:當累計使用者數 <50000 時,按 100000 計算;當累計使用者數 ≥50000 時,按累計使用者數 *2 計算 |
單使用者推送限制(條/日) | 不限量 |
|
配置方式 |
| 預設開通 |
OPPO 私信通道申請
在 mPaaS MPS 上對接 OPPO 訊息分類傳參樣本
參數名稱 | 類型 | 是否必填 | 樣本 | 描述 |
channelId | String | 否 | channelId:"channelIdTest" | OPPO 私信通道 channelId |
新訊息分類
廠商針對新訊息分類說明
OPPO PUSH 將訊息分成兩大類別,根據使用者對不同類別訊息的關注度,提供對應的許可權:
訊息類型 | 定義範圍 | 推送內容方向 | 提醒方式 | 推送量級 |
通訊與服務 |
|
| 預設為 <通知欄、鎖屏>;可升級為 <通知欄、鎖屏、橫幅、鈴聲、震動> 強提醒方式(需 申請)。 | 發送量級和接收量級均不限。 |
內容與營銷 | 開發人員主動向使用者發送的對內容或產品推廣的通知。 | 內容推薦、平台活動、社交動態等。 | 僅下拉通知欄展示。 | 限制每日推送量級與單使用者接收條數,詳情請參考 推送服務受限說明。 |
新訊息分類能力當前支援系統版本 OS13 及以上,後續會逐步向 OS12 及以下相容覆蓋。
通訊與服務類訊息預設提醒方式為 <通知欄、鎖屏>,您可以根據規則和需求申請 <通知欄、鎖屏、橫幅、鈴聲、震動> 的強提醒方式,強提醒方式會對使用者造成一定程度打擾,請謹慎申請及使用。
OPPO 新訊息分類開啟
OPPO 新訊息分類開啟請參見 新訊息分類接入流程。
在 mPaaS MPS 上對接 OPPO 訊息分類傳參枚舉(thirdChannelCategory.oppo)
傳參(String) | 含義 |
1 | IM:即時聊天、音頻、視訊通話 |
2 | ACCOUNT:個人帳號與資產變化 |
3 | DEVICE_REMINDER:個人裝置提醒 |
4 | ORDER:個人訂單/物流狀態變化 |
5 | TODO:個人議程/待辦 |
6 | SUBSCRIPTION:個人訂閱 |
7 | NEWS:新聞資訊 |
8 | CONTENT:內容推薦 |
9 | MARKETING:平台活動 |
10 | SOCIAL:社交動態 |
在 mPaaS MPS 上對接 OPPO 訊息提醒等級傳參枚舉(notifyLevel.oppo)
傳參(String) | 含義 |
1 | 通知欄 |
2 | 通知欄 + 鎖屏 |
16 | 通知欄 + 鎖屏 + 橫幅 + 震動 + 鈴聲 |
使用者未開啟 OPPO 新訊息分類,則無需關注該欄位。
使用者已開啟 OPPO 新訊息分類,如果傳遞了
notifyLevel.oppo參數,那麼對應的thirdChannelCategory.oppo參數不可為空。
傳參樣本
參數名稱 | 類型 | 是否必填 | 樣本 | 描述 |
thirdChannelCategory | Map | 否 | thirdChannelCategory: {"oppo": "7"} | 樣本傳值為“7”表示新聞資訊。其他取值詳情請參見 廠商訊息分類。 |
notifyLevel | Map | 否 | notifyLevel: {"oppo": "2"} | 樣本傳值為“2”表示「通知欄+鎖屏」。其他取值詳情請參見 通知欄訊息。 |
vivo 訊息分類
廠商針對訊息分類的說明
通知開啟的有效使用者:應用整合的 push-sdk 訂閱成功,且裝置近 14 天內有連網的通知許可權開啟使用者。
通知開啟有效使用者數<10000,則營運訊息量級預設為 10000。
通知開啟的有效使用者數及可發送營運訊息量級,可在推送營運後台查詢。
推送限額數以 到達量 計算,當日到達量超限則計入管控。
訊息類型 | 系統訊息 | 營運訊息 |
推送內容 | 使用者需要及時知道的訊息,如:立即訊息、郵件、使用者佈建的提醒、物流等通知 | 使用者關注程度較低的訊息,如:內容推薦、活動推薦、社交動態等通知 |
通知欄許可權 |
|
|
推送數量限制 | 3 倍通知開啟有效使用者數(可郵件申請訊息不限量許可權,詳見 推送訊息限制說明) |
|
使用者接收數量限制 | 無限制 |
|
在 mPaaS MPS 上對接 vivo 二級訊息分類傳參枚舉(thirdChannelCategory.vivo)
傳參(String) | 含義 |
1 | IM 使用者間點對點聊天訊息(私信、群聊等),包括聊天訊息中的圖片、檔案傳輸、音頻(或視頻)通話,不包括未關注人的私信、官方號或者商家批量推送給使用者的私信或廣告。以及寄件提醒。 |
2 | ACCOUNT 帳號變動:帳號上下線、狀態變化、資訊認證、會員到期、續約提醒、餘額變動等。 資產變動:賬戶下的真實資產變動,交易提示、話費餘額、流量、語音時間長度、簡訊額度等典型電訊廠商提醒。 |
3 | TODO 與個人排程相關,需要提醒使用者處理某件事項。
|
4 | DEVICE_REMINDER
|
5 | ORDER 電商購物、美食團購等各類商品服務中的訂單相關資訊,推送對象為使用者。
|
6 | SUBSCRIPTION 使用者主動訂閱關注,並有預期在特定時機接收到訊息:
重要 申請訂閱類訊息需要滿足如下條件並提供完整證明:
|
7 | NEWS 新近發生的、有價值的事實新聞內容。 |
8 | CONTENT 內容型的資訊推薦,包含熱搜、點評、廣告、書籍、音樂、視頻、直播、課程、節目、遊戲宣傳、社區話題等。以及:
|
9 | MARKETING
|
10 | SOCIAL
|
在 mPaaS MPS 上對接 vivo 訊息分類傳參樣本
參數名稱 | 類型 | 是否必填 | 樣本 | 描述 |
classification | String | 否 | classification:"1" | 用於傳遞 vivo 推送通道的訊息類型:
不填則預設為 1 |
thirdChannelCategory | Map | 否 | thirdChannelCategory: {"vivo": "1"} | 樣本傳值為“1”表示vivo IM 類型訊息 |
classification 參數傳“0”代表營運訊息,不經過智能分類二次修正,直接從營運訊息總量扣除額度,並受使用者接收條數限制的頻控。
classification 參數傳“1”代表系統訊息,經過智能分類二次修正,若智能分類識別出不是系統訊息,會自動修正為營運訊息,並扣除營運訊息額度;若識別為系統訊息,則從系統訊息總量扣除額度。
MPS 對接廠商訊息分類 Java 範例程式碼
廠商訊息分類推送參數推薦都上傳,MPS 會根據裝置類型進行對應廠商分類參數的封裝。
import com.alibaba.fastjson.JSON;
import com.aliyun.mpaas20201028.Client;
import com.aliyun.mpaas20201028.models.PushSimpleRequest;
import com.aliyun.mpaas20201028.models.PushSimpleResponse;
import com.aliyun.teaopenapi.models.Config;
import java.util.HashMap;
import java.util.Map;
public static void main(String[] args) throws Exception {
// 阿里雲帳號AccessKey擁有所有API的存取權限,建議您使用RAM使用者進行API訪問或日常營運。
// 強烈建議不要把AccessKey ID和AccessKey Secret儲存到工程代碼裡,否則可能導致AccessKey泄露,威脅您帳號下所有資源的安全。
// 本樣本以將AccessKey ID和AccessKey Secret儲存在環境變數為例說明。您也可以根據業務需要,儲存到設定檔裡。
// 建議先完成環境變數配置
Config config = new Config();
// 必填,您的 AccessKey ID
config.setAccessKeyId(System.getenv("MPAAS_AK_ENV"));
// 必填,您的 AccessKey Secret
config.setAccessKeySecret(System.getenv("MPAAS_SK_ENV"));
// mPaaS 的 REGION_ID 和 Endpoint,以杭州非金為例
config.setRegionId("cn-hangzhou");
config.setEndpoint("mpaas.cn-hangzhou.aliyuncs.com");
Client client = new Client(config);
// Create an API request and set parameters
PushSimpleRequest request = new PushSimpleRequest();
request.setAppId("ONEX570DA89211721");
request.setWorkspaceId("default");
request.setTenantId("xxx");
request.setTaskName("測試工作");
request.setTitle("測試");
request.setContent("測試");
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);
Map<String,String> target = new HashMap<String, String>();
String msgKey = String.valueOf(System.currentTimeMillis());
target.put("push_test",msgKey);
request.setTargetMsgkey(JSON.toJSONString(target));
// 廠商訊息類別欄位
// 封裝VIVO訊息分類一級分類
request.setClassification("1");
// 封裝華為訊息分類、榮耀訊息分類和VIVO訊息分類二級分類
Map<String, String> map = new HashMap<>();
map.put("hms", "2");
map.put("vivo", "3");
map.put("honor", "1");
request.setThirdChannelCategory(map);
// 封裝小米訊息分類
request.setMiChannelId("miChannelIdTest");
// 封裝OPPO訊息分類
request.setChannelId("channelIdTest");
// Initiate the request and handle the response or exceptions
PushSimpleResponse response = client.pushSimple(request);
System.out.println(JSON.toJSONString(response));
}