Tenken blog

订阅号实现统计不同渠道的关注数的方法

做过微信公众号开发的人应该都知道,只有认证服务号有生成带参数的二维码接口权限,可以统计不同渠道的二维码关注来源,其他类型的公众号都没有这个接口权限,有很多微信订阅公众号的运营者却又很需要这样的功能,那到底能不能实现这样的功能呢?或者说利用其他工具实现呢?答案是有的!提前条件是开发者账号+认证服务号。

实现原理

详细步骤

1、将认证公众号和订阅号同时绑定到同一个开发者账号,这一步的目的是获取用户的unionID,下面会用到这个unionID,这一步很关键。
2、利用认证服务号的网页授权权限,生成一个二维码给用户扫码授权
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
这一步有两个参数很关键,scope=snsapi_userinfo这样才能获取到unionID,state参数可以随机一个字符串,但是需要唯一值,用于作为此二维码的唯一标识。至于生成二维码有很多方式,可以找第三方开源库生成,或者第三方平台生成都可以。
3、用户扫码授权后,会跳转到redirect_uri地址上,我们在这步里面可以获取到用户的openID和unionID,将state参数和unionID参数记录到数据库,后面的统计来源需要用到。(这一步的网页授权获取openID和unionID可以参考微信的开发文档)获取到用户的openID和unionID之后,我们需要跳转到一个引导用户关注的页面,比如是专门的引导关注的订阅号文章,直接点击公众号名字就可以直接关注,这样用户体验相对会好一些。这里看大家发挥了。
4、根据关注推送事件,后台就可以获取到每一个用户关注后的openID和unionID,然后通过unionID参数去查找state数据,这样就可以统计到每一个state值的关注用户数,也就是认证服务号的带参数二维码的功能。

缺点

1、比较麻烦,需要准备开发者账号和认证服务号
2、用户体验也不好,不能直接扫码关注,这一步可能很多用户会跑掉
3、统计的数据不能百分百准确,用户可能授权之后可能在其他途径关注公众号,来源不能完全精准。

请我吃辣条吧~~