推送(Push) FAQ
第一期支持小米、华为、魅族、vivo、oppo。如果是其他机型默认选择小米(需要app在前台保活)
华为需要在华为的网页上配置指纹
华为、魅族需要配置回调地址
- 1.推送权限打开设备数:该推送选择的目标推送人群中,打开了推送权限的设备数量。
- 2.消息发送设备数:指的是发送推送请求到第三方服务器。
- 3.消息送达设备数:指的是厂商通过回调接口返回给 GIO 的设备送达数据。关机、无网络、卸载App以及关闭推送权限的设备是无法送达的。厂商每秒会发送一次回调数据。
- 4.消息点击:指用户点击该Push的数量。是 GIO 的 SDK 采集到用户点击消息事件。
Android:优势是我们推送是直接对接到厂家的通道,并通过手机的机型启动相应的通道。比如小米手机启动小米推送通道、华为手机启动华为推送通道。即使APP不是保活状态也可以及时收到消息。劣势是我们没有自己的通道,暂时不支持消息透传。还有不支持APP相互唤醒的流氓功能。
iOS:直接对接的苹果APNs服务器,这个跟其他没有区别。
GIO 最大的优势是既保证到达率,又能做到每一步数据的精准迅速的获得,再也不会出现到达率很高,点击率很低,对于中间环节哪里出了问题摸不着头脑的情况。还能结合分群,做基于用户行为+业务数据的精准推送,真正做到精细化运营。
Android:基本能覆盖所有的设备。我们现在对接的厂家通道有华为、小米和魅族,oppo和vivo等。通过手机的机型启动相应的通道,比如小米手机启动小米推送通道、华为手机启动华为推送通道。在其他手机上,比如联想、一加等机型上我们是直接利用小米的推送通道,这些手机上可能保证不了push消息能够及时送达。
iOS:直接对接的苹果APNs服务器。覆盖所有的苹果设备,包括iPad。
Android:可以收到推送。我们直接使用的厂家通道,除非厂家通道的自己服务器的问题,不然可以直接推送。如上文所述通过手机的机型启动相应的通道,比如小米手机启动小米推送通道、华为手机启动华为推送通道。这时候是不需要长连接的,因为厂商手机系统本身就有自己的push长连接通道。未接入厂商通道的其他手机暂时是直接利用小米的推送通道,这个需要有一个长连接在后台,如果APP被杀死,可能保证不了push消息能够及时送达。
iOS:直接对接的苹果APNs服务器,肯定能收到。
需要选一下iOS证书
开发环境:需要确定 App 已使用开发环境的签名证书打包,使用
Xcode
直接编译安装到设备。
生产环境:需要确定 App 已使用生产环境的签名证书打包,生产环境的 App 有以下3种打包方式:Ad-Hoc
TestFlight
AppStore
。可以从三个原因分析:
1 厂商通道要求配的appKey,appId,appSecret没有在build.gralde文件里配对
2 不同的品牌厂商通道支持机型不一样,比如一加手机注册小米通道的推送测试机容易失败
3 网络因素,oppo手机连接wifi时注册可能失败
建议开发人员在Logcat里搜索「PushRegister」这个tag,找到对应的code报错码,再去对应的产商推送平台上找报错码对应的异常情况。
莫慌,因为分群T+1 ,推送令牌等信息还没有写入分群,请在第二天测试推送分群
如果是访问用户分群,可以先用户细查查看对应分群的包名和推送令牌有没有写入
如果是登录用户分群,可以事件分析查该登录用户昨天上报的包名和推送令牌有没有数据
因为分群是T+1,推送令牌要写入分群,请在安装app第二天测试分群推送
注意:
- App集成GIO的推送SDK,并发布到商店后,用户只有下载并打开了新版的App才可以上报推送令牌,这台设备才能够被送达。
- 分群是每日凌晨计算,所以如果用户A今天是第一次打开新版的App,那么第二天才能进入分群被送达到。所以建议您第一次发送 Push 等待一天。
- 只会推送该用户最近一次登陆的设备
- 推送时按照设备去重,一个设备只会收到一条该Push
1)web页面创建任务,推送发送人数少于分群实际人数
发送人数少于分群人数
2)api推送提示:1017查询目标用户为空,请检查audience参数
以上两种情况都可通过事件分析进行排查。
- 新版界面:产品分析 -> 分析工具 -> 事件分析
- 旧版界面:产品分析 -> 事件分析
推送任务理论正常送达(排除厂商未送达、用户断网关机等异常原因)需要:GIO_触达推送通道不为空、GIO_触达推送包名正常、GIO_触达推送令牌不为空、GIO_触达推送权限开关为true。
通过事件分析分析数据是否正常
Last modified 2yr ago