本文意在帮助大家了解如何在开发模式下进行相关消息推送,主要描述消息需求实现流程与注意事项,具体的开发说明详见微信公众平台技术文档。
一文带你彻底了解微信公众号推送机制
一、微信公众号消息推送定义
在开发模式下,企业消息系统发送图文推送、模板消息、自动回复、客服消息等类型的消息至微信服务端,在微信公众号对话窗口下与用户进行互动。
二、主要流程说明
2.1 接入开发模式
一文带你彻底了解微信公众号推送机制
首先将公众号的APP ID等信息同步开发者,并将开发者的参数配置到后台,并开启开发者模式。验证正确后即成功接入开发模式。
2.2 获取用户信息
一文带你彻底了解微信公众号推送机制
获取用户信息是进行消息推送最基础的步骤,获取用户信息时需要用户授权,开发者需将微信回调的CODE值调用微信用户信息接口替换相关信息,并进行数据存储。
2.3 消息推送
消息推送从发送发起方来划分,分为两种:用户触发推送,企业主动推送。
关注欢迎语、关键词回复、客服消息等用户主动发起并且实时互动的消息,用户主动发出消息或触发事件,微信侧会将相关信息同步至开发者,待开发者处理好后推送给用户。
主动推送主要为群发的图文消息等,用户被动接受。开发者直接调用相关消息推送接口即可,但此类消息微信有严格的频率控制。
三、推送账号
每个用户在每一个微信公众号下有对应的唯一open ID,微信的推送也是以一个open ID来对应一个用户。
对于公司内部来说,可能会运营多个微信公众号。一个用户同时关注了多个公众号,对于内部运营来说便产生了各个公众号关注用户关联关系(用户打通)的需求。微信侧提供了union ID作为关联账号,同一用户,对同一个微信开放平台下的不同应用(小程序、公众号等),unionid是相同的。因此,需将微信公众号去微信开发平台进行绑定(open.weixin.qq.com)。
对于精准推送来说,需要将企业内部的customer ID与微信的open ID形成映射关系,这样便可以根据用户在企业自身的产品上产生的行为,通过微信公众号对指定用户进行消息推送,例如信用卡还款提醒。
绑定关系的实现主要通过微信授权第三方登陆页面(企业登陆页面),在企业登陆页面登陆后,可将企业customer ID与微信code值同时传输到绑定服务,之后调用微信接口将code值对应的open ID等信息与企业customer ID建立绑定关系。其中已关注对应公众号的用户则为静默授权,无需用户确认授权,用户体验较好。
四、消息场景与功能实现
在启用开发模式后,微信公众号提供了企业与微信关注用户互动的一个窗口。本质上,每次交互都是微信会将用户的行为与提交的内容传递公众号开发者,等待开发者处理好后,将对应的消息或者指令反馈给用户。
因此,企业可结合微信与自身的能力与用户进行互动,推送的精细程度与灵活程度大大提高。以下为部分微信消息典型场景与实现逻辑,发送内容形式可以是文本、图文、图片、语音、视频等,文件要求详见微信公众平台技术文档。
4.1 关注欢迎语
可以根据用户的历史关注数据区分首次、非首次用户,来回复针对新关注用户的露出的特定优惠。
当企业的公众号在某些渠道推广时也可以根据不同的参数二维码来识别关注来源,评估推广渠道的好坏或针对不同渠道或活动的用户回复不同的内容。
4.2 关键词回复
当用户回复的内容命中关键词时,回复对应关键词的内容。
可以用在彩蛋互动、活动推广、用户主动查询信息等场景。对于关键词判断时,如果关键词有较多相近的词汇的话也可组成词组,命中其中一个便进行消息回复。这些命中规则在消息系统实现即可。
4.3 群发消息
对于认证订阅号,,每个月每个用户只有接受4次主动推送图文等消息的机会。当用户数量达到一定程度,用户需求出现一定差异化,企业需要精细化运营的时候便捉襟见肘了。
为了更好地差异化推送,可利用企业自身用户标签、用户画像系统与微信群发消息结合,将用户进行分群推送,实现精细化运营。
4.4 智能客服
如果企业有智能问答等相关能力的话,也可以接入微信推送系统,这样可以增加与微信用户互动的趣味性,也可用来解决一些用户的实际问题,提高用户解决问题的效率,降低企业客户服务相关的成本。
4.5 菜单栏互动
大多数情况下,微信的菜单栏都被设置成了各个页面或者小程序的入口,实际上微信也提供了通过底部菜单栏进行触发消息事件的能力,用户点击后可回复相关内容。
五、部分与消息场景相关的常用功能说明
由于开启了开发者模式,微信公众平台上的某些功能(菜单配置、自动回复设置)便不可使用,或者微信提供了更好的精准推送的能力,需要微信公众号的开发者利用微信公众平台提供的相关接口进行自行实现。
5.1 菜单配置及其差异化
微信公众平台上的菜单栏配置在开发模式下会失效,因此微信推送系统需要提供此功能便于日常运营。当然,每个人看到的菜单栏也可以是不一样的,比如开过本行信用卡的用户再开第二张的可能性较低,因此可释放出申卡菜单栏进行其他资源投放。差异化的菜单栏展示可以通过微信的自定义菜单相关接口实现。
5.2 生成带参数的二维码
带参数的二维码主要用来做渠道区分,其中一个场景可以应用于个人用户的裂变,生成专属邀请码,不过要注意微信侧对于永久、临时二维码的限制。
5.3 用户标签与素材管理
用户标签主要是将企业对用户的分群数据打标到微信用户上,实现差异化推送、差异化菜单的基本能力。
素材管理也是消息回复中常涉及到的部分功能,将图片、语音等素材文件提交至微信侧。
六、其他重点及避雷说明
6.1 access token有效性
access token是公众号的全局唯一调用凭证且有效期目前为2个小时,需要定时刷新,每日调用次数限制2000次以内。刷新后,前一个token将会失效。特别需要注意的是,如果当企业内部有多个团队或者多个场景需要使用access token时,不要各自去对接微信,要建立一个唯一对接者,然后对内部需求进行分发,避免互相将token置失效,若没有良好的重试控制机制,瞬间浪费调用额度。
6.2 存量用户数据初始化
对于大多数微信公众号接入开发模式前,已经运营了一段时间,积累了一定的用户数量。在接入开发者模式之后,对于存量用户需要进行数据初始化,需从微信侧获取必要信息并记录,避免后续消息推送无法覆盖存量用户。
6.3 公众号迁移
账号迁移需要一定费用并且会在迁移时通知用户,用户有是否取关的权利。对于迁移造成的用户open ID变化要做好替换,避免出现由于迁移导致长时间无法推送的事故出现。
6.4 接口权限获取
对于以上提到的各种功能并不是每一个公众号都是具有相关的接口权限的,赢在接入开发模式之前将相关接口的权限获取好,避免权限不够导致不能平稳接入,对研发工作和用户造成影响。相关的权限可以在微信公众平台——开发——接口权限模块进行查看。
6.5 接口调用频率限制
微信的一些接口在调用上是有一定限制的,一定要事先了解并且在微信消息推送系统做好相应的调用控制,避免出现不合理调用造成额度浪费,无法进行用户推送。详细限制在微信公众平台——开发——开发者工具——开发者文档——接口调用频次限制说明。
6.6 小程序导流
目前公众号底部菜单栏可以进行关联后的小程序的设置,或者通过回复超链接的形式(体验不是很好)。直接回复小程序卡片的功能微信侧还未开放,但可通过客服消息功能实现,需认证后公众号具有客服消息权限及关联过小程序。当需要推送小程序时,调用相关客服消息接口。
一文带你彻底了解微信公众号推送机制
6.7 数据分析
任何的消息触达都需要进行数据分析,发送、触达、点击,转化等数据是必不可少的。在微信公众号的场景下,更有菜单栏的点击、用户关注、取消、消息阅读量等数据来衡量公众号的运营情况。在微信消息系统产品设计时,便需要将相关数据采集、统计分析。
七、小程序服务通知说明
小程序场景下,用户更多是集中在小程序功能上,消息互动仅仅是其中一块非常小的模块,但对于小程序运营者来说,利用好服务通知也是可以提升小程序活跃度的重要手段。
小程序的服务通知会在用户的聊天列表专门有一个“服务通知”对话,收纳各种小程序的服务通知。其中特别值得注意的是,小程序有一个form_id的概念,当用户在小程序内发生过提交表单行为且该表单声明为要发模板消息时或用户在小程序内支付时,产生一条form_id,有效期为7天且不可重复使用。开发者在下发服务通知时需要提交有效的form_id。
八、写在最后
遵守规则,以用户为中心,避免封号产生重大影响。
微信提供了许多基础功能,可将多个功能或结合企业自身的能力组合形成一种新的互动的方式,例如根据生成参数二维码、自动回复形成用户可自行裂变邀请的功能。
对于某些场景的限制要做到深入了解,避免某些业务场景达到了微信接口调用次数限制后出现问题,需了解各接口调用频次说明。
一切功能实现基于微信公众平台能力,需并且经常回顾平台规则并且关注更新。
消息推送只是微信公众号生态下一个消息的模块,市面上已经有各种各样的针对微信的运营工具,可根据自身需求评估,是否需要自己独立开发。
以上写的只是第三方公司有公众号消息推送需求的基本经验,最重要的还是多了解微信公众平台的开发者文档。