第 5 步:数据校验

最后更新于:2019-05-23 11:07:28

本环节由测试人员完成,需要完成的任务如下:

  • 对事件和属性的完整性及数据类型进行校验

  • 对用户关联情况进行校验

  • 验证 App 与 H5 打通(做了打通的情况下)

1 事件和属性完整性校验

进入神策分析页面,点击左下角【元事件管理】,查看元事件和属性字段,请注意此时事件和属性显示名仍是英文,后续需要统一调整为对应的中文名。检查项如下:

1.1 检查事件及名字是否与《事件设计文档》一致。

事件是否有遗留或新增。如有新增事件可能是开发人员测试产生的,需要开发确认相关的埋点代码已经清除。如有遗留则可能是漏埋了或者埋点了但是未传输过数据。

1.2 点选事件名,检查其包含的属性是否完整,名字和类型是否正确。

属性是否有遗留或新增。这块遗留的情况比较常见,可能是漏埋了。

属性值类型是否与事件设计一致。如不一致,请开发在代码里修正变量类型,然后联系技术支持同学修改变量类型,修正后的数据才可正常入库。或者另取一个属性名,数据即可直接入库。

2 对用户关联情况进行校验

在开始本小节的校验之前,请提前阅读 第 2 步:如何准确的标识用户 并确定理解了用户关联的概念和方案。

该环节需要结合神策分析中“自定义查询”的功能来操作,校验的目的有 3 点:

  • 1、检查 first_id 取值是否存在异常,是否有将 second_id 写入 first_id 的错误操作;

  • 2、检查 second_id 取值是否异常,是否有正常关联的用户存在;

  • 3、检查用户 ID 关联过程是否正常。

2.1 检查 first_id 取值

查询 users 表,检查查询结果中 first_id 是否为设备 ID,以及是否存在异常情况。以下是各端 SDK 默认取的设备 ID ,可根据 ID 格式大致判断 first_id 取值是否正常。

查询 sql: select * from users limit 1000
SDK 类型 ID 样式
Android 端 01c23e12e10a7810(AndroidID 为 16 位 ,字母+数字组成)
iOS 端 447BAE19-7117-4D1B-81E2-7B46AA7998A4(IDFA / IDFV / UUID 为32位,8-4-4-4-12)
H5 端 15ffdb0a3f898-02045d1cb7be78-31126a5d-250125-15ffdb0a3fa40a
微信小程序 oWDMZ0WHqfsjIz7A9B2XNQOWmN3E(28 位,字母+数字组成)

上面查询结果中可能存在的常见情况有:

  • first_id = second_id,这种情况可能是正常的,如果开发人员在同一台设备上登录过多个账号,则除了首个登录的账号会进行正常关联外,其余账号均会发生自关联,即出现 first_id = second_id = 账号 ID 的情况。

  • first_id 的实际取值不是设备 ID,而是账号 ID,而 second_id 取值为空,这种情况代表着 second_id 误写入了 first_id,可通过下方SQL 进一步检查。

查询 sql:SELECT u1.first_id, u1.second_id, u2.first_id, u2.second_id FROM users u1 JOIN users u2 ON u1.first_id = u2.second_id WHERE u1.second_id IS NULL;

如果以上查询有返回结果,原因可能但不限于如下情况:

  • $SignUp 事件传送失败,导致没有关联成功;

  • 后端在传 distinct_id 时没有设置 is_login_id 的参数值为 true;

  • 调 login 时误调用了 identify,将登录 ID 替换了匿名 ID。

2.2 检查 second_id 取值

查询 users 表,观察 second_id 取值是否是预设的 user_id 或其他用户唯一标识。注意,在测试环境中 second_id 大部分为空的情况可能是正常的,开发人员可能仅对少量测试账号进行了 ID 关联的尝试。

检查是否有正常关联的情况存在,即 first_id 取值为设备 ID,second_id 取值为 user_id。

2.3 检查用户 ID 关联过程是否正常

在 users 表的查询结果中,选取一个正常关联的情况的 id(users 表的 id 字段)在events 表中查询行为记录。

查询 sql:select * from events where user_id = "选取的id不用加引号" order by time

查询结果中主要观察的点,首次触发 $SignUp 事件前后,events 表中的数据记录的 $distinct_id 字段前后取值会由设备 ID 替换为 user_id。存在这个情况便表示存在有正常关联的过程。如果您采取的是多对一的关联方案,请联系对应的分析师协助这部分内容的校验。

3 验证 App 与 H5 打通

做了 App 与 H5 打通 的情况下,才需要进行本环节的验证。

如果是开发人员,进入神策分析页面,点击左下侧【埋点】—>【导入实时查看】—>【Debug 数据】 事件名选择 “$pageview” 点击【开始刷新】实时查看具体事件及属性是否正确。在手机上,打开 App 进入到 H5 页面。看 “$pageview” 事件的属性,如果有 “$wifi” “$network_type” 、“$app_version” 、“$carrier”等字段,说明 App 和 H5 打通成功。(或者开启 SDK 调试日志后,在开发工具的控制台,通过输出的事件日志信息来核对)

也可以在事件分析中,找到 Web浏览页面 事件,查看事件属性中是否带有 设备ID、应用版本、是否 WIFI、网络类型、运营商。