推送收不到问题

推送收不到问题

一、推送收不到排查问题开发者需要确认的信息

1、排查推送收不到的问题,请保留任务id和cid信息。

  • Clientid:个推业务层中对外用户的唯一标识,用于标识客户端身份,简称CID。CID需要由客户端获取并自行记录。

    安卓获取方式如下,初始化个推SDK后在自定义IntentService 服务中获取。

    public void onReceiveClientId(Context context, String clientid) {
        Log.e(TAG, "onReceiveClientId -> " + "clientid = " + clientid);}
    复制
    

    ios获取方式如下,在Xcode的origanizer->device选择你的设置,然后在console.app(控制台.app)里查看日志,会输出如下:client:a38dbe81c7bbfb93824*****2d5fec4f;或者在客户端CID回调中获取如下:

    /// [ GTSDK回调 ] SDK启动成功返回cid
    - (void)GeTuiSdkDidRegisterClient:(NSString *)clientId {
     NSLog(@"[ TestDemo ] [GTSdk RegisterClient]:%@", clientId);
    }
    
  • 任务ID:个推业务层中任务维度的唯一标识;若服务端推送,请求成功后会返回result,result中【taskid】或【contentid】的值就是任务ID;若平台上推送,在【推送记录】中点击详情,页面上显示的【task ID】的值。

2、个推推送支持在个推后台(链接:http://dev.getui.com/ )和服务端接口请求推送。推送分为在线推送和离线推送,请确认您的推送场景。

个推后台推送显示(任务详情>数据详情) 服务端api返回 名词 解释
显示个推通道有数据 successed_online 在线推送 app 在前台打开运行时,cid 在线,通过个推渠道下发消息。
显示其他厂商通道有数据 successed_offline 离线推送 app 在后台、锁屏、进程关闭时,cid 离线,通过厂商渠道下发消息。若 Android 未集成多厂商、 iOS 未配置推送证书,则该系统机型无法使用离线推送。
successed_ignore 忽略下发 默认最近90天内不活跃用户不下发

3、个推消息分为通知消息和透传消息,请确认您这边使用的消息类型。

名词 解释
通知消息 指定通知标题和内容后,由个推 SDK 自动处理在系统通知栏中展示通知栏消息,同时响铃或震动提醒用户(响铃和震动受手机系统的设置状态影响)。img
透传消息 即自定义消息,消息体格式客户可以自己定义,如纯文本、json 串等。透传消息个推只传递数据,不做任何处理,客户端接收到透传消息后需要自己去做后续动作处理,如通知栏展示、弹框等。

注意:为提高排查效率,请确认以上3点信息后先按照“二、在线推送收不到”和“三、离线推送收不到”的方案说明排查,若还未解决,可提供CID和任务ID和以上3点确认结果给个推技术支持进行排查。

二、在线推送收不到

1、安卓在线收不到通知

  • 手机通知权限是否正常打开,部分安卓8以上的手机通知权限中需要打开【Default】渠道的通知权限。
  • 若服务端api的 push_message 中设置的 transmission(透传),或平台上推送用的透传消息,需要客户端开发者在客户端【onReceiveMessageData】回调中接收该透传消息自己创建通知。
  • 确认推送的CID与测试手机关系是否匹配;测试方式:在个推后台【消息推送】-【配置管理】-【故障排查】-【 检测CID的状态及信息】中输入cid,然后多次关闭和打开app,检测每次app状态变化时,cid状态是否也会变化;若发现不对应,重新获取下客户端cid,以新的cid去进行推送测试。
  • 推送在线通知消息收不到,可以检查下客户端gtsdk是不是使用的3.2.9.0版本且未设置push_small.png小图标,该版本未设置push_small的情况下会出现通知信息不展示的情况,可以升级gtsdk到最新版本解决。

2、iOS在线收不到消息

个推后台界面

  • 通知消息下发:如没有开通vip(查看策略旁边的vip标识是否亮起),应用在前台是收不到消息。需要联系商务开通vip权限才支持策略,这样应用在前台也可以收到消息
  • 透传消息下发:透传消息需要开发者在客户端 GeTuiSdkDidReceiveSlience 透传回调中,接收透传消息并根据自身业务场景进行消息的展示方式处理,默认不处理的话是没有任何展示的,透传消息个推只负责传递。

接口推送

  • 若是默认推送策略下,服务端Rest-V2中push_message中使用transmission模板消息,需要客户端自己在透传回调方法中解析透传内容,实现弹通知iOS推送,若是默认推送策略下,在线需要使用透传消息(如服务端Rest-V2中push_message中使用transmission模板消息)

注意:确认推送的CID与测试手机关系是否匹配;测试方式:在个推后台【消息推送】-【配置管理】-【故障排查】-【 检测CID的状态及信息】中输入cid,然后多次关闭和打开app,检测每次app状态变化时,cid状态是否也会变化;若发现不对应,重新获取下客户端cid,以新的cid去进行推送测试。

三、离线推送收不到

1、安卓离线消息收不到

步骤一:检查服务端推送代码问题

  • 老版推送代码需在透传模板中设置上 notify 的安卓厂商消息体,未设置 notify 则无法收到离线消息。

  • 新版 RestAPI V2 推送代码需在 push_channel (公共参数)中设置上 ups 的安卓厂商消息体,未设置 push_channel 则无法收到离线消息。

    步骤二:确认CID是否绑定厂商token

1.在个推后台【消息推送】-【配置管理】-【应用配置】中是否正常填写保存厂商参数。

2.在个推后台【消息推送】-【配置管理】-【故障排查】-【 检测CID的状态及信息:】中输入CID查询,看是否会返回厂商Device Token。
img

若返回了具体厂商token,请按以下中各厂商部分说明排查,若未返回token,看下面步骤三

  • 华为
    • 标题长度限制40个字,内容长度限制1024个字。
    • emui10的华为手机,检查手机通知权限设置,将【营销通知】的权限也打开,不要默认静默,静默的话是需要下拉通知栏才能看到。
    • 2023年1月5日起,华为PUSH通道将根据应用类型对【资讯营销类】消息的每日推送数量进行上限管理[新闻阅读类:5条/日;其他应用类型:2条/日]
    • 手机通知栏消息是否有存满,清除已存的通知栏消息看下新的消息是否能展示。
    • 服务端Intent中指定的Activity,在客户端manifest里面是否配置exported=true属性,若未配置会影响华为机型的消息展示。
    • 主动或者被动将APP杀死,则华为系统会清空对应APP的通知栏消息。
  • VIVO
    • 标题长度限制20个字,内容长度限制50个字。
    • vivo侧厂商限制 intent长度≤ 1024字符
    • 检查通知权限,vivo机型默认关闭
    • 为保证用户不被过多的运营消息打扰,平台将从2020年6月1日起,对【运营消息】类型进行每日频控限制,即单用户接收单个应用每天推送的运营消息条数上限为5条;
    • 1个自然日内相同文案的运营消息给同个设备发,vivo会在客户端做去重处理,导致消息不展示
    • vivo要求:通知文案中不能带 “包含测试、test字符”、“纯数字”、“纯表情”、“符号”或者“符号+数 字”、“表情+数字”、“表情+符号”
    • 进入推送--->选择自己的应用--->点击应用概览--->推送余量查询,查看是否超了今日限额[该限额是厂商侧每日推送额度]
  • 小米
    • 标题长度限制50个字,内容长度限制128个字。
    • 检查手机通知权限设置,小米有不重要通知功能,部分消息可能会存在通知栏不重要通知里
    • 2023年2月1日起,小米推送将根据不同类别对应不同的推送数量限制,
    • 若应用选择不接入【私信消息】或【公信消息】,则会接入【默认通道】,单个应用单个设备单日1条消息;
    • 若应用选择接入【公信消息】类型,单个应用单个设备单日[新闻阅读类:8条/日;其他应用类型:5条/日]。
    • 服务端推送时,推送代码要加上ttl的离线时间设置,不能为空。
    • 进入推送--->选择自己的应用--->点击应用概览--->推送余量查询,查看是否超了今日限额[该限额是厂商侧每日推送额度]
  • OPPO
    • 标题长度限制32个字,内容长度限制200个字。
    • 检查手机通知权限是否打开,oppo是默认关闭的,将通知权限下的【Default】通道权限也打开。
    • 2023年1月15日起,OPPO PUSH推送服务将增加区分应用类型的推送频控限制,单设备单日推送oppo公信[新闻类(三级分类为新闻类):5条/日;其他应用类型:2条/日]
    • 手机系统时间是否正常
    • 进入推送--->选择自己的应用--->点击应用概览--->推送余量查询,查看是否超了今日限额[该限额是厂商侧每日推送额度]
  • 魅族
    • 标题长度限制32个字,内容长度限制100个字。
    • 检查消息是否存入了魅族手机右上角【魅族消息盒子】中。
    • 清除缓存:手机【系统设置】-【应用管理】-【所有应用】点击右上角【显示系统服务应用】找到【推送服务】和【您自己的 App】,如下图,分别进行“清除数据”,然后重启手机。

步骤三:查询CID未返回token

  • 手机连接电脑,手机需开启开发者调试模式,打开APP,在androidstudio编译器logcat中过滤"Assist_",若成功打印token信息则表示厂商集成正常。

    img

  • 若未返回任何带有厂商标识的日志,说明厂商推送服务还未置于您App应用内,请重新检查客户端厂商集成相关步骤。

厂商应用开通指南:https://docs.getui.com/getui/mobile/vendor/vendor_open/
厂商sdk集成指南:https://docs.getui.com/getui/mobile/vendor/androidstudio/

  • 若返回了厂商标识日志,则注意查看返回的厂商Code码,如下示例:

    厂商通道 返回码 含义 解决建议 官方地址
    华为 1001 请确认手机中安装有应用 “华为移动服务” 或 “HMS-Core” 前往华为应用商店下载安装应用 “HMS-Core” 华为地址
    6003 应用 APK 未打签名或与华为开放平台登记签名信息不一致 为 APK 文件打上签名或检查签名信息是否一致
    907135000 appId 不合法 华为平台上推送状态未打开
    907135702 签名文件的 SHA256 值与在华为推送平台上配置的不一致 前往华为推送平台检查填写的签名文件 SHA256 值是否配置一致
    小米 22006 应用程序 ID 不合法 前往小米推送平台检查应用的包名、appId、appKey 是否匹配 小米地址
    22007 应用程序 Key 不合法 前往小米推送平台检查应用的包名、appId、appKey 是否匹配
    22022 应用程序 package name 不合法 前往小米推送平台检查应用的包名、appId、appKey 是否匹配
    魅族 110000 appId 不合法 前往魅族推送平台检查应用的包名、appId、appKey 是否匹配,确认 Flyme 推送平台 的应用信息 魅族地址
    110001 appKey 不合法 前往魅族推送平台检查应用的包名、appId、appKey 是否匹配
    OPPO 14 无效的 AppKey 参数 客户端需要的是OPPO 的 AppKey和APPSECRET OP地址
    15 缺少 AppKey 参数 补充 AppKey 参数
    16 无效的 AppKey 参数 客户端需要的是OPPO 的 AppKey和APPSECRET,检查配置是否正确
    VIVO 10003 App 包名与配置不匹配 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配 VV地址
    10004 appkey 不匹配 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配
    10005 appid传入错误 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配

2、iOS离线收不到消息

步骤一:服务端推送代码问题

  • 老版推送代码需在透传模板中设置上 apnpayload的苹果消息体,否则无法收到离线消息。
  • 新版 RestAPI V2 推送代码需在 push_channel (公共参数)中设置上aps的苹果厂商消息体,未设置 push_channel 则无法收到离线消息。

步骤二:确认CID是否绑定苹果devicetoken

在【消息推送】-【配置管理】-【故障排查】-【 检测CID的状态及信息:】中输入CID查询,看是否会返回苹果devicetoken。

img

若返回了具体苹果devicetoken,请按照 步骤四 检查

  • 返回的devicetoken后面是否带着【developement】字样;若带着,则说明客户端环境是属于苹果的开发环境,苹果推送对开发环境的支持不稳定,建议使用正式环境去进行推送测试。

步骤三:查询CID未返回devicetoken

  • 切换手机连接网络,卸载重装试下。
  • 请使用真机进行测试,苹果离线推送不支持模拟器。
  • 确认客户端是否正常使用个推去注册苹果远程通知。
  • 使用其他手机安装测试。

步骤四:检测平台上传证书

  • 在【配置管理】-【应用配置】-【测试一下】输入上述步骤查询出来的苹果devicetoken进行推送测试,看手机是否能收到测试信息,若报错则需重新导入苹果推送证书。
    img
开发者中心 SDK 下载

文档中心搜索

技术
咨询

微信扫一扫

随时联系技术支持

在线
咨询