小米推送消息限制分為每日推送數(shù)量限制和推送速率QPS限制。2020年9月21日起,普通消息的每日推送數(shù)量限制規(guī)則將改為根據(jù)應(yīng)用類別進(jìn)行限制。QPS限制規(guī)則保持不變。
1.每日推送數(shù)量限制
小米推送(Mipush)的消息通道分為“普通消息”(默認(rèn))和“通知消息”兩類。普通消息的每日推送數(shù)量從2020年9月21日起將根據(jù)應(yīng)用類別進(jìn)行限制,通知消息的每日推送數(shù)量仍然不限制。
推送數(shù)量限制規(guī)則變化:
1.1普通消息
普通消息適用于推送熱點(diǎn)新聞、新品推廣、平臺(tái)公告、社區(qū)話題、有獎(jiǎng)活動(dòng)等,多為用戶普適性的內(nèi)容。
限制規(guī)則
以下限制規(guī)則適用于小米手機(jī)上的通知欄消息,非小米手機(jī)的消息、透?jìng)飨⒉蛔鱿拗啤?/span>
普通消息的單日推送數(shù)量限制規(guī)則:當(dāng)應(yīng)用的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)小于10000時(shí),每日推送限額數(shù)為50000;當(dāng)應(yīng)用的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)大于10000時(shí),每日推送限額數(shù)根據(jù)應(yīng)用類別而定,如表1所示。
表1普通消息限制倍數(shù)
說(shuō)明:
·限制倍數(shù)是指該應(yīng)用的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)的倍數(shù)。例如:新聞?lì)怉pp的限制倍數(shù)為5,表示該應(yīng)用的每日推送數(shù)量最多為MIUI日聯(lián)網(wǎng)設(shè)備數(shù)的5倍。
·每日推送限額數(shù)以當(dāng)日的送達(dá)數(shù)計(jì)算。
MIUI日聯(lián)網(wǎng)設(shè)備數(shù)的查詢路徑:推送運(yùn)營(yíng)平臺(tái)->推送統(tǒng)計(jì)->用戶數(shù)據(jù)->數(shù)據(jù)詳情
應(yīng)用類別:指的是應(yīng)用在小米應(yīng)用商店上架時(shí)選擇的應(yīng)用一級(jí)分類,查詢路徑:登錄應(yīng)用商店開(kāi)發(fā)者站,在應(yīng)用管理界面,點(diǎn)擊應(yīng)用后的“管理”按鈕進(jìn)入應(yīng)用詳情頁(yè),點(diǎn)擊“查看資料”,在“發(fā)布設(shè)置->分類”中查看應(yīng)用的一級(jí)分類。
如果您認(rèn)為發(fā)布應(yīng)用時(shí)選擇的應(yīng)用分類不正確,需要修改應(yīng)用分類,可參見(jiàn)文檔“應(yīng)用創(chuàng)建與更新流程”中的“三、修改應(yīng)用信息”進(jìn)行修改。
消息量申訴
如果特殊情況需要額外提升推送量級(jí),開(kāi)發(fā)者可以向小米推送進(jìn)行申訴,但申訴的消息量級(jí)最大不能超過(guò)該應(yīng)用的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)的5倍。
申訴條件:
開(kāi)發(fā)者因業(yè)務(wù)需要確實(shí)需要發(fā)送額外量級(jí)的消息,并且用戶確實(shí)希望收到該應(yīng)用的推送消息。
申訴方法:
發(fā)郵件至郵箱mipush-permission@xiaomi.com。
郵件模板:
主題:xxx應(yīng)用申請(qǐng)?jiān)黾悠胀ㄏl(fā)送量級(jí)
正文:
應(yīng)用名稱:
AppID:
應(yīng)用簡(jiǎn)介:
申請(qǐng)的推送量級(jí):
申請(qǐng)?jiān)颍?/span>
(1)推送場(chǎng)景的詳細(xì)說(shuō)明(必填)
(2)用戶因收不到推送的投訴(選填)
(3)或者其他可以證明增加推送量級(jí)合理性的材料(選填)。
小米推送將在5個(gè)工作日內(nèi)答復(fù)審核結(jié)果。
1.2通知消息
通知消息適用于推送聊天消息、個(gè)人訂單變化、快遞通知、交易提醒、IoT系統(tǒng)通知等與私人通知相關(guān)的內(nèi)容。
通知消息的每日推送數(shù)量不受限制。
注意:請(qǐng)勿利用通知消息通道推送普通消息內(nèi)容,Mipush后臺(tái)會(huì)實(shí)時(shí)監(jiān)控,如違反運(yùn)營(yíng)規(guī)則,我們將按照《小米推送違規(guī)處罰條例》進(jìn)行處罰。
通知消息內(nèi)容類別
通知消息包含以下類別:
A.個(gè)人狀態(tài)變化(如會(huì)員升級(jí)、登錄下線等)
B.個(gè)人資源變化(如錢包、積分等)
C.即時(shí)通訊(IM)消息(如聊天、加好友等)
D.個(gè)人訂單狀態(tài)變化(如購(gòu)物發(fā)貨、退款等)
E.個(gè)人日程相關(guān)提醒(如登機(jī)、酒店入住提醒等)
F.個(gè)人關(guān)注的內(nèi)容更新提醒(如關(guān)注的教學(xué)任務(wù)更新、主動(dòng)設(shè)置的書籍更新提醒等用戶主動(dòng)訂閱的提醒)
G.個(gè)人交易提醒(如銀行、股票的交易提醒等)
H.個(gè)人家庭IoT類提醒(如攝像機(jī)監(jiān)控區(qū)域有變化的提醒、掃地機(jī)器人清掃完成的通知等)
通知消息申請(qǐng)方式
以開(kāi)發(fā)者賬號(hào)登錄小米推送運(yùn)營(yíng)平臺(tái),單擊“應(yīng)用管理-通知類別”菜單。
在“通知類別”頁(yè)面中點(diǎn)擊申請(qǐng)通知消息channel按鈕,進(jìn)入通知消息申請(qǐng)頁(yè)面。
選擇需要申請(qǐng)的通知消息類別(可申請(qǐng)一類或多類),單擊“申請(qǐng)”,填寫申請(qǐng)信息,單擊“確認(rèn)”提交申請(qǐng)。
注意:channel名稱會(huì)展示在用戶設(shè)備的“設(shè)置-通知管理”的應(yīng)用頁(yè)面里,必須填寫有具體含義的名稱,且不允許和應(yīng)用名稱相同。channel一旦創(chuàng)建后無(wú)法再修改名稱。channel介紹請(qǐng)參見(jiàn):https://dev.mi.com/console/doc/detail?pId=1303同一個(gè)App如果需要申請(qǐng)多個(gè)channel,channel名稱不允許重復(fù)。
小米推送運(yùn)營(yíng)團(tuán)隊(duì)會(huì)在5個(gè)工作日內(nèi)完成審核。
如果審核通過(guò),您將收到審核通過(guò)的郵件,并可在小米推送運(yùn)營(yíng)平臺(tái)的“應(yīng)用管理-通知類別”中看到新創(chuàng)建的channel。您推送通知消息時(shí)配上對(duì)應(yīng)的channel_id即可。帶有該channel_id的消息會(huì)按“通知消息”處理,其他消息默認(rèn)按“普通消息”處理。
如果審核不通過(guò),您將收到駁回郵件,請(qǐng)按照駁回意見(jiàn)修改申請(qǐng),重新提交。
說(shuō)明:使用通知消息channel時(shí)不需要您升級(jí)客戶端或服務(wù)端SDK。
如在申請(qǐng)過(guò)程中遇到問(wèn)題,可發(fā)送郵件至mipush-permission xiaomi.com反饋。
1.3 FAQ
1.如果推送數(shù)量超過(guò)當(dāng)日限制時(shí),會(huì)有什么提示嗎?
推送數(shù)量超過(guò)當(dāng)日限制時(shí),會(huì)調(diào)用請(qǐng)求失敗,返回錯(cuò)誤碼200001,原因:exceed quota,quota:當(dāng)日可以下發(fā)總數(shù),have acked:當(dāng)日已送達(dá)數(shù)。
如果您接了消息回執(zhí)callback,推送總量超限時(shí)callback會(huì)返回如下json(需要先訂閱callback.type為128,參見(jiàn)“消息回執(zhí)”):
{
data={
"axo00546585203029498oV":{"extra":{"ack":"當(dāng)日已送達(dá)數(shù)","quota":"當(dāng)日可以下發(fā)總數(shù)"},"type":128,"targets":"alias","timestamp":1585203103625}
}
}
說(shuō)明:
如果調(diào)用我們的multi接口(例如/v2/multi_messages/regids)發(fā)送消息,在推送數(shù)量超過(guò)當(dāng)日限制時(shí),不會(huì)返回錯(cuò)誤碼200001,而是通過(guò)channel_exceed_quota字段返回本次請(qǐng)求中各個(gè)通道的超額消息數(shù),例如:
{"result":"ok","trace_id":"******************","code":0,"data":{"day_acked":"50078","id":"******************","channel_exceed_quota":"no_channel:2 a:3","day_quota":"50000"},"description":"成功"]
上面的返回結(jié)果表明,本次請(qǐng)求由于推送數(shù)量超限,會(huì)有2條沒(méi)有帶channel_id的消息以及3條channel_id為a的消息不會(huì)下發(fā),其余消息則會(huì)正常下發(fā)。
2.如何查詢每日剩余可推送數(shù)量?
在調(diào)用推送請(qǐng)求的響應(yīng)中會(huì)返回當(dāng)日可下發(fā)總量和當(dāng)日已送達(dá)數(shù)。
示例:
{"result":"ok","trace_id":"Xxo00563585646156570hY","code":0,"data":{"data":{"day_acked":1,"day_quota":250}},"description":"成功"}
·day_acked表示當(dāng)日已送達(dá)數(shù)
·day_quota表示當(dāng)日可下發(fā)總量
如果您希望通過(guò)獨(dú)立接口查詢,可調(diào)用如下API(1秒限調(diào)用1次):
https://api.xmpush.xiaomi.com/v1/trace/quota/get
HTTP請(qǐng)求方法:GET
添加HEADER字段Authorization,用于身份驗(yàn)證。格式是key=<APP_SECRET>。
APP_SECRET是從開(kāi)發(fā)者網(wǎng)站申請(qǐng)得到。
注意:字符key必須小寫,例如:Authorization:key=YOUR_APP_SECRET
3.如何查詢應(yīng)用的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)?
登錄推送運(yùn)營(yíng)平臺(tái),在“推送統(tǒng)計(jì)->用戶數(shù)據(jù)”頁(yè)面的“數(shù)據(jù)詳情”中查看MIUI日聯(lián)網(wǎng)設(shè)備數(shù)。
4.如何查詢應(yīng)用類別?
登錄應(yīng)用商店開(kāi)發(fā)者站,在應(yīng)用管理界面,點(diǎn)擊應(yīng)用后的“管理”按鈕進(jìn)入應(yīng)用詳情頁(yè),點(diǎn)擊“查看資料”,在“發(fā)布設(shè)置->分類”中查看應(yīng)用的一級(jí)分類。
5.如果發(fā)現(xiàn)應(yīng)用類別有誤,是否可以修改?
可以修改。
2.推送速率QPS限制
2.1限制規(guī)則
小米推送對(duì)推送速率(QPS)的分配主要依據(jù)App的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)進(jìn)行分級(jí)計(jì)算。
QPS:表示1秒可調(diào)用的請(qǐng)求數(shù)。1個(gè)請(qǐng)求里最多可以攜帶1000個(gè)目標(biāo)設(shè)備。例如:3000 QPS時(shí),1秒內(nèi)最多可推送300萬(wàn)設(shè)備。
MIUI日聯(lián)網(wǎng)設(shè)備數(shù)的查詢路徑:推送運(yùn)營(yíng)平臺(tái)-推送統(tǒng)計(jì)-用戶數(shù)據(jù)-數(shù)據(jù)詳情
不同量級(jí)的MIUI日聯(lián)網(wǎng)設(shè)備數(shù)分配不同的QPS:
2.2 FAQ
1.QPS超限時(shí)會(huì)返回什么錯(cuò)誤嗎?
QPS超限時(shí)會(huì)返回錯(cuò)誤碼200002,原因:send message too frequent!
請(qǐng)降低您的并發(fā)請(qǐng)求數(shù),確保每秒的請(qǐng)求數(shù)不高于QPS限制,否則將無(wú)法推送。
優(yōu)化建議:
可以考慮多用聚合消息,降低QPS。
如使用https://api.xmpush.xiaomi.com/v2/message/regid或者h(yuǎn)ttps://api.xmpush.xiaomi.com/v3/message/regid將單條消息發(fā)送給多個(gè)目標(biāo)用戶。