「大众点评点餐」小程序开发经验 06:解析开发工具
文 | 邹弓一
邹弓一,美团点评前端工程师,4年 Web 前端开发经验,现在是美团点评点餐团队的一员。
关于小程序开发的经验以及过程中遇到的「坑」,知晓程序(微信号 zxcx0101)之前发布的大众点评团队的文章里,已经介绍的差不多了。
大数据时代,一个产品成败,除了前台用户主观口碑可以决定之外,还需要用大量的客观数据去分析验证。
本期就和大家一起探索下,微信小程序是如何进行数据采集与分析的,当然,本文还会阐述这个过程中,我们所遇到的「坑」。
微信官方采集平台介绍
微信小程序提供了一套官方的数据采集分析工具。就目前而言,这套工具提供了以下几种数据分析方式:
- 概况:提供小程序关键指标趋势以及 Top 页面访问数据,快速了解小程序发展概况。
- 访问分析:提供小程序用户访问来源、规模、频次、时长、深度以及页面详情等数据,具体分析用户新增和活跃情况。
- 实时统计:提供小程序实时访问数据,满足实时监控需求。
- 自定义分析:精细跟踪用户在小程序内的行为,结合用户、系统、事件等信息,进行灵活多维的事件分析和漏斗分析。
前 3 种方式都是小程序自动采集,不需要开发者任何的人为操作,在微信官方文档中都有详细说明了,这边就不再阐述。
这里,我们主要结合「大众点评点餐」小程序,探讨「自定义分析」的具体功能和作用。
自定义分析
所谓「自定义分析」,就是传统意义上的埋点。开发者可以自行设置希望上报的数据,通过这些数据来分析你希望得到的结果。
微信官方的自定义分析使用了当下比较流行的无埋点技术,通过微信后台配置锚点并实时下发到客户端生效,无需在代码中手动加入埋点代码。
并且,由于小程序发版有审核机制,如果希望在代码中加入可埋点的元素,就需要重新提审,时间成本非常高。
相对而言,采用无埋点技术,更加适合于小程序的场景。
但从目前「大众点评点餐」小程序中测试与使用来说,目前内测版本的自定义分析(截止 2017 年 3 月 2 日)对代码本身设计与书写的要求比较苛刻。
特别是数据采集需要与页面 page
的data
做到关联,在某些场景下会出现比较难以满足的情况。
接下来,让我们看看实现一个自定义事件的步骤吧。
首先,使用管理员账号登录公众平台后台,找到「数据分析」-「自定义分析」。
如果是第一次使用,那么事件列表应该为空。此时,我们点击新增事件,填入打点事件的中英文名称。
接下来,就是最关键的事件配置步骤了。
动作的各项含义如下:
trigger
,触发条件click
点击时触发,必须指定page
和element
enterPage
进入页面时触发,必须指定page
leavePage
离开页面时触发,必须指定page
pullDownRefresh
下拉刷新时触发,必须指定page
launch
加载小程序时触发background
切换到后台触发foreground
切换到前台触发share
分享时触发
action
,trigger
发生时的动作,默认会收集数据,包括系统默认数据和用户自定义数据(data
中定义)- 留空代表只收集数据
start
初始化并收集数据report
收集数据并上报事件数据,之前必须有start
操作,未经过start
操作是不会上报的start_and_report
初始化,收集数据后上报
page
,触发事件的页面。如pages/index/index
、pages/list/list
,需要与小程序中app.json
在pages
注册页面所用地址保持一致。如果需要任意页面触发,则填写ANY_PAGE
。element
,触发事件的元素,支持一层级的id
和class
选择器,即必须以.
或者#
开头。data
,收集的自定义数据,为零到多项,每一项都是以「字段名 – 字段值」的格式交换。如果不填,则只收集系统数据。- 字段名:事件里的字段名
- 字段值:事件这个字段的数据值,填写页面上的变量名(即
page
实例的data
字段),可以搜集页面上的变量。- 如果
data
收集的是数组里的某一项数据(如list[].id
),则根据当前触发元素是由class
得到的NodeList
的第几个来决定数组下标。 - 除此之外,还可以填写一些提供的系统属性。目前支持以下属性:
$PAGE_TIME
,用户从进入本页面到当前的时间(触发action的时间点)$APP_TIME
,用户进入小程序到当前的时间(触发action的时间点)$CURRENT_PAGE
,当前用户所在的页面$LAST_PAGE
,上一页
data
可以为空,为空时该事件上报仅收集系统默认字段的数据
- 如果