背景
在小程序插件数据统计中,介绍了一种追踪小程序插件访问数据的方法。该方法同样适用于小程序数据统计。
虽然微信官方提供了公众平台和小程序数据助手等非常方便的工具,但实际业务中,会发现一些和预期不一致的统计结果,比如业务数据和访问数据步调不一致。这时就需要有份参照数据交叉验证。经过对几个小程序的官方和自有统计数据,一段时间的观察和比较,总体来说,官方的数据会低于自己统计。
统计口径
为了增加可对比性,参照数据的统计口径应尽量和官方保持一致,所以在小程序端上送了 openid 作为访客标识。
参考官方的访问数据统计口径:
- 累计访问人数:历史累计访问小程序的用户数,同一用户多次访问不重复计。
- 新访问人数:首次访问小程序页面的用户数,同一用户多次访问不重复计。
- 打开次数:打开小程序的总次数。用户从打开小程序到主动关闭或超时退出小程序的过程,计为一次。
- 访问次数:访问小程序页面的总次数。多个页面之间跳转、同一页面的重复访问计为多次访问。
- 访问人数:访问小程序页面的总用户数,同一用户多次访问不重复计。
- 人均停留时长:平均每个用户停留在小程序页面的总时长(单位为秒),即总停留时长/访问人数。
- 次均停留时长:平均每次打开小程序停留在小程序页面的总时长(单位为秒),即总停留时长/打开次数。
- 平均访问深度:平均每次打开小程序访问的去重页面数。
- 访问留存人数:本周期有访问,且上一周期有访问的用户(如日粒度下则为当日访问且昨日有访问的用户)
- 访问回流人数:本周期有访问,上一周期没有访问,但历史有访问过的用户(如日粒度下则为当日访问且昨日没有访问,但历史曾经访问过的用户)
突出案例

上图是4月26号“AppID查”小程序的访问统计数据,访问人数只有5,但根据自有统计数据,当天上送数据含 openid 除重后是33

问题分析
首先在小程序开发者社区查了一些关于“统计数据不准确”的讨论,已经不少人遇到类似的问题。
- 小程序数据助手的人数统计似乎不太准确?
- 小程序后台统计数据和数据库实际用户差异很大,是否为假用户?
- 很棘手的问题!为什么小程序统计数据不对?求官方大大解决
- 公众号菜单点击数据和小程序统计的数据差距太大问题?
- 云开发怎么防刷赞
- 用openid记录用户数,小程序数据助手统计的为什么比自己后台统计的要多很多呢?
这里有官方统计比实际偏高的,也有偏低的。
偏高好理解,因为微信可以在小程序整个生命周期进行数据上报,而开发者只能在已开放的几个特定生命周期里上报。小程序启动加载、包体加载、启动流程,这些过程都是开发者不可感知的 —— 有可能用户还没加载小程序包就点了关闭按钮,就会导致微信统计到了这次访问,而开发者没统计到。比较好奇偏低的原因,小程序数据统计究竟“漏了”哪部分数据?
根据社区上面的回答来看,最有可能是官方的数据统计过滤了爬虫数据(1129场景值的微信爬虫,和其他爬虫的访问数据)导致了数据偏低。
但回到“AppID查”这个小程序,实现的功能实在太简单了 —— 就一个页面,根据输入的 AppID,打开对应小程序,来实现的信息查询,应该不至于招致那么多爬虫来。。 同时,服务端记录了每次查询的 AppID 数据,用于实现底部的“热门查询”模块,根据绝大部分用户查询的 AppID ,和操作时间间隔来看,也不太像是机器操作。所以这个问题就很奇怪。
个人认为如果真是微信对某些访问进行了过滤,可以考虑开放个接口供开发者验证。比如输入 AppID 和 openid ,返回“真人概率”,以免黑盒导致的困惑。