OPPO厂商QPS限制说明

OPPO厂商QPS限制说明

OPPO平台限制

  • 限制规则 OPPO推送对QPS的分配主要依据应用的累计用户数,应用类别权重和平台推送系数三个值进行加权计算。具体请参考OPPO侧QPS说明
  • 累计用户数 在OPUSH平台上的查询路径是OPPO PUSH推送运营平台—我要推送消息—应用列表中的累计用户数。
  • 计算公式
    应用QPS = 推送QPS参考值 应用类别权重 平台推送系数
    例如:针对应用维度,30000 QPS表示1秒内本应用最多可推送给30000个用户(所有接口共享应用维度限速上限总值)。
    具体的QPS对应值如下:
累计用户数推送QPS参考值应用类别权重平台推送系数(默认 = 1)
≥10000万3000011
≥5000万且<10000万2000011
≥1000万且<5000万1000011
<1000万500011

备注:QPS(Quantity per second)表示1秒可调用OPPO PUSH的请求数。

  • 提升途径:暂不开放申请。

OPPO平台限制OPPO消息推送限制条件说明

OPPO平台限制OPPO消息推送限制条件说明

OPPO平台限制

限额说明

  • 公信通道(适用于默认的多用户普适性消息推送)中累计用户数 < 50000,可推送量为100000,累计用户数 ≥ 50000,可推送总数量为累计用户数 × 2。
  • 私信通道(适用于单个用户的私人消息推送)的推送数量不受限制,详情请参见 OPPO私信通道申请说明

额度查询指引

OPPO离线消息推送厂商应用开通指南(个推)

OPPO离线消息推送厂商应用开通指南

OPPO

1. 创建 OPPO 应用

  • 登录 OPPO 推送平台 登录/注册帐号:
  • 选择创建应用
  • 填写应用名称应用包名以及上传应用图标创建应用
  • 查看应用信息,获取 OPPO App ID、OPPO App Key、OPPO App Secret、OPPO Master Secret

2. 应用配置

  • 在个推开发者中心中填写相关厂商信息:

什么是个推厂商推送?

什么是个推厂商推送?

功能说明:个推整合适配版目前已整合华为、荣耀、小米、OPPO、vivo、魅族、坚果、索尼、海信等厂商通道,开发者可以一次性接入多家厂商的推送 SDK,或者选择性接入,支持 maven 配置,集成简单、维护方便。并且支持智能判断下发通道,可极大提升消息送达率。

应用场景:应用运行在后台、锁屏、应用被杀死时,通过厂商通道下发消息,提升消息送达率。

使用说明:前往下载中心下载个推SDK,参照厂商应用开通指南及个推Android集成指南开通、集成多厂商推送。

OPPO推送 打开范围中,启动应用内页的地址如何填写?怎么传递参数呢?

OPPO推送 打开范围中,启动应用内页的地址如何填写?怎么传递参数呢?

1)click_action_type为1时填写activity对应的intent action;click_action_type为4时填写activity的完整类名
2) 打开应用内页的action需要加标签
3) 传递参数放在键值对(即action_parameters)里,客户端通过intent.getExtras()获取。
4)push的intent-filter应与其他功能的intent-filter区分开,勿添加其他action与data标签。
5)click_action_type为5时scheme路径需要写在click_action_url参数上 。
示例:
客户端AndroidManifest声明打开的activity如下:

<activity android:name="com.coloros.push.demo.component.InternalActivity">
<intent-filter>
<action android:name="com.coloros.push.demo.internal" /> 
<category android:name="android.intent.category.DEFAULT" /> 
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<data android:scheme="https" />
<data android:scheme="http" />
<data android:scheme="command" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

API推送:
click_action_type为1时填写:com.coloros.push.demo.internal
click_action_type为4时填写:com.coloros.push.demo.component.InternalActivity
click_action_type为5时填写:command://test?key1=val1&key2=val2
平台页面:
web端推送时,选定打开应用内页,下图分别是click_action_type为1、4、5时示例:

OPPO推送 通知通道(Channel)适配

OPPO推送 通知通道(Channel)适配

通道/Channel

通知通道(Channel)是Android 8.0(API ≥ 26)引入的新功能,旨在解决以下问题:
1)应用的通知越来越多,给用户造成明显打扰。
2)但用户只能全局屏蔽这个应用的全部通知,不能屏蔽部分,然后留下对自己有用的。
从 Android8.0(API ≥ 26)开始,Android要求开发者必须为所有的通知分配通道,不同类的消息走不同的通道发送。 用户可关闭单个通道的消息通知, 不会影响其它通道的消息推送。 以下图为例:将通知分成了 4 种 Channel,3 个 Channel Group。
Channel为实际的通知类别。Channel Group为一组 channel,仅用于做分组区分,开发者可视自己的业务需求而定。每个通知类别的权限互相独立,互不影响。

Channel适配

适配步骤

适配通知通道步骤详见Android官方文档:《创建和管理通知渠道 》
注意: 客户端适配通道后, 开发者若调 API 发送,则必须带通道 ID 发送。 开发者若用 OPush 消息推送平台推送消息,则必须在“通道配置 → 新建通道”模块(如下图)中登记通道,再在发送消息时选择通道发送。

说明:

分组即Channel Group, 非必填,将按照系统默认分组进行处理

通道即Channel,必填。必须填入客户端创建的通道名称和对应通道ID

注意事项

2.1、通道需在产品发布之前需由产品提前规划好消息分类, 如“订单通知”、“评论回复提醒”、“新资讯提醒”等,不同分类的消息走不同通道发送。规划好的通道不应该在不同版本频繁变更,以免给运营同学带来不便。


2.2、通道名称是对用户可见的,因此需要使用方便用户理解的文本。建议:
1)通道命名符合通知内容特征,例如,发送快递接收信息的专用通道,命名为“快递信息”,便于用户理解。尽量避免通道名称重复
2)命名可以是中文,英文。避免数字、包名等不能指代通道信息特征的符号。其中通道名包含“.”的是不允许的。

2.3、对于target API≥ 26(Android 8.0)的应用,必须适配通知通道,未指定通道的情况下发出的通知将无法显示。
对于target API ≤ 25(Android 7.1)的应用,可以不适配。在8.0及以上的设备,通知也能正常发出。


2.4、合理设置通道级别(Importance),以达到合适的通知效果(过度打扰可能导致用户修改通道设置甚至关闭通知开关)。


2.5、合理控制通道数量,尽量避免仅有1个或者超过5个,这样才能更好发挥出通道控制的效用。


2.6、根据需要可以使用通道组(Group)来在设置界面中对通道进行分组归1类,方便用户区分识别。


2.7、适配 Channel 后,在 Android 8.0 以前的设备,会完全无视这个功能,因此不会带来任何兼容性问题。


2.8、创建通知通道后,通知行为以通道设置为准,应用无法再修改,而是交由用户进行控制。

OPPO开放平台消息推送帐号管理

OPPO开放平台消息推送帐号管理

帐号角色

权限配置

角色分类配置帐号角色消息审核消息创建与下发查询消息数据
主帐号
管理员
审核者
推送者

通常情况下一个企业在OPPO开放平台只能注册一个开发者帐号,但一个企业下可能会有多个应用,所以一个开发者帐号下通常会存在多个应用。为满足多个不同应用之间对于推送的管理需求,避免误发、错发消息给用户,OPPO PUSH平台对登录帐号做了角色分类和权限管控。
OPPO PUSH平台目前存在以下四种角色:主帐号、管理员、推送者、审核者

1)主帐号 即在开放平台认证过的开发者帐号,可以给应用配置相应角色,主要有管理员、审核者、推送者三种角色,角色数量不限,开发者可根据具体的业务场景和需求进行数量调整。主帐号默认为管理员角色,具有平台所有的权限。
2)子帐号分管理员/审核者/推送者三种角色,一个帐号只能拥有一种角色。
3)管理员 角色可以由主帐号创建,在OPPO PUSH平台中,管理员拥有最高的权限。
4)审核者 角色由管理员角色创建,审核者不能配置其他帐号,仅拥有OPPO PUSH平台的功能使用权限。
5)推送者 角色由管理员角色创建,仅能推送消息和查询消息数据。

配置子帐号权限

帐号管理仅主帐号和管理员可见,可对子账号进行新增、编辑和删除的操作。

OPPO开放平台 推送数据统计

OPPO开放平台 推送数据统计

单条推送消息数据

点击【推送记录】-【通知栏数据】,可以查看每条消息的详细数据。

点击“详情”,可显示每个推送任务的详情、目标用户、后续动作等相关信息
点击漏斗,查看查看数据下发中事件流失的具体统计

应用数据总览

数据指标解读

1)目标数:创建推送任务时,提交的用户ID数据量。
2)有效数:经过系统过滤去除无效设备数据。服务端会过滤出判定为失效的设备ID,设备失效的原因可能有:用户卸载、刷机、app三个月之内未有联网行为等。
3)推送数:实际成功下发的用户数,即在消息有效期内成功连接并获取该条消息的数量。
4)到达数:成功将消息推送到用户手机上的数量。
5)展示数:用户手机收到消息后,成功在通知栏中展示出来的消息数量。
6)点击数:消息在系统通知栏展示后,用户点击的数量。
7)累计用户:应用累计注册的设备数,同一设备重复注册只算一个。
8)当日活跃用户数:当天有过连接记录的设备数据。
9)当前在线用户数:指当前保持着推送长连接的设备数。

OPPO推送 登陆OPUSH推送运营平台

OPPO推送 登陆OPUSH推送运营平台

使用企业开发者账号或推送运营平台应用子帐号登录开放平台,点击链接进入OPUSH推送运营平台,或通过“管理中心 -生态服务- 应用服务- 开发服务” 进入OPUSH推送运营平台。
推送运营平台应用子帐号配置,请参考帐号管理


名词解析

1)应用名称:产品的表达信息,显示在客户端界面供手机用户搜索和下载的重要标识。
2)应用包名:应用的唯一标识。
3)AppId:应用的身份标识,在上传应用后获得。
4)推送类型:分为正式和测试推送。“测试推送”每天仅可推送1000条消息,限测试使用;“正式推送”需要上架应用商店后才能申请。
5)累计用户:从接入推送服务的app客户端,用户安装并激活的累计用户量,去除已卸载用户数。
6)可推送总数:单个应用每天可推送消息总数,具体可以查看推送服务限制-推送数量限制规则累计用户数和可推送总数在OPPO推送运营平台可查询,每天会刷新。

OPPO推送服务端设置广播推送

OPPO推送服务端设置广播推送

广播推送

OPPO PUSH提供广播和单点推送两种下发消息的方式。以下是这两种推送方式的介绍及具体的API使用方式。

广播推送

广播推送主要用于向大批量用户推送同一条消息的场景,例如标签推送、大批量的注册ID推送等。一般情况下,广播消息会在同一时间向这批目标设备推送消息,如果设置了定速推送,则按照给定的速度均匀向圈定的目标推送消息。
使用广播推送,需要先在OPPO PUSH保存一条广播消息体,再通过创建好的消息体对应的消息ID,调用OPPO PUSH的广播推送接口推送该条消息。

保存通知栏消息内容体

接口详情

描述内容
接口功能保存消息内容体,获取消息Id
请求方法POST
请求编码UTF-8
Content-Typeapplication/x-www-form-urlencoded
请求路径/server/v1/message/notification/save_message_content

请求参数

除了共有的鉴权参数外,消息体内容的参数均以key-value的形式填写在HTTP请求的body中。

名称类型必须描述
auth_tokenstring鉴权令牌,详见鉴权一章。

消息体内容参数:参数主要围绕消息体的具体内容,以及推送的方式,消息体内容参数设置详情可查看通知栏消息

响应参数

调用接口后,OPPO PUSH会响应JSON格式的字符串,包含以下字段:

名称类型必须描述
codeInt返回码,具体含义请参考调用地址,公共参数和返回码一章。
messageString响应信息描述
dataStringJSON格式的响应返回值,成功调用将包含消息ID,后续需要使用消息ID来进行广播消息推送。

响应示例

{
    "code": 0,
    "message": "success",
    "data": {
        "message_id": "58ad47319e8d725350a5afd5" //消息ID
      }
}

调用广播推送

接口详情

描述内容
接口功能发送通知栏消息
请求方法POST
Content-Typeapplication/x-www-form-urlencoded
请求编码UTF-8
请求路径/server/v1/message/notification/broadcast

请求参数

名称类型必须默认描述
auth_tokenstring鉴权令牌,详见鉴权一章。
message_idString消息ID。
消息ID是调用保存消息体接口成功后响应的唯一标识。
广播通知栏消息ID的格式为AppID-1-3-ObjectID,如ZngnvJIM7wQusNtbqYnpH6XX-1-3-622ea78f923805b1389e61c2,其中ZngnvJIM7wQusNtbqYnpH6XX是某个业务的AppID,622ea78f923805b1389e61c2是这条消息在Push的唯一ID。
target_typeShort目标类型。
接受一个short类型数字,目前推送目标可指定以下几种:
2:表示推送目标为注册ID类型,
5:表示推送目标为别名类型,
6:表示推送目标按照标签对应的用户群圈定;
target_valueString具体的推送目标用户信息,根据推送目标类型有不同的传入方式:
1.注册ID类型或别名类型的推送。这两种类型一次调用可传入最多1000个目标,目标之间以英文字符 ; 为分隔符。如传入注册ID目标列表,字符串可表示为 “RegID1;RegID2;RegID3”, 或者别名名单 “Alias1;Alias2;Alias3” 。

标签:
2.标签推送。标签推送的目标值使用标签表达式。
标签表达式由一个或多个指令组合而成,一个指令包括组合字段和标签名单,表示若干个标签的组合搭配。
假设有一个标签表达式,标签表达式的配置和计算规则如下:
{ “or” : [ “tagID1”, ” tagID2″ ], “and” : [ “tagID3”, “tagID4”], “not” : [ “tagID5”, “tagID6”] }
表达式逻辑计算如下:
计算 “or” 字段的结果,得到tagID1和tagID2的并集A;计算 “and” 字段的结果 tagID3和tagID4的交集B;
计算 “not” 字段的结果 (tagID5和tagID6的并集C’)的非集=C最后计算所有A和B和C的交集。
最终结果为 (tagID1 ∪ tagID2)∩(tagID3 ∩ tagID4)∩(¬(tagID5 ∩ tagID6))

响应参数(JSON)

名称类型必须描述
codeInt返回码,具体含义请参考调用地址,公共参数和返回码一章
messageString响应信息描述
dataStringJSON格式的响应返回值,成功调用将包含消息ID和任务ID。

推送请求调用成功响应示例

{
    code:0,
    message: "success",
    data : {
        message_id : xxxxxxxxx // 消息Id
        task_id : xxxxxxxxx // taskId
    }
}

如果推送目标存在问题,会根据对应异常的目标进行响应,示例如下:

{
    code:0,
    message: "",
    data : {
        message_id : xxxxxxxxx, // 消息ID
        task_id:XXXXXXXXXX,     //推送任务ID
        // 部分目标有异常,将以 错误码——对应目标名单的形式返回
        "10000": [
            "J0476035d625e6c64567f71487e040e7d017f0558675b",
            "J0476045d625e6c64567f71487e040e7d017f0558675b",
            "J0476035d625e6sd64567f71487e040e7d017f0558675b"
        ]
   }
}

返回码(code)

Code英文描述中文描述
10000Invalid Registration_idregistration_id格式不正确

OPPO开放平台 OPPO推送独立接口上传图片

OPPO开放平台 OPPO推送独立接口上传图片

上传图片

OPPO PUSH提供携带图片的消息推送能力,在使用图片推送前,需要先将图片上传到OPPO PUSH服务端,由OPPO PUSH服务端统一处理存储,推送消息时使用上传成功的图片ID作为图片索引,由OPPO PUSH服务将图片组装为消息体的内容部分并下发。

上传大图

接口

环境HTTPS请求地址备注
生产环境https://api-media.push.heytapmobi.com/媒体服务
沙箱环境暂无
描述内容
接口功能上传图片
请求方法POST
请求编码UTF-8
Content-Typemultipart/form-data
请求路径/server/v1/media/upload/big_picture

请求参数

图片文件按照multipart/form-data标准携带图片文件,图片要求尺寸876*324 px,文件大小1M以内,格式为PNG/JPG/JPEG。

名称类型必须默认描述
FILE图片文件
picture_ttlInt86400图片保存的存活时间(time_to_live) (单位:秒),最长30天

响应参数(JSON)

名称类型必须描述
codeInt返回码,请参考公共返回码与接口返回码
messageString错误详细信息,不存在则不填
dataString返回值,JSON类型,包含响应结构体
{
    "code": 0,
    "message": "success",
    "data": {
        "big_picture_id": xxxxxxxxx //大图id
      }
}

上传图标

接口

描述内容
接口功能上传图片
请求方法POST
请求编码UTF-8
Content-Typemultipart/form-data
请求路径/server/v1/media/upload/small_picture

请求参数

图片文件按照multipart/form-data标准携带图片文件,图片要求尺寸144*144 px,文件大小为50k以内,格式为PNG/JPG/JPEG

名称类型必须默认描述
FILE图片文件
picture_ttlInt86400图片保存的存活时间(time_to_live) (单位:秒),最长30天

响应参数(JSON)

名称类型必须描述
codeInt返回码,请参考公共返回码与接口返回码
messageString错误详细信息,不存在则不填
dataString返回值,JSON类型,包含响应结构体

响应示例

{
    "code": 0,
    "message": "success",
    "data": {
        "small_picture_id": xxxxxxxxx, //图标id
      }
}

OPPO推送能力开发 调用地址,公共参数和返回码

OPPO推送能力开发 调用地址,公共参数和返回码

请求地址

OPPO PUSH提供以下三个请求URL地址,分别提供国内的消息推送服务,海外消息推送服务,以及国内环境的其他非推送的反馈功能。

环境HTTPS请求地址备注
国内环境https://api.push.oppomobile.com/对国内设备推送消息
海外环境https://api-intl.push.oppomobile.com/对海外设备推送消息
国内环境https://feedback.push.oppomobile.com/反馈功能

如何区分国内设备:
RegistrationID 使用“_”符号分隔成数组。
数组大小为1:regId属于国内;如:b6bbd94b59cdb5df8391642c1509b7fe
数组大小为2:第一个值为“CN”,属于国内;如:CN_b6bbd94b59cdb5df8391642c1509b7fe
数组大小为3:第二个值为“CN”,属于国内;如:OPPO_CN_b6bbd94b59cdb5df8391642c1509b7fe

公共参数

公共参数是所有请求都需要携带的参数。

名称类型默认描述
auth_tokenString必填鉴权令牌
auth_token有效期为24小时,过期后无法使用,在HTTP请求体中携带该参数。 鉴权令牌通过调用鉴权接口可以获得,详情请参考鉴权章节。

返回码

返回码是携带在接口响应的code字段中,范围在(-1-100)的数字,通过返回码可以判断接口调用的结果。表示错误的返回码一般是由于用户的请求不符合调用规范引的。用户遇到这些错误的返回,建议先检查应用的接入权限,推送权限是否正常,以及是否按照参数各式和限制正确设置请求参数。

Code英文描述中文描述
-2Service in Flow Control服务器流量控制
-1Service Currently Unavailable服务不可用,此时请开发者稍候再试
0Success成功,表明接口调用成功
11Invalid AuthToken不合法的AuthToken
12Http Action Not AllowedHTTP 方法不正确
13App Call Limited应用调用次数超限,包含调用频率超限
14Invalid App Key无效的AppKey参数
15Missing App Key缺少AppKey参数
16Invalid Signaturesign校验不通过,无效签名
17Missing Signature缺少签名参数
18Missing Timestamp缺少时间戳参数
19Invalid Timestamp非法的时间戳参数
20Invalid Method不存在的方法名
21Missing Method缺少方法名参数
22Missing Version缺少版本参数
23Invalid Version非法的版本参数,用户传入的版本号格式错误,必需为数字格式
24Unsupported Version不支持的版本号,用户传入的版本号没有被提供
25Invalid Encoding编码错误,一般是用户做http请求的时候没有用UTF-8编码请求造成的
26IP Black ListIP黑名单
27Access Denied没有此功能的权限,拒绝访问
28App Disabled应用不可用
29Missing Auth Token缺少Auth Token参数
30Api Permission Denied该应用没有API推送的权限
31Data Not Exist数据不存在
32Data Duplicate数据重复
33The number of messages exceeds the daily limit消息条数超过日限额
34The number of upload pictures exceeds the daily limit上传图片超过日限额
40Missing Required Arguments缺少必选参数,API文档中设置为必选的参数是必传的,请仔细核对文档
41Invalid Arguments参数错误,一般是用户传入参数非法引起的,请仔细检查入参格式、范围是否一一对应
51Invalid Picture图片无效,一般是图片格式、图片分辨率、图片大小不符合格式及图片未上传等,请仔细检查图片格式及上传文件方式。

业务级错误问题:
请求后端业务服务器出现的问题,返回的错误码在10000到20000之间,具体业务错误码可参见广播推送、单点推送等接口。 每个接口最多10个返回码

OPPO推送服务端 Java SDK集成

OPPO推送服务端 Java SDK集成

接入准备

运行环境

SDK使用Java编写,接入前需确认是否安装Java环境并且版本为1.7及以上

获取SDK

1)开发者需要登录推送运营平台获取应用的AppKey, MasterSecret
2)下载SDK相关包:OPush_JAVA_SDK.zip

导入SDK

1)解压已下载的SDK包
2)将文件夹下所有jar文件放入项目工程的libs目录
3)刷新工程,确保文件出现在libs目录下。如果没有的话请手动添加

SDK类定义说明

类名使用说明
Sender发送消息工具类,可以发送单推、批量单推、广播消息
Environment枚举类
Environment.CHINA_PRODUCTION 中国
Environment.INTERNATIONAL 海外
Notification通知栏消息
Target推送目标类,包含推送目标类型、推送目标
TargetType推送目标类型,支持registration_id推送类型
Result服务器返回的结果
ReturnCode返回的状态码,根据这个状态可以自检请求参数的是否合法
ReturnCode.ErrorCode平台返回的状态码枚举类

详情见SDK javadoc

接入SDK示范

创建sender对象

SDK提供Sender类封装了OPPO Push推送服务的各类服务接口。因此,使用SDK推送消息或调用其他服务,首先要创建Sender对象。

// 使用appKey, masterSecret创建sender对象(每次发送消息都使用这个sender对象)
Sender sender = Sender.newBuilder()
        .appKey("appKey") // 设置appKey
        .masterSecret("masterSecret") // 设置masterSecret
        .env(Environment.CHINA_PRODUCTION)  // 中国
        .httpMaxConnection(64) // 设置http最大连接数
        .httpMaxRoute(64)   // 设置最大http路由连接数
        .httpConnectionTimeout(5000) // http连接超时时间
        .httpConnectRequestTimeout(5000) // 等待连接超时时间
        .httpSocketTimeout(5000) // socket超时时间
        .build();

推送消息

创建通知栏消息体

推送消息前,需要构造消息内容,SDK提供Notification类供开发者设置消息内容。

/**
 * 这是构造一个通知栏消息体Notification对象的实例方法。
 * 请注意,后续的例子会调用这个getNotification()方法
 * */
private Notification getNotification() {
    Notification notification = new Notification();
    
    // 标题,内容是必填项
    notification.setTitle("通知栏消息tile");
    notification.setContent("通知栏内容");

    /*
     * 以下参数非必填项,参考OPPO push服务端api文档进行设置,本示例选取部分参数进行示范
     */
    //通知栏样式 1. 标准样式  2. 长文本样式  3. 大图样式 【非必填,默认1-标准样式】
    notification.setStyle(1);
    // App开发者自定义消息Id,OPPO推送平台根据此ID做去重处理,对于广播推送相同appMessageId只会保存一次,对于单推相同appMessageId只会推送一次
    notification.setAppMessageId(UUID.randomUUID().toString());
    // 应用接收消息到达回执的回调URL,字数限制200以内,中英文均以一个计算
    notification.setCallBackUrl("http://www.test.com");
    // App开发者自定义回执参数,字数限制50以内,中英文均以一个计算
    notification.setCallBackParameter("");
    // 点击动作类型0,启动应用;1,打开应用内页(activity的intent action);2,打开网页;4,打开应用内页(activity);【非必填,默认值为0】;5,Intent scheme URL
    notification.setClickActionType(4);
    // 应用内页地址【click_action_type为1或4时必填,长度500】
    notification.setClickActionActivity("com.coloros.push.demo.component.InternalActivity");
    // 网页地址【click_action_type为2必填,长度500】
    notification.setClickActionUrl("http://www.test.com");
    // 动作参数,打开应用内页或网页时传递给应用或网页【JSON格式,非必填】,字符数不能超过4K,示例:{"key1":"value1","key2":"value2"}
    notification.setActionParameters("{\"key1\":\"value1\",\"key2\":\"value2\"}");
    // 展示类型 (0, “即时”),(1, “定时”)
    notification.setShowTimeType(1);
    // 定时展示开始时间(根据time_zone转换成当地时间),时间的毫秒数
    notification.setShowStartTime(System.currentTimeMillis() + 1000 * 60 * 3);
    // 定时展示结束时间(根据time_zone转换成当地时间),时间的毫秒数
    notification.setShowEndTime(System.currentTimeMillis() + 1000 * 60 * 5);
    // 是否进离线消息,【非必填,默认为True】
    notification.setOffLine(true);
    // 离线消息的存活时间(time_to_live) (单位:秒), 【off_line值为true时,必填,最长3天】
    notification.setOffLineTtl(24 * 3600);
    // 时区,默认值:(GMT+08:00)北京,香港,新加坡
    notification.setTimeZone("GMT+08:00");
    // 0:不限联网方式, 1:仅wifi推送
    notification.setNetworkType(0);
    return notification;
}

推送单推通知栏消息

// 创建通知栏消息体
Notification notification = getNotification(); 
// 创建推送目标对象,传入注册ID
Target target = Target.build("CN_8fa0618f178145d8c2a44091a1326411"); 
// 调用单推接口,推送消息,获得调用结果
Result result = sender.unicastNotification(notification, target); 
// 获取http请求状态码
result.getStatusCode(); 
// 获取平台返回码
result.getReturnCode(); 
// 获取平台返回的messageId
result.getMessageId();  

推送批量单推通知栏消息

// batch最大长度为1000,超出会导致请求失败
Map batch = new HashMap(); 
// 创建目标对象并加入到批量队列中
batch.put(Target.build("CN_ddfaa7db1e4ecf75014143bdbc3e53ea"), getNotification());
batch.put(Target.build("CN_8fa0618f178145d8c2a44091a1326411"), getNotification());
// 调用批量单推接口,推送消息,获得调用结果
Result result = sender.unicastBatchNotification(batch); 
// 获取http请求状态码
result.getStatusCode(); 
// 获取平台返回码
result.getReturnCode(); 
// 获取对应批量单推结果
List batchResult = result.getUnicastBatchResults(); 
for (Result.UnicastBatchResult record : batchResult) {
    record.getMessageId();
    record.getErrorCode();
    record.getErrorMessage();
    record.getTargetValue();
}

保存和发送广播通知栏消息

/**
 * 推送广播消息分为两步
 * 首先调用保存消息体接口,保存广播消息内容,得到消息ID
 * 使用消息ID调用广播推送接口,推送广播消息
 * */

// 创建通知栏消息体
Notification broadNotification = getNotification();

// 发送保存消息体请求
Result saveResult = sender.saveNotification(broadNotification); 
// 获取messageId
String messageId = saveResult.getMessageId(); 
// 获取http请求状态码
saveResult.getStatusCode(); 
// 获取平台返回码
saveResult.getReturnCode(); 


// 创建推送目标 广播目标接受多个注册ID,字符串中以英文分号';'分割
Target target = new Target(); 
target.setTargetValue("CN_ddfaa7db1e4ecf75014143bdbc3e53ea;CN_8fa0618f178145d8c2a44091a1326411");

// 发送广播消息
Result broadResult = sender.broadcastNotification(messageId, target); 
// 获取广播taskId
broadResult.getTaskId(); 
List errorList = broadResult.getBroadcastErrorResults();
// 如果大小为0,代表所有目标发送成功
if (errorList != null && errorList.size() > 0) { 
    for (Result.BroadcastErrorResult error : errorList) {
        // 错误码
        error.getErrorCode(); 
        // 目标
        error.getTargetValue(); 
    }
}

上传图片

如果要推送带图片的消息,需要先上传图片。
注意:仅广播通知栏消息 支持图片推送功能。

上传大图

// 指定图片文件
File bigPicture = new File("大图文件路径");
// 图片过期时间(单位秒),最长30天 
int bigPictureTtl = 86400; 
// 使用Sender调用上传大图接口 
Result uploadBigPicResult = sender.uploadBigPicture(bigPictureTtl, bigPicture); 
// 获取大图id,保存消息体填入
String bigPictureId = uploadBigPicResult.getBigPictureId(); 

// 创建消息体时选择图片推送消息类型(3表示图片推送),并传入图片ID
Notification notification = getNotification();
notification.setStyle(3);
notification.setBigPictureId(bigPictureId);

// 执行保存消息体,广播推送等后续操作
// save and send notification ...

上传图标

// 指定图片文件
File smallPicture = new File("小图文件路径");
// 图片过期时间(单位秒),最长30天
int smallPictureTtl = 86400;  
// 使用Sender对象调用上传小图接口
Result uploadSmallPicResult = sender.uploadSmallPicture(smallPictureTtl, smallPicture);
// 获取小图id,保存消息体
String smallPictureId = uploadSmallPicResult.getSmallPictureId(); 

// 创建消息体时选择图片推送消息类型(3表示图片推送),并传入图片ID
Notification notification = getNotification();
notification.setStyle(3);
notification.set(smallPictureId);

// 执行保存消息体,广播推送等后续操作
// save and send notification ...

OPPO开放平台 OPPO推送SDK数据安全说明

OPPO开放平台 OPPO推送SDK数据安全说明

SDK工作方式

OPush SDK在打包时被集成到应用中,随应用启动而运行,当应用关闭时,SDK会随着应用关闭,不会在后台进行任何操作。

SDK权限说明

SDK需以下权限,具体集成方法请参考“Android SDK集成”

//网络相关
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
<uses-permission android:name="android.permission.INTERNET">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">

//鉴权
android:permission="com.heytap.mcs.permission.SEND_PUSH_MESSAGE"

SDK数据搜集

请参见 “推送个人信息保护政策”和 “个人数据处理说明

SDK数据安全保护

服务端鉴权,详情请见服务端“鉴权

APP 隐私政策声明

当您的应用集成本SDK后,需要在APP隐私政策中添加以下内容:
SDK名称:OPUSH SDK
使用目的:推送通知栏消息
使用方式:去标识,加密传输的安全方式
收集数据类型:设备信息、应用信息、网络信息

OPPO开放平台 推送私信通道申请

OPPO开放平台 推送私信通道申请

为了改善终端用户的通知体验,营造良好可持续的推送生态,OPPO推送对各个APP的push消息数量进行了限量管控;同时针对即时聊天/系统提醒等push需求可以申请走私信通道(该通道不限量);

消息分类说明

OPPO PUSH将消息分为私信消息和公信消息两类。
私信消息是针对用户有一定关注度,且希望能及时接收的信息,如即时聊天信息、个人订单变化、快递通知、订阅内容更新、评论互动、会员积分变动等,与单个用户信息强相关的内容;

私信消息场景概述
通讯信息用户间聊天消息(私信、私聊、群聊),包括聊天消息中的图片、文件传输、音/视频通话,不包括官方号或者商家批量推送给用户的私信、广告;
个人状态变化用户帐号上下线、帐号状态变化、帐号信息认证、等级权限变更等相关提醒。
个人财务提醒个人财务、交易相关事项提醒,包括收付款、银行到账&扣款、交易提醒、催缴&退款信息、充值、账单、贷款受理进度、还款/逾期提醒、资金冻结提醒、资金限制提醒、缴纳保证金提醒等。
个人设备提醒1、IoT设备发出的设备状态/信息/提示/告警等提醒消息。
2、监控设备监控动态及报警提醒;
个人资源变化用户个人的虚拟财产如积分/余额等变更提醒,以及增值服务的充值/到期/续费/到账提醒。
注意:
这里的虚拟财产必须是非促销类的, 促进用户增长的领金币或促销类红包/优惠券不属于重要消息。
个人订单状态变化及日程/邮件提醒1、生成订单相关信息  如:下单成功、司机接单提醒、卖家收到新订单、订单详情、订单状态、物流状态、订单售后、订单投诉处理进度、开票信息等;
2、日程提醒:登机、酒店入住、会议提醒等等。
3、邮件的发送、接收状态信息
个人手动关注的
某个主体内容更新
1、用户在App内主动设置的提醒信息并确认会收到推送,如:主动设置的开播提醒、书籍更新;
2、设置的商品或机票降价、商品开团提醒;主动关注的行情动态提醒;主动设置的签到打卡提醒;付费订阅内容更新提醒等。
注意:
1)关注的主播开播提醒、特别关注的帐号/作者发布动态才属于重要消息,普通关注的帐号/作者发布动态不属于重要消息。
2)被赞、被@、关注、转发、评论、回复等社交互动类消息属于普通消息,不属于重要消息,但用户对商家的点评提醒、老师对学生作业的评论提醒除外。

公信消息是针对用户关注度不高,且对于接收这类信息并无心理预期,如热点新闻、新品推广、平台公告、社区话题、有奖活动等,多用户普适性的内容;

公信消息场景概述
内容推荐非用户主动订阅,APP向用户推送的资讯、内容。如:微博、资讯、新闻、点评、小说、广告、视频、音频、直播等等
陌生人推荐大V、主播、异性、可能认识的人等
促销活动及推荐商品推广、宣传、折扣、红包、领劵、返现等优惠信息;推荐产品功能、服务更新,商品、商家、店铺推荐的内容,例如“您的授信额度增加”
业务到期提醒提醒用户保险、医疗、水电到期续保续费,或者话费、会员等月结日充值提醒等服务续期类推送
运营活动各类APP内非用户主动设置的需用户参与的活动提醒消息、小游戏提醒、服务或商品评价提醒等。 如:抽奖、积分、签到、任务、分享、偷菜、领金币等
社交动态用户之间的社交互动提醒,如:添加好友、被赞、被@、评论、留言、关注、转发、评论/回复
普通关注着的动态关注的人发布作品,如:关注的人直播提醒、动态更新

公信信道和私信信道权限对比

类型私信信道公信信道
推送数量限制不限量有公信类通道共享推送次数,当日达到推送量限制后,所有公信类通道将无法再推送消息;
推送限量:当累计用户数<50000时,按100000计算;当累计用户数≥50000时,累计用户数*2。
配置方式客户端适配通道、并且邮件申请通过后,需要在OPPO推送平台上登记该通道,并将通道对应属性设置为“私信”默认开通
服务端推送方法单点推送”api(服务端SDK对应unicastNotification、unicastBatchNotification方法),channel_id带上私信通道的通道ID“单点推送”和“广播推送”都支持;
消息类型限制私信消息(通过私信模板限制)不限制,公信消息/私信消息均可

创建私信通道

Step1:应用客户端开发在客户端创建私信通道,并记下通道名称和通道ID。

创建通道方式:通知通道(Channel)适配
注意:通道名称和通道ID需与申请表格内提交一致并确保后续消息下发时消息体与对应通道的模板相匹配。

Step2:将已创建通道的客户端发版。

Step3:开发者进行私信通道登记

用开发者帐号登陆push.oppo.com,进入应用,在【配置管理-通道配置-新建通道】,进行通道登记,“消息ID”和“通道名称”与客户端填写的一致,点击【确定】进行提交。

私信通道权益申请

1、私信通道首次申请

step1:填写私信模板

下载表格文档,并填制通道信息:
开通私信通道申请-APP名称-申请日期.xlsx

step2:发送邮件至push@oppo.com,标题及正文如下,同时附上私信模板Excel文档

邮件标题:私信通道开通申请——应用名称
邮件正文:
应用ID:XXX
应用名称:XXX
应用包名:XXX
私信专用通道名称:
私信专用通道ID:
业务接口人联系微信:
XX应用申请开通私信通道,并承诺遵守运营规则,仅在私信通道推送模板相关消息。
该通道对应的私信消息模板见附件:

提示:
1)如果之前没有创建过通道,则需要新建通道,因为根据规范Android8.0以上推送消息需要配置通道,否则消息可能无法触达用户。
2)“通讯信息”需单独开通一个私信通道,详见下方《无模板私信通道申请》

2、 新增模板申请:

当有新增的私信消息模板,请发送邮件至push@oppo.com进行记录,以免触发违规。

邮件标题:新增私信模板申请——应用名称
邮件正文:
应用ID:XXX
应用名称:XXX
应用包名:XXX
私信专用通道名称:
私信专用通道ID:
业务接口人联系微信:
XX应用申请开通私信通道,并承诺遵守运营规则,仅在私信通道推送模板相关消息。
该通道对应的私信消息模板见附件:

3、无模板私信通道申请

对于“通讯信息”类型,若可以提供对应的模板,则按照<1、私信通道首次申请>进行操作申请;
若是无法提供模板,则需要针对“通讯信息”单独开通一个私信通道,该通道能且只能发送聊天消息;
特别说明:该通道申请后,OPPO PUSH将会定期核查,若应用于该通道发送“通讯信息”以外的消息,将永久禁用单独聊天消息功能;

step1:填写《无模板私信通道申请表》

下载表格文档,并填制通道信息:
开通无模板私信通道申请-APP名称-申请日期.xlsx

step2:发送邮件至push@oppo.com,标题及正文如下,同时附上该通道对应的场景说明、及相关截图或录屏内容附件

邮件标题:无模板私信通道申请——应用名称
邮件正文:
应用ID:XXX
应用名称:XXX
应用包名:XXX
私信专用通道名称:
私信专用通道ID:
业务接口人联系微信:
XX应用申请开通无模板的私信通道,并承诺遵守运营规则,仅在该通道推送“通讯信息”。
对应的场景及相关截图或录屏内容见附件

运营监管及处罚

处罚标准

对于私信通道发送公信信息的情况

OPPO Push将会对私信通道发送信息情况结合提供的私信模板进行监控,若出现利用私信通道发送模板以外的信息量达到一定比例,将视为违规;
第一次违规:邮件警告,并要求7个自然日整改,逾期未收到反馈邮件,按照二次违规处理;
第二次违规:关闭私信权限15个自然日,
第三次违规:关闭私信权限30个自然日;
三次以上属于严重违规,永久禁用私信通道;

*可能触发该违规的场景:
1、开发者仅申请开通了私信通道,没有提交模板;
2、开发者提供的模板与私信通道实际推送的消息内容不一致;
建议开发者合理评估应用推送需求。若公信额度充裕,优先使用公信通道进行消息下发;若申请私信通道权限,请确保私信通道内推送的消息与所提交的模板内容一致。

对于通讯消息通道发送除聊天以外的信息

针对通讯消息,提交无模板私信通道申请。平台将会定期核查通讯消息通道,若应用在该通道发送“通讯信息”以外的消息,将永久禁用单独聊天消息功能;

权益恢复申请

因私信通道未提交模板或发送模板以外信息,被邮件警告或者关闭私信通道的app,可以在整改完成后,填写附件并发送邮件至push@oppo.com申请恢复;
下载表格文档,并填制通道信息:
恢复私信通道申请-APP名称-申请日期.xlsx

邮件标题:恢复私信通道申请——应用名称
邮件正文:
应用ID:XXX
应用名称:XXX
应用包名:XXX
私信专用通道名称:
私信专用通道ID:
业务接口人联系微信:
您好,我司应用XX(应用名称)于XXXX年XX月XX日由于XX被关闭XX私信通道。
当前,我司已进行整改,下线违规消息,整改报告见附件。
同时,我司承诺:不再用私信通道发送公信。
请OPPO推送团队恢复XX(应用名称)的私信通道。 该通道对应的私信消息模板见附件:

FAQ

1、公信通道必须走公信消息,私信通道必须走私信消息吗?

公信通道不限制消息类型;
私信通道必须走私信消息,且确保这些私信消息已经提交了对应的模板,否则会受到到运营监管处罚;

2、私信通道开通后,随着时间推移,各个APP的私信模板由于业务的诉求而变更时,需要重新提交申请么?

需要;
私信模板是判断私信通道push合规使用的重要方式,APP业务私信模板发生变化,若没有及时知会给OPPO PUSH团队,则会使得这部分私信被监控系统判断为公信内容,而收到对应处罚。

3、已经申请过了私信通道,原有的私信通道还有效吗?

原有通道有效,但需要补充私信模板。

4、不申请私信通道会会有什么影响吗?

可以使用公信通道下发消息,公信通道存在每日推送量限制
公信推送量限制请参考《推送服务受限说明

5、创建私信通道需要按私信类型分类吗?

有模板私信通道须与无模板(通讯消息)私信通道区分(通道ID与名称不能为同一个),以免系统识别通讯消息通道下发除聊天以外的消息导致违规。
注意:通道名称和通道ID需与申请表格内提交一致并确保后续消息下发时消息体与对应通道的模板相匹配。

6、模板Excel附件应该怎么填制呢?

1、选择对应的私信类型,私信类型对于不在分类中的场景,私信类型请选择“其他”;
2、标题模板和内容模板中符号“$$”之间的内容是“可变量”,其他的内容是“固定不变的”;为确保模板是对应到某一固定的业务场景,模板内容不能全部为“可变量”,必须包含有具体含义的固定不变内容。

示例:您好,请查收$XXXX$ ;您好,您的设备$XX$检测到$XXX$;

3、对于通讯消息及需要用户主动设置才接收到的提醒(如订阅类通知),需要提供相关设置界面的截图或者录屏材料,以确保申请的场景满足规范要求;

OPPO消息推送 样式配置教程

OPPO消息推送 样式配置教程

样式配置

支持Web平台及API两种推送方式,Web平台推送请参考 推送运营平台指南 > 创建推送,API推送请参考服务端指南>通知栏消息
推送内容展示样式有短文本、长文本、大图三种展示样式

短文本

消息内容最大文本最大字数为50。
通知栏第一条可展示全部内容,非第一条只展示一行内容,超过一行的内容不会显示。

长文本

ColorOS版本大于5.0可用,消息内容文本最大字数为120。
通知栏第一条消息可展示全部内容,非第一条只展示一行内容。

大图

ColorOS版本大于5.0可用。
在连接WIFI状态下通知栏第一条消息可显示大图,非通知栏第一条消息或非WIFI状态下消息不显示大图。

OPPO通知运营规范 OPPO推送能力

OPPO通知运营规范 OPPO推送能力

通知说明

通知,指在手机通知栏上展示的消息,通知消息也可展示在锁屏、横幅中。通知主要用于提醒用户,如订阅提醒、活动宣传等。

类别

通知分为OPPO PUSH通知和本地通知。

OPPO PUSH 通知

OPPO PUSH通知指ColorOS向开发者提供的消息推送服务,通过服务端与ColorOS建立的稳定、可靠的长连接通道,无论应用进程是否运行,用户均可正常收到消息。

本地通知

本地通知指安卓原生通知,即当应用在运行时,用户可接收到应用推送的通知。

时间和范围

试运行时间:2021年02月25日-2021年03月24日
正式生效时间:2021年03月25日
运营规范旨在营造一个良好的推送环境,所有在OPPO软件商店上架或对OPPO手机有推送通知行为的应用(含快应用),需遵守本规范。

运营规范

运营规范包含四部分:样式、内容、展示跳转和其它。如应用出现以下行为则视为违规,OPPO公司将视违规影响的严重程度定义违规级别,违规级别分为普通违规和严重违规。

样式

如因使用非标准样式引起投诉,将视为违规。违规事例包含但不限于以下行为:
1.1、通知消息未满足《OPPO通知设计规范》
1.2、应用在未经用户同意情况下使用常驻自定义通知①。
1.3、应用模拟其它应用的通知样式(如模拟其它应用的名称、icon或通知内容),欺骗用户点击。(严重违规)

1.4、除播放器外,单个应用使用多个Group来避免通知折叠。②

1.5、出于商业目的,通知在通知栏强行置顶。

1.6、应用使用非标准通知样式,导致1天内被多个用户投诉。(严重违规)

内容

如通知内容违反法律、法规、社会公序良俗,属于严重违规。严重违规事例包含但不限于以下内容:
2.1、发布反社会、反人类言论;
2.2、发布封建迷信内容(小说等虚构类业务除外);
2.3、宣扬不良、消极颓废的人生观、世界观和价值观的内容;
2.4、侵犯个人隐私,恶意曝光他人身体与疾病、私人住宅、婚姻关系、私人空间、私人活动;
2.5、恶搞灾难事故、特殊人群;
2.6、包括吸毒嫖娼在内的违法犯罪名人相关内容(新闻除外);
2.7、涉及歧视的内容;
2.8、色情内容:包括性行为、性器官、性道具(含药品)、性交易、性场所、性诱惑;
2.9、色情作品:成人电影、情色电影、三级片、色情小说、色情音频等;
2.10、重点表现不健康、不正当、非主流的性关系、婚恋观或婚恋状态;
2.11、色情擦边球,用性相关内容表现别的事物;
2.12、不加处理地展示事故、灾难、恶性事件现场血腥或暴力的场面;(包括新闻报道在内,必须对未获得授权的伤者、逝者进行打码处理。)
2.13、对人造成巨大精神冲击的暴力、血腥、恐怖、惊悚内容;(包括影视作品、图片、小说在内。)
2.14、未成年人裸露;
2.15、教唆青少年儿童犯罪;
2.16、非口语化脏话、谩骂、侮辱性语言;
2.17、模仿系统应用给用户推送系统功能提醒消息; 如:您的手机仅剩5%电量。
2.18、诈骗;
2.19、推送的内容在1天内被多个用户投诉;
2.20、推送新闻信息必须采用规范稿源,禁止PUSH弹窗推送商业网站平台和“自媒体”账号违规采编发布、转载的新闻信息;
2.20、推送采用非规范稿源的新闻信息,或推送商业网站平台和“自媒体”账号违规采编发布、转载的新闻信息;
2.21、渲染炒作舆情热点,断章取义、篡改原意吸引眼球、误导用户;
2.22、推送娱乐八卦、明星绯闻、血腥暴力、奇闻异事、低俗恶俗等有悖社会主义核心价值观内容;
2.23、通过PUSH弹窗渠道放大传播失德艺人、负面争议人物的有关言论;
2.24、未取得互联网新闻信息服务许可的工具类应用,不得PUSH弹窗推送新闻信息。

展示跳转

违规事例包含但不限于以下内容:
3.1、通知内容与标题不相符;
3.2、通知内容和跳转界面不属于同一应用,如点击A应用的通知跳转至B应用;
3.3、推送的消息链接无效,无法调起应用;
3.4、其它在1天内被多个用户投诉的展示跳转异常行为。(严重违规)

其它

出现任何违法违规、损害用户利益、给OPPO公司或其关联公司造成损失的,都视为违规。违规事例包含但不限于以下内容:
4.1、由于非正常使用通知造成大量设备异常,如过量耗电、持续亮屏等现象;(严重违规)
4.2、因错字、漏字等情况,导致内容表达的含义产生严重的误解视为违规。如通知展示用户数大于10万,则属于严重违规;
4.3、被OPPO公司认定为恶意破坏系统规则,如通过非正当手段刷量等;(严重违规)
4.4、在1天内被多个用户投诉的上述未提及行为。(严重违规)

处罚措施

如开发者违反上述条款或存在其它违法、违规行为,OPPO公司将根据影响的严重程度定义违规等级。违规等级分为:普通违规和严重违规。
违规应用需承担如下责任:

普通违规

第1次违规第2次违规第3次违规第4次及以上次数违规
第一阶段7个自然日内需整改完成并全量发布3个自然日内需整改完成并全量发布1个自然日内需整改完成并全量发布视为严重违规
第二阶段第8~14个自然日OPPO PUSH公信消推送量减半,直至整改完成并全量发布第4~6个自然日OPPO PUSH公信消息推送量减半,直至整改完成并全量发布第2个自然日OPPO PUSH公信消息推送量减半,直至整改完成并全量发布
第三阶段超过14个(不含)自然日暂停PUSH推送权限超过6个(不含)自然日暂停PUSH推送权限超过2个(不含)自然日暂停PUSH推送权限

严重违规

违规事件被定级为严重违规后,OPPO公司有权关闭违规应用的OPPO PUSH权限。

备注:
1)累计违规次数按近365天的记录计算;
2)违规整改期结束后,如仍存在违规行为,将视为新一轮违规并执行相应处罚;
3)如处罚涉及暂停OPPO PUSH使用权限,惩罚期结束后需由相关违规方发送《重新开启 OPPO PUSH服务申请》至push@oppo.com申请恢复服务。请务必确保整改完成后再提交申请,OPPO公司收到申请后,将酌情评估是否重新开通OPPO PUSH权限;
4)如因应用的违规行为给OPPO或其关联公司造成损失的, OPPO公司有权对开发者的违规行为采取其它合理措施。

注释

①常驻通知,指无法左右滑动删除及无法自动清理的通知。
②ColorOS 11及ColorOS 11以上系统,单个应用超过一条消息时未折叠为一组;ColorOS 11以下系统,单个应用超过三条(不含)通知时未折叠为一组。

oppo推送受限说明

oppo推送受限说明

送达率说明

推送服务致力于提供安全可靠的消息发送通道,保障消息成功送达。此外,以下非通道因素也直接影响消息的送达情况,主要影响因素有:
1)终端设备是否在线
如果设备离线,PUSH平台会缓存消息,待用户上线后,再次将消息投递给用户。PUSH平台只缓存一次用户的消息,如果用户在线后还发不通,PUSH平台不再缓存。
2)用户手机上集成PUSH SDK的应用是否被卸载
3)网络状况是否稳定
4)终端手机的安全控制策略

支持的终端设备

目前支持 ColorOS3.1及以上的系统的OPPO的机型,一加5/5t及以上机型,realme所有机型。

推送消息的及时性

OPPO PUSH尽可能保障消息及时送达,设备网络条件良好且不拥堵情况下时延在1s内,该时延时间仅指PUSH通道推送消息的时延。开发者在运营管理网站的控制台创建基于RegID的推送任务和通过API创建的基于标签等的推送任务,PUSH系统将先进行推送任务的调度,再通过PUSH通道推送消息。

推送消息大小要求

PUSH消息支持的Android App包名称最大为128个字节,消息内容最大支持为4K字节。

支持的地区

除中国以外,还支持印度、印尼、泰国、越南、菲律宾、马来西亚。(海外应用请进入海外开放平台申请

推送数量限制规则

/累计用户数可推送总数量(条/日)
公信可推送数<50000100000
≥50000累计用户数*2
私信可推送数不限量
测试推送数1000(仅供接入测试使用)

1)目前私信处于公测阶段,需要申请才能开启私信通道,私信申请请参考【推送私信通道申请】
2)累计用户数是指从接入推送服务的app客户端,用户安装并激活的累计用户量,去除已卸载用户数;
3)累计用户数在OPPO推送运营平台可查询,每天会刷新。

接收数量限制

通过OPPO推送平台下发的消息(包含公私信),单用户接收上限2000条/日。

QPS限制规则说明

限制规则

OPPO推送对QPS的分配主要依据应用的累计用户数,应用类别权重和平台推送系数三个值进行加权计算,其中累计用户数在OPUSH平台上的查询路径是OPPO PUSH推送运营平台—我要推送消息—应用列表中的累计用户数。

计算公式

应用QPS = 推送QPS参考值 * 应用类别权重 * 平台推送系数
例如:针对应用维度,30000 QPS表示1秒内本应用最多可推送给30000个用户(所有接口共享应用维度限速上限总值)。

QPS超限时会返回什么错误吗?

QPS超限时会返回错误码 55, 原因:APP Call Frequency Limit

返回错误如何处理

请降低您的并发请求数,确保每秒的请求数不高于QPS限制,业务应当设置规则优先发送重要的消息,非热点或时效性要求低消息需按照规定qps以下进行推送。
具体的QPS对应值如下:

序号累计用户数推送QPS参考值应用类别权重平台推送系数(默认 = 1)
1≥10000万3000011
2≥5000万且<10000万2000011
3≥1000万且<5000万1000011
4<1000万500011

备注:QPS(Quantity per second)表示1秒可调用OPPO PUSH的请求数。