数字基建系列(一)数分如何参与埋点工作
正如开篇所说,分析师应该协同产研一起进入埋点工作中。由于大部分公司的埋点系统或平台都不太一致,这里也仅以笔者的经验进行简单分享。首先,埋点的整体流程大同小异,产品过稿-->埋点设计-->埋点开发-->埋点测试与验收-->上线后统计需求。
产品过稿
产品过稿是了解埋点需求的最直接方式,在这期间你需要仔细理解产品稿的业务逻辑,并在脑中形成埋点数据框架,有疑问需及时提出。一般产品并不会特别清楚最终需要统计哪些数据,因此就会要求数分将所有可能的点都埋上。
这个时候有人可能就会疑惑了,那全埋了工作量岂不是很大;没埋全到时候出不了数怎么办。其实日常业务常见的统计需求就是点击率,因此产品稿的所有点击事件都需要埋上,每个点击事件都会对应着一个曝光,但大多数情况下曝光都是公用的或着可替代的,所以对于曝光事件只需要埋上典型性的和特异性的即可。
除此之外,还需要关注是否有特别强调的点或者关于时间长度的点,这类点也是必埋的。下面是一个简单的首页-meTab优化产品稿,为了避免不必要的麻烦,这里隐去了公司的信息;为了简化,这里隐去了不必要的信息。
可以看到,黄色标注点为此次改动,改动细节如右边的详细信息。因为隐去了一些信息,所以接下来的埋点设计只关注个人信息的状态、头像、昵称;VIP状态、运营banner位、底部tab【我】。
个人主页产品稿优化
埋点设计
根据产品稿厘清业务逻辑,然后设计出相关的埋点文档交由研发进行开发。常见的以三段式【事件类型/页面/事件】和四段式【事件类型/页面/模块/事件】为主,但对于后续开发和统计都没有影响,因此可根据个人逻辑理解进行设计。需要注意的是埋点命名采用驼峰命名,且需要记录主要参数。
URL | 页面 | 说明 | 参数 | 备注 |
---|---|---|---|---|
/event/homePage/enter | 首页 | 进入页面 | login_status(0:未登陆,1:已登陆) | 已有点,新增参数login_status |
/click/homePage/Button/me | 首页-底栏 | 点击底栏-我 | login_status | 已有点,新增参数login_status |
/event/me/enter | 个人主页 | 进入页面 | login_statusme_vip_type(0:VIP已过期,1:立即开通,2:某日到期,3:今天到期,4:某某某) | 已有点,新增参数me_vip_type |
/click/me/nickName | 个人主页 | 点击昵称 | login_status,me_vip_type | |
/click/me/myPic | 个人主页 | 点击个人头像 | login_status,me_vip_type | |
/event/bannSDK/show | banner位 | banner曝光 | poseid,activityid等 | 沿用banner设计,特殊埋点仅供分享使用 |
/click/bannSDK/click | banner位 | banner点击 | poseid,activityid等 |
上面案例可以看出,有些埋点已经存在但需要新增一些参数,这时候需要在文档中进行备注提醒,防止埋点重复开发并造成新旧埋点断层。这就引出了埋点管理的一个难题,多人协作时,如何确认该埋点是否已存在。一般在埋点体系不完善的情况下,都是手动测试一遍。
像一些特殊的埋点,例如banner位等都是单独设计的,内部通过一些参数区分banner的内容和位置。且大多数banner是H5页面的,所以这里加上banner的埋点也是为了方便介绍下面的埋点测试。
埋点开发
这个环节是由研发进行的,但在开发过程中经常会有一些问题需要数分及时解答,例如定义错误、参数不明确等,因此一个优秀的埋点文档能极大的提高双方的效率。
埋点测试
埋点开发完以后,就需要数分进行测试和验收了。常见的埋点分为客户端埋点和H5(前端)埋点,客户端又分为安卓和iOS。一般情况下,安卓采用ADB测试
,iOS采用mac控制台测试
,H5页面采用charles抓包
。
⚠️注意:下述配置方式为MAC,Windows电脑可自行查找相关内容。
安卓-ADB测试 安装:安装xcode和Homebrew,然后通过终端执行命令
brew cask install android-platform-tools
连接:打开开发者模式,连接安卓设备和mac,输入adb devices 命令即可。具体如下:
- 打开 Android 设备的系统设置,在设置列表末尾点击「开发者选项」(如果没找到「开发者选项」,需要先进去「关于手机」连续点击7次「版本号」(MIUI为「MIUI版本」)直至提示「开发者模式已启用」)
- 启用开发者模式,打开 「USB 调试」,数据线连接 Android 设备和 你的 Mac 电脑
- 在 Android 设备上允许调试,USB 连接选择 「文件传输」/「MTP传输」/「媒体设备传输」,只要不是选「仅充电」就行了
- 在 Mac 的终端中再次输入 adb devices 命令,如果 List of devices attached 下方出现了你的设备,说明连接成功
测试:在终端输入adb logcat | grep "keyName"
即可。
- 其中【keyName】为APP埋点关键字,过滤掉非测试埋点的日志。
- 在设备上进行相关操作(例如滑动、点击等),有埋点的相关信息则会出现在终端屏幕上
⚠️注意:配置是一次性的。首次配置后,只需要连接电脑和手机,打开调试模式,终端输入adb logcat | grep "keyName"
即可
iOS-MAC控制台 连接:从
启动台
找到控制台
程序打开,数据线连接 ISO设备和你的 Mac 电脑,选择信任,选择当前设备名称即可。 测试:在搜索栏输入keyName
即可过滤非测试埋点的日志,后续测试方式同安卓。H5-charles 安装:官网下载[1]后,直接安装即可 连接:打开charles,安装根证书,设置代理即可
- mac安装根证书:
Help -> SSL Proxying -> Install Charles Root Certificate
。安装完成后双击该证书进行信任设置为"始终信任"。(也可搜索钥匙串访问进入查看所有证书,双击Charles相关证书进行信任设置) - 移动设备安装根证书:
Help -> SSL Proxying -> Install Charles Root Certificate on a Mobile Device or a Remote Browser
会弹出提示,然后在移动设备浏览器输入提示中的url即可下载。下载完成后可在描述文件中找到相关证书进行信任设置 - 设置代理:
- charles设置:
Proxy->Proxy Setting
在Proxies界面设置端口号为8888,并点选Enable transparent HTTP proxying。 Proxy->SSL Proxying Setting
在SSL Proxying界面增加域名,一般为公司指定前缀,若测试时"keyName"能区分到测试埋点,也可设置为任意域名*:*
。- 获取电脑ip:在终端输入
ifconfig en0
即可在输出信息的关键字inet后查到本机IP地址。(Charles也能查询本机地址,但有时候由于内部VPN的关系使得IP地址不正确,所以不建议通过Charles查找) - 设置手机代理:长按wifi名进入网络设置,选择
配置代理->手动
,服务器填上获取到的电脑IP地址,端口填Proxy Setting设置的8888。
测试:在Filter栏输入
keyName
即可过滤非测试埋点的日志,然后测试H5相关的埋点即可。 ⚠️注意: - charles设置:
- 证书安装和代理设置都是一次性的,首次配置后,只需要打开charles,在手机上设置代理的IP地址和端口即可
- charles也可测试客户端埋点,但时效性较差
- 这些基础足以应付日常测试,复杂的测试建议请求测试同学帮助。其他charles操作可参考Charles抓包[2]
由于埋点测试含有公司信息,为了避免不必要的麻烦,就不截图展示了。测试过程重点关注上报机制是否正确,例如曝光的时机是在全露出还是只要露出一点就算;参数是否正确,有没有缺失等;url是否正确,有无拼写错误等。当所有埋点都正常测试到即可验收了,后续等待研发上线即可。
数据统计
当埋点正式上线后,则可以在相关线上日志表中根据url统计需求数据。如果在统计数据过程中发现埋点异常、丢失或需要增加额外埋点。都需要和产研沟通,在下个版本修复或增加。H5埋点不跟版,可优先修改。
总结
本文主要是帮助没有埋点经历的同学对埋点工作有个大致的理解,而有过埋点经历的同学则入乡随俗,以当前公司标准为主。
共勉~
参考资料
[1]
官网下载: https://www.charlesproxy.com/download/
[2]
Charles抓包: https://www.jianshu.com/p/e19a62c23789