数据&技术问题
- 【公共模块相关问题解答】
- 1.1 数据分析/SQL查询/导出
- 1.2 查看对比 客户系统统计数据(用A表示)、海纳云获取的数据(用B表示)、海纳云图表显示数据(用C表示)。
- 1.3 统计事件中,分析配置 - 事件分析中,不同统计维度导致数据统计差异
- 1.4 导入历史数据后,发现部分数据与原有平台数据不一致
- 1.5 自定义事件中,代码中事件名前后出现空格,导致数据不接收
- 1.6 接入SDK后,发现平台上没有数据?
- 1.7 事件属性数据过长被截断?
- 1.8 事件表里distinct_id和用户表里的distinct_id不一样?
- 1.9 在设备A(匿名id=A)上,用户a(账户id=a)登录,然后登出,更换用户b(账户id=b)登录,用户表里的数据是什么样的?
- 2.0 用户a(账户id=a)先在设备A(匿名id=A)等,又在设备B(匿名id=B)登录,用户表里的数据是什么样的?
- 【web 平台相关问题解答】
- 1.1 WebSDK 单页面的页面标题H_title问题
- 【Android 平台相关问题解答】
- 【iOS 平台相关问题解答】
- 【小程序 平台相关问题解答】
- 【JAVA SDK 相关问题解答】
【公共模块相关问题解答】
1.1 数据分析/SQL查询/导出
Q1:导出CSV文件,用Excle打开,出现行列乱序问题?
A:导出的数据里面如果包含“\t”、“\n”、“,”等特殊转义字符,可在该字段上增加双引号(””)或者使用JSON函数(json_quote())跳过其中包含的特殊转义字符。
1.2 查看对比 客户系统统计数据(用A表示)、海纳云获取的数据(用B表示)、海纳云图表显示数据(用C表示)。
选定某一特定指标,观察数据差异。
(1)如A与B不一致,可能是两端的取数逻辑不一致,比如
①存量数据不一致,比如APP统计版本不一致,可以将范围锁定在最新APP版本,进行数据对比分析,探索差异;
②客户端SDK调用了logout()方法(此方法会清空登录ID,重新使设备ID作为用户标识,一般没有必要选择这种方式);
③某按钮功能在两端取数的逻辑不一致,如B端可以接收用户2次连续签到点击数据,A端设置为每天计1次签到成功;
④批量上传造成的数据上传不及时,甚至数据丢失(强弱网条件下);
1.3 统计事件中,分析配置 - 事件分析中,不同统计维度导致数据统计差异
比如【按周】查看时,选择【月份】,统计的【当周】数据量为指定月份区间内的数据量。
例如:查看2024-02-26当周数据量,选择的月份为2024-03月时,只会统计2024-03-01~2024-03-03这3天的数据。
1.4 导入历史数据后,发现部分数据与原有平台数据不一致
排查步骤:
1、先检查元数据配置,确保导入历史数据前元事件配置完成;
2、确保原有平台导出数据时,不出现时间区间的重复,避免同一批数据重复导入;
3、可在分析配置-事件分析中,按照不同的指标查看数据,比如【按年】、【按月】、【按周】等逐步缩小排查范围,找出数据未对齐的时间区间,尽可能缩小时间区间后,重新导入这批数据。
1.5 自定义事件中,代码中事件名前后出现空格,导致数据不接收
事件名在元数据中严格按照字符串匹配。在自定义事件中,配置好元事件后,代码中埋点时,需要检查自定义事件名是否出现空格,例如自定义事件名为”confirm”, 代码埋点时为”confirm “, 会导致该事件被排除无法入库。
1.6 接入SDK后,发现平台上没有数据?
一般有以下原因:
1、检查上报事件,是否在元数据管理配置,只有配置了才允许被接收;
2、事件被排除,联系海纳对接技术协助;
1.7 事件属性数据过长被截断?
事件属性数据,平台有限制长度,建议字符长度不要超过1000,如果超过1000,建议按一下方式处理:
1、优先考虑使用方式是否合理,可以联系海纳产品和技术对接人员,进行沟通;
2、如果确实是需要存下来,建议定义多个属性,对过长的属性数据进行分割或者分段,放在多个属性上进行存储;
1.8 事件表里distinct_id和用户表里的distinct_id不一样?
登录前产生的事件,事件表里distinct_id存的是事件报文里的匿名id;
比如:登录之前,去打开设置页面,设置按钮点击事件:
事件表:
event | user_id | distinct_id |
---|---|---|
click_btn_setting | system1234 | abcd-efgh-abab |
用户表:
user_id | distinct_id | account_id |
---|---|---|
system1234 | abcd-efgh-abab |
登录后产生的事件,事件表里distinct_id存的是事件报文里的账户id;
比如:登录之后,去购买支付,支付按钮点击事件:
事件表:
event | user_id | distinct_id |
---|---|---|
click_btn_pay | system1234 | user1001 |
用户表:
user_id | distinct_id | account_id |
---|---|---|
system1234 | abcd-efgh-abab | user1001 |
注意:用户表里distinct_id存的一直是事件报文里的匿名id,不分登录前和登录后;
关于用户标识的更多信息,请查看【用户识别】
1.9 在设备A(匿名id=A)上,用户a(账户id=a)登录,然后登出,更换用户b(账户id=b)登录,用户表里的数据是什么样的?
首先,在设备A上登录用户a:
用户表:
user_id | distinct_id | account_id |
---|---|---|
system1111 | A | a |
然后登出,换用户b登录:
用户表:
user_id | distinct_id | account_id |
---|---|---|
system1111 | A | a |
system2222 | b | b |
最终,用户表里有2条用户数据:
用户a对应的用户数据:distinct_id是A,account_id是a;
用户b对应的用户数据:distinct_id是b,account_id是b;
关于用户标识的更多信息,请查看【用户识别】
2.0 用户a(账户id=a)先在设备A(匿名id=A)等,又在设备B(匿名id=B)登录,用户表里的数据是什么样的?
首先,用户a在设备A上登录:
用户表:
user_id | distinct_id | account_id |
---|---|---|
system3333 | A | a |
然后,用户a在设备B操作,登录前(会产生一个匿名用户):
用户表:
user_id | distinct_id | account_id |
---|---|---|
system3333 | A | a |
system4444 | B |
再然后,用户a在设备B登录,登录后(会先删除B匿名用户,然后绑定到a账号):
用户表:
user_id | distinct_id | account_id |
---|---|---|
system3333 | A | a |
关联表:
associated_user_id | user_id |
---|---|
system4444 | system3333 |
最终,用户表里有1条用户数据:distinct_id是A,account_id是a;
用户关联表里有1条关联数据:associated_user_id是b的海纳id -> user_id是a的海纳id;(设备B登录前的匿名用户如果有,会先删除B匿名用户,然后绑定到a账号)
关于用户标识的更多信息,请查看【用户识别】
【web 平台相关问题解答】
1.1 WebSDK 单页面的页面标题H_title问题
对于单页面应用项目,SDK全埋点预置事件采集的页面标题默认为document.title属性, 可能存在异常
具体问题:
- title如果没有更新赋值,获取title一直是首页的title不会发生变化更新
2.title是页面动态生成赋值的,切换页面发送的H_pageview事件的H_title值为上一个页面的title,解决方案可以参考【全埋点1.2.2手动模式】// 切换页面之前完成title值的更新 router.beforeEach(()=>{ document.title = 'new title' })
【Android 平台相关问题解答】
1、版本刚上线后,采集的访问和日活数据较少?
解答:app版本上线后,到用户升级到新版本有个时间过程,只有升级到接入了埋点的版本,才会有埋点采集功能,才会有数据采集上报;【iOS 平台相关问题解答】
1、iOS 部分版本采集不到运营商信息?
由于 iOS 系统限制,iOS 16.4 及以上版本,iOS SDK 无法采集运营商信息。即,iOS 16.4 及以上系统,iOS SDK 所有事件,都没有预置属性 H_carrier。
参考:iOS & iPadOS 16.4 Release Notes【小程序 平台相关问题解答】
【JAVA SDK 相关问题解答】
1、触发了java SDK 的上报事件,平台上查不到数据;
解答:检查初始化SDK时,使用的初始化方法,是否是实时上报?如果使用的是实时上报,还没有数据,请联系海纳技术人员协助;如果使用的是批量上报,sdk内部会先暂存,需累计到一定条数才会触发上报;
最后编辑:邓昊 更新时间:2024-10-31 14:08