- 平台介绍
- 接入指引
- 版本信息
- 使用流程
- 功能手册
- 操作视频
- 技术文档
- 基础知识
- 客户端SDK
- 服务端SDK
- 数据导入
- API功能
- SQL手册
- DML
- SQL函数
- 日期函数
- convert_tz
- curdate,current_date
- current_timestamp
- curtime,current_time
- date_add
- date_format
- date_sub
- datediff
- day
- dayname
- dayofmonth
- dayofweek
- dayofyear
- from_days
- from_unixtime
- hour
- makedate
- minute
- month
- monthname
- now
- second
- str_to_date
- time_round
- timediff
- timestampadd
- timestampdiff
- to_date
- to_days
- unix_timestamp
- utc_timestamp
- week
- weekday
- weekofyear
- year
- yearweek
- localtime,localtimestamp
- quarter
- last_day
- extract
- date_trunc
- minutes_add
- minutes_diff
- minutes_sub
- seconds_add
- seconds_diff
- seconds_sub
- hours_add
- hours_diff
- hours_sub
- days_add
- days_diff
- days_sub
- weeks_add
- weeks_diff
- weeks_sub
- months_add
- months_diff
- months_sub
- years_add
- years_diff
- years_sub
- 字符串函数
- append_trailing_char_if_absent
- to_base64
- from_base64
- ascii
- length
- bit_length
- char_length
- lpad
- rpad
- lower
- lcase
- upper
- ucase
- initcap
- repeat
- reverse
- char
- concat
- concat_ws
- substr
- substring
- sub_replace
- ends_with
- starts_with
- trim
- ltrim
- rtrim
- null_or_empty
- not_null_or_empty
- hex
- unhex
- elt
- instr
- locate
- find_in_set
- replace
- left
- right
- strleft
- strright
- split_part
- split_by_string
- substring_index
- money_format
- parse_url
- convert_to
- extract_url_parameter
- uuid
- space
- sleep
- 日期函数
- 数据类型
- 数据管理
- 常见问题
- 合规说明
- 资源下载
- AB测试
数据&技术问题
- 【公共模块相关问题解答】
- 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 平台相关问题解答】
【小程序 平台相关问题解答】
【JAVA SDK 相关问题解答】
1、触发了java SDK 的上报事件,平台上查不到数据;
解答:检查初始化SDK时,使用的初始化方法,是否是实时上报?如果使用的是实时上报,还没有数据,请联系海纳技术人员协助;如果使用的是批量上报,sdk内部会先暂存,需累计到一定条数才会触发上报;
最后编辑:邓昊 更新时间:2024-09-05 21:06