You need to enable JavaScript to run this app.
文档中心
增长分析 DataFinder

增长分析 DataFinder

复制全文
下载 pdf
常见问题
SDK集成&数据上报
复制全文
下载 pdf
SDK集成&数据上报

通用预置事件/属性咨询

支持哪些预置事件/属性

支持的预置事件和属性:预置属性总表。

预置属性是否可以删除?

预置属性不可以删除,会影响一些基本指标的计算。

预置属性的上报数据是怎么算出来的?

更多数据口径和取值逻辑请参见数据口径&取值逻辑。

预置事件会包含自定义的公共属性吗?

自定义公共属性在上报时也会放置在公共字段header中进行上报,会随触发的预置事件、自定义事件等数据一起,在公共字段header中上报。

所有事件一定会携带事件公共属性吗?

事件公共属性只有明确设置了属性值之后,所有的事件才会携带此公共属性上报。没有设置公共属性的值则所有事件不会上报。
所以一般情况下移动端的SDK会上报一些预置事件,在上报之前会设置一些公共属性,因此一般移动端SDK上报的预置事件和自定义事件都会携带部分公共属性。
但是服务端SDK的事件上报不会提前设置公共属性,所以需要手动设置。
例如:平台类型属于事件公共属性,移动端SDK会自动采集并设置,所以一般移动端的事件都会携带这个属性。但是服务端的事件不会带,除非服务端手动设置platform事件公共属性才会携带。

预置曝光事件采集支持的版本

iOS、Android SDK:6.10.1版本开始支持
Web SDK:5.1.1版本开始支持

version类型数据是否可以转换为string?

从version类型修改为string类型不会影响历史数据,历史数据可以正常查询。

全埋点预置事件/属性

全埋点的应用场景?和自定义埋点的差异?

对比项

代码埋点

全埋点

埋点方式

代码埋点指的是开发工程师,按照业务个性化需求,人工写入代码中以实现数据采集逻辑。

全埋点,又称为“无埋点”、“无痕埋点”以及“自动埋点”。全埋点是针对标准页面的浏览和标准元素的点击进行自动采集上报,无需研发开发代码进行埋点集成。

采集事件

采集范围广,理论上只要是应用端的交互操作,都可以采集得到。

  • DataFinder为您提供了预置事件和属性,您可结合已支持的预置事件和属性,补充使用自定义代码埋点。
  • 支持的预置事件/属性详情参见:预置属性总表。

采集的全埋点事件为bav2b_click按钮点击、 bav2b_page页面浏览等事件,详情参见全埋点预置事件和属性。

适用场景

  • 适用于采集分析业务相关字段逻辑紧密的场景,分析更聚焦;
  • 尤其是一些非点击的、不可视的行为,非代码埋点实现不可

例如:搜索结果返回、注册结果返回、Banner、楼层、个性化推荐/千人千面页面

  • 适用于活动页、落地页,简单分析 UV、PV、点击量等基础指标;
  • 分析或统计需求简单,不需要对埋点事件进行传参等自定义属性设置的事件;

优势

  • 业务信息完善;
  • 事件、属性、上报时机等可以自定义和控制
  • 能够完整还原用户行为链路
  • 不需要开发人员手动录入,对业务代码侵入性最小,工作量少;
  • 部署SDK后即会自动且持续地收集的全埋点事件数据,这意味着,即使最初并未明确指定要分析哪些特定事件,但由于全埋点持续且全面的数据采集,因此可支持数据回溯——即可以在任何时候对过去的数据进行查询和分析。

劣势

  • 每一个控件的埋点都需要添加相应的代码,工作量大,需要开发人员支持、跟业务代码耦合;
  • 版本上线后埋点内容迭代灵活性低
  • 无差别全量采集,产生无效数据上报,浪费流量/存储/计算资源;
  • 数据形式非业务导向,对所有事件数据的自动收集;
  • 无法采集业务相关属性
  • 对于开发框架有一定限制,详情可参见客户端SDK支持范围中全埋点部分。
  • 仍然需要通过虚拟事件or圈选事件定位具体用户行为

集成操作指导

  • 预置事件和属性:无需您做任何配置,后续会自动根据触发机制采集上报对应的数据。
  • 自定义代码埋点:
    • 先根据业务分析需要,规划好需要采集上报的自定义埋点和属性有哪些。
    • 在DataFinder控制台录入对应的埋点和属性,将埋点和属性名称先落库。
    • 在集成SDK时,参考上报代码埋点的操作指导进行配置。
  • 在集成SDK时,打开全埋点开关。

停止数据上报

如果不希望再采集上报某些代码埋点数据,可在DataFinder控制台的数据管理>元数据管理中禁用对应事件或属性即可。

如果不希望再采集上报全埋点数据,可在DataFinder控制台关闭全埋点开关。无需修改集成代码中的全埋点开关。

数据分析

  • 大部分分析工具可直接使用上报落库的埋点数据。
  • 热力图、圈选事件功能需开启全埋点才可使用。

全埋点开关如何开启、关闭?

  1. 如果您希望采集全埋点数据,则在数据集成阶段,在集成的SDK代码中就需要打开全埋点开关。部分端的SDK默认打开全埋点开关,如果没有默认打开,您需要手动打开。
  2. 数据集成完成后,在后续的数据查询分析阶段,您需要在项目中心>项目管理>SDK设置中确保全埋点采集开关已打开。
    Image
  3. 后续如果您不需要继续采集全埋点数据,可在项目中心>项目管理>SDK设置中关闭全埋点采集开关即可。

全埋点是否会采集用户敏感信息,比如手机号身份证号这种?

全埋点事件不会采集用户敏感数据,当前支持采集的全埋点数据范围请参见:全埋点预置事件和属性。
DataFinder进行数据采集时,会基于数据分析需求采集部分例如宿主app(即开发者app)自身进程信息、手机系统重启时间等数据,详情请参见【增长营销套件SDK】隐私政策。

全埋点事件中,默认会开启的事件具体是哪些?

当前支持采集的全埋点数据范围请参见:全埋点预置事件和属性。

全埋点事件的element_class_name对应的属性值含义是什么?为什么同一秒上报的点击或曝光事件的element_class_name属性值有时为空?

  • element_class_name为全埋点事件属性“元素类名”,用于记录前端框架元素的名称,例如使用Vue框架的元素名称。开启全埋点场景下,如果页面dom上设置了class属性的话,则会上报的元素的class名称。
  • 出现同一秒上报的点击或曝光事件element_class_name属性值为空的情况,可能是因为在第一次曝光时控件内容为空,随后控件内容瞬间刷新,导致第二次曝光时内容为空。现有全埋点逻辑是针对标准页面的浏览和标准元素的点击进行自动采集上报,对于非标准页面或元素的曝光事件,目前暂不支持。

自定义事件中,想复用全埋点事件中的一些属性,finder SDK是否能支持?

当前不支持直接复用全埋点事件中的属性。您需要在自定义事件中手动添加所需的属性。
如果您希望在每个事件中都包括某些属性,可以通过设置公共属性来实现,这样这些属性会自动包含在所有事件中。

纯Flutter的App,且集成了webview,是否支持全埋点?

基于Flutter的APP支持开启并使用全埋点。

bav2b_page和bav2b_page_statistics事件的区别是什么?

bav2b_page事件:上报时机分独立页面和SPA(单页应用),独立页面的话则在页面打开后,SDK初始化完成后上报一次。如果是SPA页面,除了SDK初始化完成后上报一次,在点击切换页面时也会上报一次。主要采集的数据为页面浏览的一些参数,用于分析页面浏览行为。
bav2b_page_statistics事件:上报时机为页面打开后,SDK初始化完成后上报一次(独立页面和SPA都只上报一次),采集的数据主要是页面加载耗时、页面宽高等统计信息,用于分析页面加载统计等信息。

广告监测预置事件/属性

app激活回传的时机是什么时候?

用户首次安装、卸载重装、安装更新时触发app激活会实时回传。

utm参数从第一次记录下来,这个utm链路会存在多久?什么时候会没有?

utm参数的有效期取决于sdk的生命周期。如果sdk被关闭或者重启,utm参数就会失效。如果sdk会延续到下一个页面,那么utm参数就会持续生效。如果页面是单页面多路由的,utm参数也会持续生效。如果客户发现自己在操作页面上下级的时候会带上,但重新进入网页也会带上,那么这个utm参数就会存在cookie里。如果每个页面都是一个独立的话,那么utm参数就会消失。如果重新进入是因为你重新设置了那个utm参数,或者用这个,能传递给下一个域名。

如果没有购买广告监测功能,想要使用url携带utm参数,这种情况utm参数怎么采集?

可以在web/js或小程序的落地页 path上自定义参数utm_xxx,集成sdk后会自动采集。

广告监测 SDK 在进行广告归因时是否会采集用户的 CAID,并提供相应的隐私协议?

caid属于中广协 sdk提供的id,当前Finder还没有跟中广协确定合作关系,因此暂时没有接入caid,不需要提供隐私声明。广告归因是依赖于设备id、idfa和ip。

广告监测是否可以对接APP端的应用市场,采集App的下载量数据?

当前不支持对接应用市场获取相关数据。

自定义事件/属性

上报自定义事件/属性数据时,支持嵌套的 list 类型数据吗?

当前list类型的属性在上报数据时不支持嵌套。此场景下,当前建议通过转义的方式把数据转成String后再上报。例如:
Image

一般事件中展示名及事件描述可以在埋点时添加吗?还是说只能在前端加?

埋点中添加不了,只能在数据管理页面上添加。

自定义用户属性的处理逻辑

SaaS-非云原生场景下(含海外BytePlus环境),自定义用户属性是分实时数据和离线数据的。

  • 当天的数据是实时数据,自定义用户属性是跟随事件上报的,实时数据查询时自定义用户属性也是根据当时事件携带的属性值展示的。eg:A事件上报自定义用户属性为ios,B事件上报自定义用户属性为android,那么事件分析如果选择A和B事件,自定义用户属性会显示ios和android。单独选择A事件,自定义用户属性显示ios
  • 非当天的数据为离线数据,离线数据会在当天结束后统一进行构建,自定义用户属性离线构建时会按照天维度取当天最新的值作为今天所有此属性的值。eg:3-12上报的自定义用户属性按照时间排序有ios,android,mp,在3-13日进行离线数据构建时会把最新的自定义用户属性=mp的值刷新为3-12日所有此属性所有的值

支持自定义ip属性并且被解析成对应的国家和城市吗?

不支持,ip是网关检测的在上报后数据流加上的,ip的预置属性不能自定义

SDK集成:通用

客户端数据集成和服务端数据集成有什么差异?

大部分业务场景下,会需要同时接入客户端和服务端的数据。

  • 使用客户端进行SDK集成,可直接基于客户端来采集上报大部分的用户行为数据。
  • 使用服务端SDK集成的场景主要是:
    • 客户有自建SDK等特殊场景,只能通过服务端转发数据。
    • 待采集的事件数据不来自前端用户操作,比如发优惠券、交易状态变更等这类数据,这类数据存储于服务端,需通过服务端来上报。
    • 部分非常特殊的设备类型,比如ATM机,当前DataFinder的客户端SDK暂不支持直接采集数据,则需要通过服务端接入数据。

此外,部分用户在选择使用客户端还是服务端接入数据时也会考虑后续的升级是否便捷。

  • 客户端的升级依赖前端用户的操作,升级触达效率比较慢。
  • 服务端的升级为业务自行操作,升级触达效率高。

业务应用有自己的实名ID数据,如何上报用户数据,便于后续在DataFinder中查找某个具体的用户?

如果您的业务应用主要为需要用户实名登录的应用,并且有用户的唯一标识的字段(例如通过账号ID——account_id,来唯一标识一个用户),此场景下,您可把用户标识字段 account_id上报到DataFinder的user_unique_id(uuid)属性字段里,后续需要查询某个用户的时候:

  • 可通过过滤条件 user_unique_id = 这个用户的account_id 就可以找到这个用户了。
  • 如果您还想查询对应用户的ssid,可在用户细查里通过uuid就能查到对应的ssid了。
    Image

UUID如何设置?

UUID(User_Unique_ID)在用户未登录情况下可不设置,我们会用DID(Device ID)填充。用户登录之后可设置为您自己的UID,我们的统计口径会将登录前后的用户识别为同一用户。

注意

请不要将UUID设置为一个固定值,这样会将大量用户识别为同一用户,造成数据统计差异。

UUID是否能设置为中文?

不支持,请勿将UUID上传为中文。UUID仅支持数字、字母及符号,如果上传为中文,会导致数据无法上报造成数据质量问题。

上报UUID时,希望能带上上报UUID的来源渠道,要怎么设置?

通过服务端上报的接口,数据会默认是服务端来源上报;其中上报的数据内容是自定义的,如果想要区分不同UUID来源的客户端类型,也可以使用预置的来源端进行区分。

两个APP的UUID不一致,但手机号一致,是否可以实现数据打通?

UUID不一致的情况下,SSID无法保持一致。如果需要保持数据打通,需要确保两个APP的UUID(user_unique_id)一致。

在SaaS-非云原生环境中,自定义事件中上报了user_id属性,但是查询时不存在user_id这个属性?

在SaaS-非云原生环境中user_id这个属性是预置用户属性,如果:

  • 您上报了user_unique_id,则user_id=user_unique_id;
  • 您没有上报user_unique_id,则user_id=web_id/device_id。

查询用户属性时,只有一个userid没有其他数据,且在白屏运维中也无法查询到用户属性?

  • 单用户ID类型情况下,出现该情况一般是上报的用户属性没有被构建但是用户被创建了,可以检查下上报的用户属性类型和类型对应的值是否正确。
  • 多用户ID类型的情况下,使用one_id服务后,用户id体系项目统一,用户属性展示需要在用户画像里勾选。如果勾选后仍然无法查询到用户属性,可能是因为用户属性与能查到那个uuid无关,需要确认数据上报是否准确。

如何获取Web_id?

  • 请求后端服务:window.collectEvent('getToken')
  • 不调用后端接口:window.collectEvent('ready', () => { const web_id = window.collectEvent('getConfig','web_id') })

如何配置地理位置信息数据的采集?

Finder SDK默认情况下会通过IP地址解析成地址信息,如果需要采集坐标信息,需要额外配置。IP地址解析是在上报事件到Finder时由数据流解析的IP地址所在位置。SDK本身不收集IP信息,而是由服务器根据来源IP解析。SDK可以采集坐标信息,但需要相关的配置,可以查阅接入文档。

如何通过SDK采集设备上应用程序被卸载的行为?

DataFinder SDK无法直接采集到设备上应用程序被卸载的行为,但是您可以后续进行数据分析时,通过筛选app激活事件来间计算得到应用程序被卸载的行为数据。例如:

  • 选择 安装类型=卸载重装,可以统计有多少用户有过卸载行为。
  • 业务上可以通过计算“卸载用户”为激活再次安装的用户加上在一定业务范畴内没有触发行为且没有多次激活的用户,这样可以近似地处理卸载行为。

profile的set操作存在问题,第二次set操作会失败。

首先,需要检查集成SDK代码是否存在问题。如果用户的代码没有问题,那么可以考虑在代码层面上绕过这个问题。具体的解决方案是,将设置用户属性的方法,抽取一个工具方法,将所有需要设置的用户属性存放在一个数组里面,然后通过遍历的方式来逐一调用profileset发送用户属性,而不是通过调用一次接口发送所有的用户属性。数组的方式可以保证调用顺序,避免用户属性被重写错误。同时,在当前版本中,调用profile_set时会有60秒时间限制,在时限之内上报用户属性时,如果存在同样的key则无法上报,需要解除该限制。

SDK的上报频率设置为10s以下不生效?

确认SDK内部限制了最小上报频率为10秒,因此设置小于10秒的频率不会生效。

项目中心的SDK设置中web和小程序的时间配置是什么作用?

Image
是控制每个请求最长完成时间,超过这个时间请求还没回来就主动认为它是超时的并按照请求失败去做相应的处理的

使用AppLog.setUserUniqueID方法时,数据会立即上报服务端还是会有延迟?

AppLog.setUserUniqueID方法是立即上报服务端的,如果您希望停止业务应用的服务,希望依据AppLog.setUserUniqueID方法上报的情况来决策是否可以删除业务数据,如果遇到找不到uniqueid的问题,可能是由于没有设置id,或者设置id的时机有问题。您可以尝试抓包去查看日志,或者在调试板上查看log。

如何采集浏览某一篇文章的用户已读比例数据?

Finder可以通过自定义事件来采集文章的已读比例。可以在文章页面中添加代码来追踪用户的阅读进度,并将这个进度作为事件属性上报。例如,可以设置一个事件名为"article_read_progress",并且每隔一定的阅读百分比(如10%、20%、...、100%)触发一次事件上报,事件属性中包含"progress"字段来表示已读比例。这样,就可以在Finder中分析用户对文章的阅读深度。

JSON类型的数据如何上报?

如果需要采集上报json格式的数据,可以将数据转义成string类型进行存储。详情请参见示例1:嵌套JSON类型属性如何上报并用于过滤、分组。

集成SDK时,pangle穿山甲依赖包和火山finder的依赖包有个类重复了,编译报错,如何解决?

  • 异常现象:

    • pangle穿山甲依赖包:api 'com.pangle.global:ads-sdk:6.0.0.7'
    • DataFinder数据接入SDK:com.bytedance.applog:RangersAppLog-Lite-cn:6.14.3
    • 报错:
      Duplicate class com.bytedance.applog.encryptor.EncryptorUtil found in modules jetified-encryptor-0.0.9-rc.2-private-runtime (com.pangle.global:encryptor:0.0.9-rc.2-private) and jetified-encryptor-1.0.1.noasan-runtime (com.bytedance.frameworks:encryptor:1.0.1.noasan)
      
  • 解决方案:
    pangle修改集成方式:

    implementation ('com.pangle.global:ads-sdk:6.0.0.7 '){
    exclude group: 'com.pangle.global', module:'crash_monitor'
    exclude group: 'com.pangle.global', module:'global:encryptor'
    }
    

同时有APP端应用、Web端应用,现在想把两个端采集的数据上报到同一个应用(appid)中该怎么做?

  • 如果您仅仅是希望将两个端的数据上报至同一个应用(appid)中,并不需要打通两个端的用户数据时,那么您可以直接在集成SDK时,在初始化配置中将app_id参数设置为同一个app_id即可。
    • 例如,您可以在集成APP端SDK、Web端SDK时,将app_id参数均设置为APP端的app_id,则后续APP端、Web端的数据都会上报到APP端的应用中,后续您在进行数据查询分析时就不需要频繁切换应用,可以在一个应用中分别查询到APP端、Web端的数据。
    • 但是注意,此种方式下,虽然数据上报到了同一个应用中,但是数据彼此是不打通的,尤其是用户数据。即,如果同一个用户分别使用了APP端应用、Web端应用,会分别在APP端和Web端均产生一个用户标识ID(ssid),会被识别为两个用户。
  • 如果您希望将数据上报到同一个应用中的同时,还希望将APP端、Web端的用户数据打通,则您可以分别集成两个端的SDK时,打开内嵌H5的开关。打开内嵌H5的开关后,后续H5页面的数据会上报至APP端的应用中,且H5页面的用户标识数据与APP端的用户标识数据可打通。

SDK集成:APP - Android端

Android SDK 接入出现Didn't find class "com.android.id.impl.IdProviderImpl" 报错?

这个报错不会影响SDK的正常初始化。
错误的原因是当前版本的SDK提供了对华为、小米最新版本(AndroidQ)手机设备id获取能力,当在模拟器或低版本设备中运行时,控制台会打印这个错误信息,但不会影响SDK的正常初始化和使用。

Android 在哪个版本不能采集Android_id?

Android_id在Android10以上版本都采不到。

Android 在哪个版本支持关闭设备IMEI采集?

在Android 6.9.0及以上版本。

Android SDK 6.16.9版本集成报错:“java.util.ConcurrentModificationException”

1.建议客户在传入的JsonObject后不要添加修改逻辑,避免导致崩溃。
2. 在6.16.10版本中,SDK会在接收到JsonObject后进行复制处理,以避免客户修改导致的崩溃。

Android SDK在多口径切换用户时需要注意什么?

例如路径:(1)默认口径uuid -> (2)指定口径卡号 -> (3)默认口径uuid
此时2->3切换时,第3步 setUserUniqueID(uuid) 等于 = setUserUniqueID(uuid, oldUuidType)
有两种拒绝方法:

  1. 使用以下代码:

    AppLog.setUserUniqueID("001")
    AppLog.setUserUniqueID("卡号aaa","card_no")
    AppLog.setUserUniqueID("001","")
    
  2. 使用以下代码:

    AppLog.setUserUniqueID("001","id_type")
    AppLog.setUserUniqueID("卡号aaa","card_no")
    AppLog.setUserUniqueID("001","id_type")
    

以上两种方法都可以实现多口径切换用户。

Android SDK 调用 AppLog.setHeaderInfo 设置了某个 header属性,立刻埋点事件,这个埋点一定能带上所设置的 header 属性 吗?

不一定
1.设置公共属性不是实时的,所以有延迟。如果需要事件绑定,建议设置事件自定义参数。如果需要事件带上那一刻的值,可以考虑使用事件自定义参数,或者在调用AppLog.setHeaderInfo 后立即上报埋点。
2.如切换用户的时候产生了事件和更新 custom
事件归到前一个用户了,切换时触发了立即上报 此时 copy 了 header 感知不到 custom 更新
后续事件应该就是正常定时上报了,也就享受到了 custom 的更新

Android SDK 是否集成了集成com.google.android.gms:play-services-maps这个库?

DataFinder的Android SDK没有直接集成com.google.android.gms:play-services-maps这个库,当前Android SDK依赖了这个系统库。

同时集成Android 5.5.1版本和信通院sdk1.0.26版本后崩溃是什么原因?

Android sdk 6.4.0版本才适配了1.0.26版本,建议客户升级Android sdk版本。

SDK集成:APP - iOS端

iOS如果使用swift语言,pod是否需要用户自己桥接?

是的,目前ios的SDK仅支持object-c,swift还未直接支持。

iOS 手动引入SDK后,编辑阶段提示:Undefined symbol: OBJC_CLASS$_BDAutoTrackConfig是什么原因?

出现此类异常提示可能是因为工程配置问题导致的,您可检查依赖配置中是否有冗余依赖或缺失必要的依赖,可移除冗余依赖(如sg模块)、补充必要依赖(如volc加密模块)、调整Header Search Paths及Linker Flags后,再进行SDK集成,看下是否可正常集成成功。

iOS端集成SDK时,如果使用的是SaaS-非云原生-海外BytePlus环境,是否支持安装使用DevTools组件?

SaaS-非云原生-海外BytePlus环境的iOS SDK的版本需要升级到6.17.0,并在Podfile中添加以下代码来集成DevTools组件:

pod 'RangersAppLog', '6.17.0',
    :subspecs => [
        'Host/SG',
        'Core',
        'UITracker',
        'OneKit',
        'Log',
        'Picker',
        'Unique',
        'VolMetaSecML',
        'DevTools'
    ]

确保在主控制器的view生命周期方法中显示DevTools按钮,以避免被其他UI元素遮挡。

SDK集成:APP - HarmonyOS端

HarmonyOS端集成DataFinder数据接入SDK时,最低鸿蒙系统的版本要求?

API12(Developer Beta3)以上。

HarmonyOS SDK是否支持A/B测试相关事件?

支持。

HarmonyOS SDK是否支持 OAID / 运营商信息的采集开关?

HarmonyOS SDK自1.3.0版本开始支持 OAID / 运营商信息的采集开关。

HarmonyOS SDK是否支持多线程/多进程?

暂不支持多线程 / 多进程。

HarmonyOS SDK是否支持x86 模拟器?

1.3.1版本开始支持x86 模拟器。

HarmonyOS SDK中的 Pako 是什么作用?

Pako是鸿蒙官方推荐的 gzip 工具,目前DataFinder系统没有现成的 gzip 接口,推荐使用 pako 依赖。SDK 内部有请求加密,加密伴随着 gzip,所以是必要依赖。

如何获取离线 pako 的 har?

如果您的环境无法支持在线引入依赖,您可以联系火山引擎技术支持人员获取离线 pako 的 har。

1.3.0 版本离线集成 pako 发现报错?

添加下 overrides 配置,强制指定为离线版或者特定版本。
Image

HarmonyOS SDK集成时报错:ERROR: ArkTS:ERROR Failed to resolve OhmUrl?

出现此报错是因为pako 没有依赖。您需要参考帮助文档完成pako 依赖的配置。

HarmonyOS SDK集成时报错:Cannot read property eventHub of undefined?

出现此报错是是初始化 SDK 的 context 不对。

HarmonyOS SDK升级时报错:找不到 @volcengine/applog

可能是老客户升级SDK版本导致的,之前版本的SDK导入是 @ohos/applog,需要把导入名称调整下,参考最新文档:HarmonyOS Next SDK 集成。

HarmonyOS SDK升级到1.3.0版本后报错:ERROR: Bytecode HARs: [@volcengine/applog, @volcengine/applog_devtools, @volcengine/applog] not supported when useNormalizedOHMUrl is not true?

  • 完整报错:

    ERROR: Bytecode HARs: [@volcengine/applog, @volcengine/applog_devtools, @volcengine/applog] not supported when useNormalizedOHMUrl is not true.* Try the following:> Please check useNormalizedOHMUrl in the project-level build-profile.json5 file.
    
  • 解决方案:在根目录添加这个配置,并 compatibleSdkVersion 调整至 12。
    Image
    添加该配置的原因:

    • 编译后的产物提前编译好了字节码,所以能提升应用侧编译效率。
    1. Ide 800 后的工程,默认开启。

HarmonyOS SDK升级到新版本后,没有看到新版本的功能?

升级SDK后,需要sync 一下。

HarmonyOS SDK集成DevTools时报错:ERROR: ArkTS:ERROR Failed to resolve OhmUrl?

  • 完成报错信息:

    ERROR: ArkTS:ERROR Failed to resolve OhmUrl.
    Error Message: Failed to get a resolved OhmUrl for "@volcengine/applog" imported by "/Users/bytedance/DevecostudioProjects/SDK50/oh_modules/.ohpm/@volcengine+applog_devtools@7hba3+yrkmv76lfmmoxyslxamstpksemeh++r+9qtz8=/oh_modules/@volcengine/applog_devtools/src/main/ets/plugin/DevTools.js".
    
  • 可能原因:

    • 可能原因1:AppLog 引入名称错误。
      遇到该问题,主要原因是依赖组件时,前面组件名字其实是可以任意写的,但是 applog 和 devtools 之间的协议是特定的,就是写成 @volcengine/applog 的方式引入,请检测 AppLog 依赖时的名称是否写对了,请严格按照文档集成。

      // 严格按照该名称引入 AppLog
      "@volcengine/applog": "file:../applogx/applogx.har",
      "@volcengine/applog_devtools": "file:../applogx/applogx_devtools.har"
      
    • 可能原因2:子模块中依赖 AppLog 同时子模块也被其他模块依赖后发现报错。
      由于鸿蒙不支持依赖传递,所以在子模块中依赖的 SDK,无法被其他模块引用,请在对应模块添加依赖。例如,子模块依赖 applog,entry 依赖子模块,请也在 entry 模块中添加 applog 完整依赖。

HarmonyOS SDK仅升级DevTools后报错:找不到 BavEvent?

由于适配了新功能,需要将 AppLog 与 devtools 都升级到 1.2.0-xx 版本,仅升级 Devtools 不行。

HarmonyOS SDK集成时,使用新版IDE集成DevTools时报错?

记得 override applog,并且 override 要写到根结点的 oh-package.json5。

HarmonyOS SDK集成DevTools时弹窗显示异常,弹窗内容显示到 Devtools 中是什么原因?

  • 解决方案1:可能是您获取 window 对象出问题了,lastWindow 不区分主窗口子窗口,建议把 window.getLastWindow 改为 context.windowStage.getMainWindowSync()。
  • 解决方案2:如果方案一不好解决可以升级到 130-rc1 版本,关闭子窗口模式,使用页面挂载方式。

如何获取鸿蒙端的did数据?

可参考官网文档:订阅 DID。

鸿蒙端的事件上报都接收什么类型?

事件自定义属性为 EventRecord 类型,为自定义类型,不支持其他类型,因为 SDK 需要做类型校验,避免接收到不能解析的类型,所以 SDK 限制了接收类型。
1.1.0 EventRecord = Record<string, number | string | boolean>
1.2.0 EventRecord = Record<string, number | string | boolean | string[]>

HarmonyOS SDK上报策略是什么?

默认也是一分钟上报一次,但是没有具体上报条数,SDK 策略为新的按体积查询事件的上报策略(Android / iOS 为按条数查询), 每次上报查询 1M 左右数据进行上报,不再以 200 条为准(可以尽量多的上报)。

SDK集成:APP - 内嵌H5相关

APP内嵌了H5页面,数据集成时应该接哪个SDK?

如果APP内嵌了H5页面,您希望同时采集H5页面数据和APP端的数据时,您需要分别集成APP端的SDK和Web端的SDK,并在集成SDK时,两边都打开内嵌H5的开关。打开内嵌H5的开关后,后续H5页面的数据会上报至APP端的应用中,且H5页面的用户标识数据与APP端的用户标识数据可打通。详情请参见H5 打通介绍、APP打通H5上报、与H5页面关联web_id。

APP内嵌了H5页面,首次打开无法打通H5和APP是什么原因?

判断APP是否有勾选隐私权限的设置以及功能联动。存在一种可能:用户未勾选隐私配置导致APP SDK没有启动,但是此时H5页面已经加载JS SDK,导致走的是JS SDK上报。

Android SDK与H5做打通后,WebView白屏不加载内容,为什么?

Android SDK在与H5做打通时会拦截LoadUrl方法来识别H5地址,如果用户的Activity中存在LoadUrl方法,可能被SDK拦截导致WebView无法加载内容。

SDK集成:web端

Web页面iFrame了另外一个页面的内容,进行SDK集成的时候要怎么集成?

如果A页面iframe引入了B页面,则您需要同时在A、B页面中均集成web端的数据接入SDK,完成集成后,后续前端用户在A页面中对iframe的B页面进行操作产生了行为数据后,数据会上报至B页面上报的app_id中。
因此此场景下有以下注意事项:

  • 由于A、B页面的SDK集成是分别进行集成的,数据上报在两个应用中,如果您希望将数据上报至同一个应用中,可在集成SDK时配置app_id参数取值为同一个appid。
  • 此场景下的A、B页面的用户数据无法打通。

初始化时打开了log:true开关,在浏览器控制台提示“app_id param is error must be number, please check!”

检查初始化代码app_id配置的是否正确应该为number类型。如果是string类型,会初始化失败并出现上述错误提示。

web端为什么浏览器控制台一直在打印日志?

SDK初始化代码中,设置了 log:true 后,会打印调试日志,如果不需要开启可以设置为false。

使用5.1.11版本的web端的sdk时,在浏览器插件中植入content没有任何反应,启动初始化sdk后,控制台无任何信息,初始化没有成功

在content中集成js sdk代码时,可以尝试使用npm包的方式来加载,然后使用webpack等工具将content.js里的import语法编译成可以在浏览器环境运行的语法。操作参考链接,核心步骤如下。

  1. 使用npm包,然后在content中import。
    Image
  2. 使用webpack进行编译。
    Image
  3. 在manifest.json中修改入口文件。
    Image

web/js sdk中,开启全埋点后,全埋点点击事件的 element_id获取不到?

如下图所示,点击里面的

的element_id是祖先元素的id,当前不支持采集,建议通过自定义埋点上报,或将按钮分为两层分别套用id。
Image

web sdk开启allow_hash开关没有生效?

在单页面应用环境下,spa会自动采集页面停留时长。但如果不准确,想要自己计算的话,可以使用disable_route_report来关闭hash路由监听。但此时allow_hash配置会失效。

使用web/js sdk上报事件时,个别list 接口的Request Headers中 Content-Type:text/plain;charset=UTF-8,而Response Headers:Content-Type:application/json; charset=utf-8, 为什么会不一样?

  • 问题描述
    Image
  • 回答:此种情况符合预期,已知predefine_page_alive、predefine_page_close使用beconEvent发送的事件,此方法默认数据类型为text/plain;charset=UTF-8。

SDK集成:小程序端

小程序接入SDK 为什么没有预置事件上报?

当前小程序端支持使用预置事件,如果没有上报可能是集成SDK时没有开启自动上报开关,请将auto_report设置为ture。

小程序的分享分析数据为什么没有正常上报?

“分享分析”的使用依赖于“on_share”的上报,请确认小程序 SDK 在初始化时是否配置 auto_report 为true,具体可参考小程序SDK相关文档。

小程序如果没网状态下数据是怎么上传的?

对于小程序,我们sdk没有主动监测网络,开启enable_storage参数会将事件先存下来,如果上报未成功,在下一次SDK初始化后还有机会补充上报。
注意:小程序中的storage是有大小限制的,超出限制时事件会丢掉
(1)如果这个参数为false,不管什么情况导致上传失败的数据就会丢掉
(2)如果这个参数为true,所有的事件都会去存到storage里面,然后进行上报,上报成功就删除已上传的数据,不成功就一直在storage里存着,当SDK重新走初始化流程时会看看storage里面有没有,有就补充上报上去。
场景举例:
当小程序目前在运行中,此时没有网络,然后突然有网络了,那么后续的行为是正常上报的,而之前已存在Storage里面那些,现在是不会去传的,必须小程序重新走初始化了才会执行那种去storage里面看看有没有的步骤。

小程序sdk的全埋点能力支持哪些平台?

目前小程序的全埋点事件只支持微信小程序,其他小程序的组件实现方式不同暂时没有适配。例如支付宝小程序不支持bav2b_click,如果页面是Component实现的话支持bav2b_page,如果页面是Page实现的话就不支持了。

在微信小程序中,on_share和on_addtofavorites的触发条件是什么?如何实现这些方法?

on_share和on_addtofavorites是小程序本身的预置事件,触发这些事件取决于小程序本身的方法是否实现。如果小程序开发时没有实现onShareAppMessage和onAddToFavorites方法,可以通过在页面中添加这些方法来实现。

SDK集成:小游戏

小游戏启动(app_launch)和关闭(app_terminate)事件没有上报是什么原因

由于框架的限制,导致小游戏在被框架编译时无法监控到生命周期。所以SDK无法自动采集上报启动和关闭事件,目前SDK无法规避。
我们提供了手动上报启动和关闭的函数,如果客户能自行监测到框架生命周期(或者框架有提供生命周期监听方法)可采用自行上报的方式上报启动和关闭事件
手动调用快捷方式:
启动事件:$$sdk.appLaunch()
退出事件:$$sdk.appTerminate()

SDK集成:Flutter

接入Flutter应用SDK时,接入iOS原生SDK,并引用pod 'RangersAppLog', '6.xx.xx',但在编译运行时出现错误,提示“Use of undeclared identifier 'BDAutoTrackServiceVendorCN'; did you mean 'BDAutoTrackServiceVendorSG'?"

海外版不能直接使用RangersApplogFlutterPlugin.initRangersAppLog进行初始化,需要在原生代码中初始化,并设置为海外环境。

在Flutter项目中集成SDK时,无法进行埋点实时验证,提示信息显示为Android集成步骤,但项目运行在iOS平台上?

Flutter项目不支持使用实时埋点验证,但可以支持Android或iOS平台的集成。建议根据需要选择Android或iOS平台进行集成,并使用DevTools进行验证。

Flutter端SDK当前支持多引擎吗?

  • 如果DataFinder使用了多实例(多个applog的实例)的话,目前不支持多引擎。
  • 如果DataFinder使用的是单实例,则支持多引擎。

SDK集成:React Native

使用React Native框架集成SDK,事件上报延时较高,主线程卡顿是什么原因,如何处理?

  • React Native框架开发Android SDK和iOS SDK时,事件上报为异步处理(RN侧接收事件后发送给原生端去处理;原生端处理事件,例如,存db、然后批量上报)。
  • 所有埋点操作在后台线程执行,包括写入本地数据库,不会阻塞主线程。您无需手动优化线程切换,SDK内部已处理线程优先级和异步回调。
  • 您可以在事件上报前后进行日志打点来辅助判断上报耗时。

SDK集成:服务端

使用 Java SDK时,偶尔会出现“Connection or outbound has closed”错误,如何解决?

建议升级SDK至最新版本,并合理设置keepalivetimeout参数,如keepalivetimeout为10秒。

使用PHP SDK上报服务端事件时,什么场景下会自带device_id?

PHP SDK默认不会自动带上device_id。如果需要带上device_id,可以参考以下步骤:

  1. 在PHP SDK代码中调用setDeviceId方法传递deviceid值;
  2. 上报数据时使用 AppEventCollector 对象(WebEventCollector不会生成device_id),app_type类型为APP的情况下会生成device_id
  3. applog 服务通过IDM 补充用户信息

HTTP API 里面的platform字段值可以随便传吗?

platform平台类型,不是必填字段,可以自定义值进行上传;
但随便传可能会影响应用概况功能的分析;应用概况中终端platform 字段值为mp是小程序、 web,wap 是网页端、 ios,android是移动端;其他的数据就只能在全部里面去查看;
建议:尽量按照正确的平台类型进行赋值。

通过HTTP API 上报mp_platform属性,需要怎么上报?

具体说明如下:
字段: mp_platform
字段值:0,1,2这种
类型:字符串
使用:在header中的custom中使用,示例如下:
"header": {
"app_name": "android",
"device_model": "vivo X20A",
"client_ip": "223.91.16.13",
"custom": "{"is_vip":"2","mp_platform":"0"}"
},

SDK 集成:业务维度(item)

如何接入业务维度数据?

  1. 您需要先创建好item,并配置好item中的item属性有哪些。其中内置的id属性字段在后续上报落库时会写入item_id字段。
  2. 创建好item后,您即可根据情况进行item数据接入。

更多item数据接入的最佳实践可参见业务维度(item)数据接入使用实践。

敏感数据&隐私&安全&授权

国密SM2配置相关

  • 国密配置需要移动端和后端都进行配置,移动端配置国密参考官网文档;

    SDK类型

    是否支持SM2

    SDK支持SM2版本(>=)

    是否支持SM4

    是否支持其它加密算法

    Android

    支持

    6.15.4

    否

    默认加密算法为 AES

    鸿蒙

    支持

    1.0.0

    否

    默认加密算法为 AES

    IOS

    支持

    6.15.0

    否

    默认加密算法为 AES

    WEB/H5

    支持

    5.16

    否

    无

    小程序

    支持

    2.9.1

    否

    无

  • 国密SM2是对称加密算法,配置需要私钥和公钥。客户需要自己生成私钥然后根据算法生成对应的公钥,生成的方法可以参考公开的论坛文档

  • 开启国密后立即生效

  • 开启国密后兼容老上报数据,不影响未开启国密的数据上报

SDK里面有read phone state的授权吗? 如果有的话,授权之后会拿到设备的什么信息?

有。授权后会拿到设备的deviceId、sim卡序列号、subscribeID等相关信息。但iOS没有权限申请,也不会采集sim卡序列号。

Android端SDK集成时,com.asus.msa.SupplementaryDID.ACCESS这个权限是做什么的,是否可以去掉?

这个权限是Andorid SDK用于获取oaid的,使用场景:设备注册和深度链接:跨APP标识设备。注意:OAID 是重要设备追踪信息,若关闭 OAID 会影响 广告监测的归因结果,如果使用了广告监测功能请谨慎考虑。如果客户没有购买广告,且需要关闭oaid,可以按照官网文档的指导进行操作8. 权限说明。

Android SDK获取的oaid是什么?

背景:Android 10之后禁用 IMEI、MAC。
移动安全联盟联合国内手机厂商推出了适用于国内的一套广告追踪标识,称为OAID。OAID跨app可打通,但用户可以随时在系统设置中进行重置。OAID具有一定的权威性,可满足用户行为统计的使用场景。

是否可以手动获取IDFA?

可以手动获取IDFA。使用requestAuthorizationWithHandler方法替代调用系统的ATTrackingManager,获取IDFA。具体代码如下:

#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/ASIdentifierManager.h>

使用(nullable NSString *)trackingIdentifier;方法获取IDFA。

关闭IDFA追踪权限后,冷启动实时检测埋点时会崩溃,发生线程死锁是什么原因?

您可将SDK版本升级版本至 6.17.0 及以上即可解决此问题。

通过sdk提供的接口可以获取到解密后的did吗?

不能,通过sdk暴露的did接口获取到的是bd_did,bd_did是加密的did。如果想要对bd_did进行解密,内部可以使用bddid机器人进行获取,外部不提供解密。bd_did是使用集团id+did通过aes加密。

Finder是否能够识别伪造或者篡改的上报数据?

1,上报接口没有鉴权,理论上数据都可以上报。无法从服务端识别是否是伪造或者篡改数据。
2,Finder服务端不会校验device_id是否是自己下发的,无法从id端鉴别伪造数据
建议客户做好以下措施预防数据篡改:
1,做好请求加密(不只依赖 https 的加密)最好有自己的额外加密(最好非对称加密)。其他的措施需要客户那边考虑下是否还有更好的方案。

DataFinder SDK是否能采集其他SDK的数据?

不行,DataFinder SDK只会采集已配置的事件和行为数据,不会入侵其他sdk。

埋点验证&数据上报异常

如何验证上报数据的准确性?

  • 通过单个用户的用户细查,检查上报行为数据中的事件、属性与埋点是否设计一致;
  • 将活跃用户、事件触发次数等统计指标,与业务系统或其他系统进行比较,查看分析差异率。

使用埋点实时验证功能时,页面中没有正常看到测试上报的事件和属性数据是什么原因?

检查并确保数据上报地址已配置正确。如果数据上报地址被注销,需重新添加数据上报地址后,问题即可解决。

使用实时埋点验证时可成功查看到上报的数据,但是后续真实采集上报数据时,数据没有正常落库到DataFinder,导致无法查询到数据?

实时埋点验证功能使用的是测试统一的测试appid进行数据上报,主要用于验证埋点有没有缺失字段、数据类型是否正确等这类正确性问题。实际进行数据采集上报时,数据会上报到您配置的应用和环境地址中,此时如果查重不到数据,可进一步确认下集成SDK中的数据上报地址、应用ID等配置结果是否正确。

H5实时埋点验证是从哪个版本开始支持的?

Web/JS SDK从V5.1.2版本起支持实时埋点验证。

web端在使用埋点验证功能,扫码打开网页以后没反应,是什么原因?

建议先检查web sdk版本,网页集成的JS SDK版本需要5.1.2及以上版本

使用实时埋点验证功能验证移动端埋点时,扫描二维码后,有时能连接,有时报错?

首先,确认使用的手机是iOS还是Android。然后,根据对应SDK集成文档中的细节检查app_name、scheme、代理方法、子库等设置。如果问题仍然存在,建议用户检查网络连接和设备设置。

使用实时埋点验证功能验证web端时,配置了网页url信息后,实时监测的页面未有变化?

检查url是否正确,确认是否是同一客户不同测试环境。同时,检查是否选错了应用。如果问题仍然存在,可能是因为页面切换的时候使用错了,需要重新测试。

finder中实时埋点检测显示的数据和实际入库得数据有部分不一样是为什么?

实时埋点检测得数据是根据上报的数据实时读取并展示的,展示的逻辑会和实际落库不完全一样;实际落库的是准确的数据。
实时埋点检测,看到的是作为参考用,有点类似于抓包的功能;数据库里会对很多信息进行补偿,以数据库为准。

上报完数据,多长时间可以在系统看到数据,比如事件,事件属性,用户,用户属性等?

不管是使用服务端还是客户端sdk,上传用户,用户属性,事件,事件属性
(1)10分钟左右可以在数据管理中看到对应事件及属性数据,因为这块数据是元数据
(2)15分钟左右可以在用户细查看到上传的用户明细数据
(3)对于用户属性,以及事件属性,旧属性会直接显示上传的属性值,新属性会先构建,但是会在元数据落库后(也就是10分钟后)进行构建,(当新属性没有构建成功时,上传的新属性值数据会丢),构建完成之后新属性值才会落库,大约2小时左右可以查到属性值

事件属性数据正常上报了,但是用户属性数据没有上报成功是什么原因?

您可参考以下排查步骤进行排查定位原因:

  1. 进入 元数据>用户属性页面,确认待上报的用户属性是否正确创建。尤其是使用userprofile api 和 go sdk上报用户属性,一定需要先录入才能正常上报用户属性。
  2. 确认上报用户属性时配置的应用ID和AppKey是否正确。
  3. 新属性首次上报可能被抛弃,建议多上报几条。
  4. 检查上报数据是否有错误日志。

埋点数据上报成功,但是无法在元数据管理页面/分析工具页面查找到?

需要看下是否设置开启了埋点验收功能,如果开启了,则上报的埋点需要在元数据管理页面点击验收一下,完成验收后才可被查询使用。

在元数据管理>一般事件页面新增录入事件时,创建失败?

可以查看项目设置的 应用设置中的元数据-一般事件限额,确认当前元数据中已有的一般事件的数量是否超出设置的限额。

未验收的埋点数量限制是否会影响埋点入库?如果超过设定的数量,数据会如何处理?

未验收的埋点数量限制是为了避免上报过多无用的事件、属性,避免研发、产品没有对齐,全是脏数据的情况。如果超过设定的数量,数据会被丢弃,不会显示在系统中。同时,如果数据被拦截,会进入待验收事件,但不会进入dropped_event,因为是预期内的拦截事件。想要补数据只能从HDFS里面恢复。

上报app_version数据异常

预置属性app_version字段,在SaaS-非云原生和SaaS-非云原生海外-byteplus环境中有特殊的处理逻辑,必须是x.x.x三段格式,否则会被applog强行过滤为该格式,如:12.1会被过滤为:1.2.1

上报应用启动事件异常:首次打开app没有应用启动事件

当不是在application里初始化,而是在activity初始化,由于初始化在activity展示之后,会导致没有启动事件,需要在初始化init()方法中增加第三个参数为当前Activity对象。

上报datetime类型数据异常

  • 异常场景:有一个主订单提交的事件创单事件需要传递datetime类型,接口里看是传了的,但是测试从火山这边看的话缺失这个参数。
  • 解决方案:这个问题可能是由于日期格式的问题。在不需要timezone的情况下,只需要传入yyyy-MM-dd HH:mm:ss的格式即可。

使用user profile api上报用户属性时报错:user xxx not exist

  • 报错场景:使用user profile api上报用户属性时报错,错误码为:{"code":4000,"message":"user 20********** not exist.","data":null}
  • 可能原因:您当前可能使用的是SaaS-非云原生环境,且当前上报用户属性的用户此前从未上报过任何事件相关数据,即,用户从未落库至DataFinder中(用户在DataFinder中无唯一标识ssid),此场景下如果未开启自动注册直接上报用户属性就会因用户不存在而报错。
  • 处理方式:
    • 方式1:您可以先使用当前用户上报一个事件,此时用户会在上报事件的同时生成一个用户ssid,将用户落库至DataFinder,后续再上报用户属性数据就不会再报错。
    • 方式2:如果您无法先上报事件数据,也可联系火山引擎技术支持人员,为您开启自动注册(auto_create_ssid),开启后,后续您即可在不入库的情况下直接上报用户属性。

微信/支付宝小程序上报失败

(1)SaaS版本
微信小程序:将数据上报地址添加到微信小程序的域名白名单。
支付宝小程序:需将上报数据的服务器地址加到支付宝小程序的域名白名单。
(2)私有化版本
微信小程序:需将私有化部署的数据上报地址,添加到微信小程序的域名白名单。
支付宝小程序:需将私有化部署的数据上报地址,添加到支付宝小程序的域名白名单。

小程序上报的设备登录数据异常,查询到有1个设备ID每天登录了大量的用户账号

您可以检查下小程序端的设备数据是否使用的是bddid,小程序端不用关注bddid,建议使用webid。

小程序从匿名到实名,期间并没有退出小程序,但是为什么会出现退出事件(app_terminate事件)?

上述现象符合预期,补事件是小程序的处理逻辑,会在上报用户实名信息时(即上报user_unique_id时)同步上报app_terminate和app_launch事件。

微信小程序SDK采集不到这个收藏事件/分享事件是什么原因?

小程序的机制是需要客户实现相应的事件处理函数后才能触发相关的事件上报https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onAddToFavorites-Object-object
Image

在小程序预置分享事件中,跳转到外部链接后进行分享时,无法获取到标题(title)是什么原因?

  1. 确认页面在分享时是否设置了标题,如果标题为空或未设置,预置属性中的title将为空。
  2. 确保在页面加载时正确设置了标题,如果标题是动态设置的,确保在设置标题后再进行数据上报。
  3. 如果页面在加载时还未设置标题就进行了数据上报,可能会导致title属性为空。
  4. 确保在页面加载完成并设置标题后再进行数据上报。
  5. 检查onShareAppMessage定义是否为异步返回,如果是异步返回的,SDK目前不支持获取title属性,因为title是业务自己定义的,如果值为undefined,title字段将被过滤掉。

Finder产品中的日活和自行统计的小程序数据不符

  • 问题

Finder产品中的日活和自行统计的小程序数据不符,客户目前没有上报匿名行为到Finder,如何在区分用户状态的情况下保证日活用户统计相同?
用户状态分为:游客(无设备id和uuid)、注册(无uuid)、认证(有uuid)

  • 解答

建议客户使用多口径的方式上报,创建一个游客口径并且自行维护一套匿名用户ID;

  1. 游客:上报数据参考 XXX事件,user_id =游客 ,user_unique_id_type=游客
  2. 注册:上报数据参考 XXX事件,user_id= 游客 ,anonymous_id = 自定义匿名id,user_unique_id_type=XXX
  3. 认证:上报数据参考 XXX事件,user_id=实名id,anonymous_id = 自定义匿名id

服务端上报regist_time数据异常,与实际客户上报的时间不一致是什么原因?

产生原因:如果存在时差,确认下服务端上报时timezone字段的值是否为0;
以相差快8小时为例,解决办法:服务端上报时timezone字段改为8.0
注意:timezone需放在header下。

火山引擎增长分析 数据与自有后台或第三方平台存在数据差异怎么排查?

  • 统计口径:建议您对比火山引擎增长分析与自有后台或第三方平台数据统计口径是否一致;
  • 埋点上报时机/逻辑:建议您确认火山引擎增长分析与自有后台或第三方平台数据埋点上报时机及埋点上报逻辑是否一致;
  • 如果依然存在疑问,请点击火山引擎增长分析页面右下角按钮,通过提交工单的方式将详细对比描述反馈给我们。

web端和PC端的ssid是怎么算的,为什么差的特别多?

ssid的计算逻辑可以参加用户标识(uid、ssid、did)。如果您的上报数据差的非常多明显有数据异常场景,可排查下是否是由于数据爬虫产生的异常数据,建议您可以在数据查询时过滤爬虫数据。DataFinder也支持爬虫识别功能,您可设置爬虫识别规则后即可识别过滤爬虫数据,详情请参见通用设置:爬虫识别。

为什么分渠道的查询结果加起来不等于总转化率?

分组后如果一个用户符合多个分组条件,在相关的组里会分别计算一个,这样看分组总和就会比合计值要大。

A/B实验分流异常:A/B 测试流量为什么无法分配?

火山引擎增长分析的A/B测试功能的流量为100%,不支持流量复用,因此当您开启的实验流量已经达到100%上限时,再开启新的实验时会出现流量无法分配的情况,需要您结束部分实验再创建,或联系客服升级使用A/B测试高级产品DataTester。

最近更新时间:2025.07.17 18:11:38
这个页面对您有帮助吗?
有用
有用
无用
无用