• 【公共模块相关问题解答】

    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属性, 可能存在异常
    具体问题:
  1. title如果没有更新赋值,获取title一直是首页的title不会发生变化更新
    // 切换页面之前完成title值的更新
    router.beforeEach(()=>{
     document.title = 'new title'
    })
    2.title是页面动态生成赋值的,切换页面发送的H_pageview事件的H_title值为上一个页面的title,解决方案可以参考【全埋点1.2.2手动模式
  • 【Android 平台相关问题解答】

    1、版本刚上线后,采集的访问和日活数据较少?
    解答:app版本上线后,到用户升级到新版本有个时间过程,只有升级到接入了埋点的版本,才会有埋点采集功能,才会有数据采集上报;

  • 【iOS 平台相关问题解答】

  • 【小程序 平台相关问题解答】

  • 【JAVA SDK 相关问题解答】

    1、触发了java SDK 的上报事件,平台上查不到数据;
    解答:检查初始化SDK时,使用的初始化方法,是否是实时上报?如果使用的是实时上报,还没有数据,请联系海纳技术人员协助;如果使用的是批量上报,sdk内部会先暂存,需累计到一定条数才会触发上报;

作者:超级管理员  创建时间:2022-07-22 15:35
最后编辑:邓昊  更新时间:2024-09-05 21:06