极光消息推送快速排查问题教程

极光消息推送快速排查问题教程

本文主要引导用户在推送收不到时,可以通过推送记录、排查工具等工具快速地进行问题排查。

推送记录

推送收不到时,查看推送记录的消息是否有正常下发,如果推送状态为“推送失败”,点击消息查看对应的错误信息,根据报错信息修改后再重新下发。

排查工具

消息查询

推送收不到时,可以进入【极光控制台】-【消息推送】-【配置管理】-【排查工具】-【消息查询】页面进行生命周期排查,输入 Message ID 和 Registration ID,点击查询即可查看消息的生命周期,查询结果如下图:

  • 消息生命周期:如果发送失败,会在相应的失败环节展示错误码+错误提示信息。
  • 特殊消息生命周期:如果消息类型为通知消息+自定义消息,则消息生命周期会产生两条分叉路径。
  • 消息基本信息:展示消息类型、发送策略和消息体,点击消息体可以查看消息体 json。
  • 设备基本信息:展示通知权限开关状态、厂商注册情况、最近在线时间等设备基本信息。

Message ID 获取方法

  • 进入【极光控制台】-【消息推送】-【推送管理】-【推送记录】页面,即可获取 Message ID。 
  • API 调用后在应答参数中获取 ​:
          {
    "sendno": "0",
    "msg_id": "54043471036732219"
}

        

Registration ID 获取方法

客户端初始化 JPush 成功后,JPush 服务端会分配一个 Registration ID,作为此设备的标识(同一个手机不同 App 的 Registration ID 是不同的),因此排查时需要获取 Registration ID 定位问题,获取方法:AndroidiOS

stopPush 停止推送 APP开发接入极光消息推送能力

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

stopPush 停止推送 APP开发接入极光消息推送能力

♦ 停止后其他所有的 API 调用都无效。

♦ iOS 不推荐调用这个接口,因为这会使 DeviceToken 失效,建议提醒用户在 设置-通知 中关闭推送服务。

核心代码示例,详情参阅demo

jsBridge.jiguang.stopPush();
alert("已停止接收推送");

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.jiguang.stopPush();
alert("已停止接收推送");

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.jiguang.stopPush();
alert("已停止接收推送");

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

个推推送自定义通知图标

个推推送自定义通知图标

一、需求背景

1.1 背景描述

通知图标可做为一个应用的标识,方便在手机通知栏显示应用的通知推送消息,也便于用户在第一时间辨识是哪个应用都消息做出对应的消息处理。

如果需要根据不同推送场景进行推送,还可以设置多套图标区分应用场景。

比如:微信和QQ是通讯工具,通知栏收到微信或者QQ的消息后,通知中心会在消息文本前显示微信或者QQ的图标,方便第一时间处理通讯消息。

1.2 名称解释

名词解释
小图标push_small.png会展示在顶部状态栏和通知左上角位置,push_small 只能内置, 不能修改
通知图标push.png将会作为通知展示图标,会展示在通知内容右侧。

1.3 各渠道支持情况

渠道小图标(push_small.png)右侧通知图标(push.png)
个推支持支持
APNs支持支持
华为支持不支持
荣耀支持支持
小米支持不支持
魅族支持不支持
OPPO支持不支持
VIVO支持不支持

二、功能实现

  • Android 在线个推通道支持设置小图标push_small.png和右侧通知图标push.png;离线厂商通道小图标可客户端嵌入设置,通知图标暂不支持配置(通知图片内容可看下各厂商富文本处理)。
  • iOS在线需要走透传渠道,暂不支持动态设置小图标和通知图标;离线apns通道可通过多媒体设置通知图标。
  • 开发者可通过调用 个推服务端 api 或者直接从 个推开发者中心 页面推送。

2.1 Android

2.1.1 客户端

设置通知栏及通知栏顶部图标

2.1.2 服务端 API

小图标push_small.png

只支持客户端嵌入,服务端暂不支持动态推送时设置小图标。

通知图标push.png

如果您需要根据不同推送场景切换不同通知栏图标或者其他配置多套通知栏图标的场景

  • 先在资源目录的 res/drawable-ldpi/、res/drawable-mdpi/、res/drawable-hdpi/、res/drawable-xhdpi/、res/drawable-xxhdpi/ 等各分辨率目录下放置相应的多套通知图标,例如 push1.pngpush2.png等
  • 通过 服务端推送 API 参数指定通知栏图标名称,如:
名称类型是否必需默认值描述
titleString通知消息标题,长度 ≤ 50
bodyString通知消息内容,长度 ≤ 256
logoString通知的图标名称,包含后缀名(需要在客户端开发时嵌入),如“push.png”,长度 ≤ 64
{
    "push_message":{
        "notification":{
            "title":"请填写你的通知标题",
            "body":"请填写你的通知内容",
            "logo":"logo.png",
            "click_type":"intent",
            "intent":"intent:#Intent;action=;end"
        }
    }
}

2.1.3 个推开发者中心

2.2 iOS

2.2.1 客户端

支持版本:

iOS 10 及以上的系统

客户端设置

  • 在集成个推SDK时,可以添加 Notification Service Extension,实现 多媒体展示

涉及代码:

- (void)didReceiveNotificationRequest:(UNNotificationRequest *)request withContentHandler:(void (^)(UNNotificationContent * _Nonnull))contentHandler {

    self.contentHandler = contentHandler;
    self.bestAttemptContent = [request.content mutableCopy];

    NSLog(@"----将APNs信息交由个推处理----");

    [GeTuiExtSdk handelNotificationServiceRequest:request withAttachmentsComplete:^(NSArray *attachments, NSArray* errors) {

        //注意:是否修改下发后的title内容以项目实际需求而定
        //self.bestAttemptContent.title = [NSString stringWithFormat:@"%@ [需求而定]", self.bestAttemptContent.title];

        self.bestAttemptContent.attachments = attachments; //设置通知中的多媒体附件

        NSLog(@"个推处理APNs消息遇到错误:%@",errors); //如果APNs处理有错误,可以在这里查看相关错误详情

        self.contentHandler(self.bestAttemptContent); //展示推送的回调处理需要放到个推回执完成的回调中
    }];
}

2.2.2 服务端 API

multimedia说明

该字段为Array类型,最多可设置3个子项,每个参数定义如下所示:

名称类型是否必需默认值描述
urlString多媒体资源地址
typeNumber资源类型(1.图片,2.音频,3.视频)
only_wifiBooleanfalse是否只在wifi环境下加载,如果设置成true,但未使用wifi时,会展示成普通通知
{
    "ios":{
        "type":"notify",
        "payload":"自定义消息",
        "aps":{
            "alert":{
                "title":"通知标题",
                "body":"通知内容"
            },
            "content-available":0,
            "sound":"com.gexin.ios.silence",
            "category":"ACTIONABLE"
        },
        "auto_badge":"+1",
        "multimedia": [{
            "url": "https://xxx",
            "type": 1,
            "only_wifi": false
        }]
    }
}

2.2.3 个推开发者中心后台

什么是个推A/B分组推送?

什么是个推A/B分组推送?

A/B分组推送

功能说明:在同一个推送计划中,添加2-5条文案/人群进行对比测试,通过对各测试组的到达、展示、点击数据的监测分析,筛选出最优文案/人群,并支持实时及定时地按最优测试组补发剩余用户,提高通知消息点击率,助力运营提效。

应用场景:①确定人群,对比文案,看哪个文案的点击率更高;②确定内容,对比人群,看该商品/内容,哪个人群点击率更高,接受度更高。

使用说明:个推开发者中心–消息推送-创建推送-分组对比

个推开放平台【自定义事件】操作教程

个推开放平台【自定义事件】操作教程

【自定义事件】

功能介绍:

个推透传及部分厂商返回的推送报表数据不包含展示数和点击数。可通过自定义事件来统计,先定义好自定义事件的名称及编号,在需要埋点的地方,调用对应方法来提交统计,补全相应数据。也可用于应用内部的某个事件统计,如点击某个按钮、跳转动作等。

个推开放平台【配置管理】短信配置操作教程

个推开放平台【配置管理】短信配置操作教程

【配置管理】短信配置

功能介绍:

个推有提供短信补量服务(在创建推送设置里面可以设置选择),针对 App 侧一段时间内无法收到推送的消息(可能由于断网、后台禁止运行、消息延迟等原因)的用户,进行短信通道信息补充。而针对提供的短信通道补充服务,则支持对短信签名以及短信模板进行设置。

操作步骤:

Step 1:配置短信签名

点击【配置管理】-【短信配置】-【签名配置】-【新增签名】,然后填写签名内容,点击【确定】

Step 2:配置短信模板

点击【配置管理】-【短信配置】-【模板配置】-【新增模板】,填写好签名内容、模板类型、模板名称、模板内容等信息,点击【确定】

个推开放平台【配置管理】用户分组操作教程

个推开放平台【配置管理】用户分组操作教程

【配置管理】用户分组

功能介绍:

用户分组指利用个推提供的大数据能力,根据用户性别、偏好、所在区域等属性将用户进行分组,形成分组后,在创建推送消息时,可以将推送消息发给该分组,免去每次筛选的麻烦。

操作步骤:

Step 1:点击【配置管理】-【用户分组】-【添加用户分组】

Step 2:填写用户分组名称,选择用户属性设置,点击【确定】

个推推送开放平台【消息推送】透传消息操作教程

个推推送开放平台【消息推送】透传消息操作教程

【消息推送】透传消息

功能介绍:

透传消息,即是自定义消息,个推只负责将消息送达到客户端,而客户端接收到消息后需要自己处理消息的展示方式或后续动作。

操作步骤:

Step 1:点击【创建推送】-【透传消息】,根据小图标的解释说明填写好目标平台、通知标题、通知内容、目标选择、消息有效时长等信息以及在各个平台的通知展示方式及后续动作。然后点击【预览】

Step 2:查看推送预览,检查确认各项设置是否正确,也可以选择发送测试推送到手机上进行测试预览。确认无误后,点击【确定】,正式发送推送。

个推消息推送产品简介

个推消息推送产品简介

产品说明

个推是商用级的移动应用消息推送云服务供应商,客户端SDK支持Android和iOS两大平台,开发者集成SDK后,可以通过个推强大的web端及丰富的API开放接口,发送推送消息、统计分析推送效果。

能力说明

消息形式

个推消息推送支持通知和透传两种形式。同时支持大图、大文本等富媒体展示,支持启动应用、打开第三方链接、打开应用内特定页面等后续操作等后续操作。

1.通知

指定通知标题和内容后,由个推SDK自动处理后、在系统通知栏中以通知栏消息的形式展示,同时响铃或震动提醒用户(响铃和震动受手机系统的设置状态影响)。

2.透传

即自定义消息,消息体格式客户可以自己定义,如纯文本、json串等。透传消息个推只传递数据,不做任何处理,客户端接收到透传消息后需要自己去做后续动作处理,如通知栏展示、弹框等。

推送目标

个推支持通过标签、别名、CID、用户分组四种方式来管理目标用户设置,开发者可根据自身业务需求灵活使用。

1.全部用户(All)

即选择向APP的全体用户(所有已经安装该APP的用户)发送推送,通常适用于APP公告、更新升级等推送场景。

2.标签(Tag)

标签是用户的一种属性,用于描述用户的基础属性、兴趣爱好、行为特征等,在给某些用户设置某类标签后,就可以通过标签圈选具有共同特征的特定用户群,实现精准推送。比如给喜欢“足球”打上“足球”标签后,我们就可以通过圈选“足球”标签,给喜欢足球的用户,发送精准推送。

详情见:名词解释-标签
使用说明见:用户API-标签

3.别名(Alias)

别名是APP为用户取的标识,该标识可以是APP业务层的用户标识,也可以是用户的昵称等。APP运营人员为用户绑定别名后,可以通过别名圈选目标用户组,方便APP运营同学快速、便捷地向特定的某群用户推送消息。

详情见:名词解释-别名
使用说明见:用户API-别名

4.ClientID(简称CID)

个推业务中的对外用户标识,用于标识客户端身份,由APP获取并保存到开发者服务端,是个推SDK的唯一标识。

5.用户分组

用户可以事先通过个推提供的省市地区标签、用户属性标签或自己设定的应用标签,筛选出目标用户成立用户分组,在推送时直接选取某一用户分组作为推送目标,能够方便快捷地实现对特定用户群的推送。

使用说明见:开发者中心使用说明

统计分析

个推数据报表主要分为3个模块:【推送数据】、【日推送数】、【用户数据】,从推送任务、日期、用户三大数据维度,全面分析应用的推送转化水平及用户活跃情况;更有关闭通知率、卸载用户数等特色数据分析。

1.推送数据

从推送任务维度出发,展示每个推送任务(包括通知消息、透传消息、分组对比消息、API推送消息)的任务详情以及推送数据分析。方便APP运营人员一站式查看推送任务的详情、转化数据及大盘对比;快速进行未触达的折损分析、诊断定位问题、调整推送运营策略,提升运营效率。

①各推送渠道转化数据分析

主要展现单个推送任务在各个推送渠道(个推、厂商、APNs、短信等)从可下发数-成功下发数-到达数-展示数-点击数的转化情况。

②各阶段消息未触达的折损原因分析

针对单个推送任务,提供消息从下发-到达-展示各阶段,消息未成功触达的折损原因分析,比如:卸载、关闭通知、推送超限、参数超限、参数无效等。可帮助APP快速诊断定位折损原因,并给出针对性的建议解决方案。同时个推支持开发者导出未收到消息的折损列表,便于针对这部分用户做后续触达转化,提高运营效率。

③大盘分析

针对单个推送任务,提供每个任务的消息到达率和点击率,与应用自身的平均值及个推大盘(APP所属行业的TOP20应用)均值的对比,高效评估该推送任务的转化水平,调整推送运营策略。

2.日推送数

从日期维度出发,报告过去24小时内所有推送任务的总体下发、到达及点击情况,同时支持查看、导出各自然日内,当日所有推送任务(包括通知消息、透传消息、分组对比消息、API推送消息)的推送总量、成功下发数总量、到达数总量、展示数总量、点击数总量等。便于APP运营人员对于每日推送数据快速复盘。

3.用户数据

从用户维度出发,报告当前所选择应用的用户数据,包括新增用户数、次日留存率、在线用户数(峰值)、日联网用户数、百日联网用户数、关闭通知率、卸载用户数的数据。便于APP运营人员掌握用户新增、活跃、留存、流失等情况。

使用说明及名词解释详见:个推消息推送数据报表使用说明

接口方式详见:统计API

web方式详见:开发者中心使用说明

进阶功能

此外,针对推送的到达率、点击率的提升,个推还提供了厂商推送策略、厂商推送余量查询、分组对比测试、自定义铃声等功能;针对消息的“查错补缺”,个推提供了推送信息回调、未送达消息明细查询、消息撤回、消息覆盖、短信补量、广告投放等功能。功能介绍见:进阶功能

产品优势

1.推送性能

  • 高速:VIP套餐独享20万条/秒的通道+共享100万条/秒的通道,并且支持扩展
  • 高稳定:北京、杭州、无锡、香港、新加坡等多地机房部署,保证海内外推送稳定性
  • 高安全:支持IP鉴权、密钥匹配、自定义加密,是大型银行、证券机构的选择对象
  • 高触达:支持Android和iOS全平台,集成华为、荣耀、小米、OPPO、vivo、魅族、坚果、索尼、海信等厂商通道

2.智能运营

  • 个推具有用户画像分析、大数据人群属性分析、标签群组推送、分组对比测试等功能,实现多维度精准高效推送,赋能精细化运营,高效提升用户活跃度。

3.后效分析

  • 个推具有全渠道、完整链路的数据报表,折损原因分析,大盘分析,推送信息回调,未送达消息明细查询等功能,轻松实现数据归因、后效分析,全方位提升推送消息到达率。

4.厂商推送策略

  • 透传自动转通知、超长消息自动截短、厂商推送余量管理、个推离线消息库、通道优先级自定义等多层厂商策略加码,全面提升推送消息到达率

5.全天候服务支持

  • 专业技术支持团队7×24小时专人专线服务

6.推送支持免费功能和vip功能

  • 个推给免费用户提供基础的推送服务及相关功能,但是厂商推送、标签使用、定制功能上有限制。
    VIP 用户在此基础上推送速度更快,推送频率更高。享受更多VIP功能,请参见 免费版本和vip版本功能区别

个推消息推送实施方案

接入说明

  • 个推开发者中心注册开发者帐号;
  • 登录进入开发者中心-应用管理页面,创建应用,设置应用名称、应用类型、Android 设置包名等;
  • 在消息推送-应用配置页面生成AppID、 Appkey(SDK 与服务器端通过 Appkey 互相识别)、上传 iOS 应用证书等;
  • 下载SDK并集成到APP;
  • 当出现问题时,建议:①仔细阅读集成文档,查看是否有遗漏;
    ②阅读常见问题,查看是否能解决,Android常见问题iOS常见问题服务端常见问题
    ③扫码联系个推技术支持

setTag 设置标签 APP开发接入个推推送能力

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

setTag 设置标签 APP开发接入个推推送能力

核心代码示例,详情参阅demo

jsBridge.getui.setTag(['tag1', 'tag2', 'tag3'], function(succ){
  alert(succ ? "设置成功" : "设置失败");
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getui.setTag(['tag1', 'tag2', 'tag3'], function(succ){
  alert(succ ? "设置成功" : "设置失败");
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getui.setTag(['tag1', 'tag2', 'tag3'], function(succ){
  alert(succ ? "设置成功" : "设置失败");
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->

setBadge 清除角标数字 APP开发接入个推消息推送SDK

用做网页的技术做APP
一门提供标准化的jsbridge-mini.js库,您只需要在页面引用执行JS即可实现各种原生APP、原生PC的功能能力。

==================APP端==================
【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程:
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
一门APP开发平台通用JS

setBadge 清除角标数字 APP开发接入个推消息推送SDK

核心代码示例,详情参阅demo

jsBridge.getui.setBadge({
  badge: 0
});

A标签执行JS示例代码

<a href="javascript:void(0)" onclick="zhixing()">执行</a> 
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getui.setBadge({
  badge: 0
});

}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->

按钮执行JS示例代码

<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {


<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.getui.setBadge({
  badge: 0
});

}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->