You need to enable JavaScript to run this app.
导航
参考:小程序SDK集成FAQ
最近更新时间:2025.05.20 14:24:28首次发布时间:2025.05.20 14:24:28
我的收藏
有用
有用
无用
无用

SDK集成

小程序SDK可以关闭预置事件采集吗?

答:可以,在初始化把“auto_report”参数置为false就关闭了预置事件的采集,包括应用启动,应用退出,页面访问,小程序分享等相关预置事件。

小程序端怎么使用全埋点预置事件和属性?

小程序端支持采集点击事件——“bav2b_click”事件,此事件与其他端的全埋点事件的事件名类似,但是实际的集成操作上有一些差异,采集点击事件时:

  • 打开点击事件采集开关:默认情况下,点击事件的采集开关是关闭状态,您需要在初始化时设置init的auto_report的取值为对象类型的取值,且对象中click字段设置为true,即:click: true
  • 配置点击事件采集数据:与其他端的全埋点事件不同,小程序端采集点击事件时,您需要在SDK集成代码中配置具体的采集属性详情,支持过滤不采集被点击元素的dataset中哪些属性,也支持明确指明需要采集被点击元素的dataset中的哪些属性。配置要点请参见采集点击事件

小程序SDK的全埋点能力(采集bav2b_click)都支持哪个平台?

答:目前支持微信小程序、支付宝小程序、抖音小程序等平台。

小程序SDK组件点击上报bav2b_click事件如何区分?

答:在组件上设置id,id设置的值可以区分点击的view,还可以添加自定义属性:格式data-xxx,可添加多个,且必须设置bindtap才能生效

小程序SDK实例是全局唯一的么?

答:默认导出的实例是全局唯一的。但是如果你们分包了或者构建上有特别之处的话,可能不是同一个。建议把SDK这个默认实例挂载到全局对象上,在使用时通过全局对象获取到这个默认实例后再进行调用相应的方法。

小程序分包中集成SDK,数据上报问题?

答:如何在小程序分包中集成SDK,可以参考“SDK集成场景实践”文档中“在小程序分包中使用”这一部分。

小程序,如果客户没有购买广告,想要使用url携带utm参数,这种情况utm参数sdk会采集吗?

答:小程序SDK默认会尝试从小程序启动参数上获取utm相关参数:utm_source、utm_medium、utm_campaign、utm_term、utm_content。如果获取到了,就将这些参数放入事件公共属性中,后续所有事件上报时都会携带上。该能力自动开启,业务不需要做任何处理。

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

答:on_share和on_addtofavorites是小程序本身的预置事件,触发这些事件需要客户小程序项目本身实现。如实现onShareAppMessage和onAddToFavorites这些生命周期方法,具体可以查看小程序平台官方文档中关于Page的生命周期那部分内容。

小程序web_id 请求逻辑?

答:web_id在sdk初始化即调用init方法时,会向服务器发起webid的请求(https://xxxx/webid)
Image
请求参数为:app_id,当前URL,URL的referer,当前浏览器的useragent,以及user_unique_id(一般为空值),主要依赖的是appid和当前所处环境,请求会在服务端生成一个唯一的webid返回,如下图:
Image
拿到web_id后会缓存在本地,只要appid和域名不变,不手动清除缓存,都不再请求服务器获取web_id。

小程序SDK预置属性$current_path取值逻辑?

答:预置属性$current_path是在SDK在页面的onShow生命周期中获取的当前页面的路径。

小程序SDK如何开启缓冲(批量请求上报)?

答:通过enable_buffer参数开启缓冲,默认5秒5个,可以通过buffer_interval和buffer_number修改,建议不要太大。
Image

小程序SDK是否支持批量上报?怎么使用缓冲、缓存?

答:小程序SDK默认实时上报,开启enable_buffer支持缓冲和开启enable_cache支持缓存。
在开启缓冲时,SDK会将多个事件合并到一次请求上报,可以达到批量上报的目标,buffer_interval用来控制缓冲间隔时间、buffer_number用来控制缓冲数量:

  • buffer_interval:默认5秒,可以调整
  • buffer_number:默认5个,可以调整

更多参数细节,可以查看“SDK API说明”文档中关于init的说明。

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

答:小程序SDK没有主动监测网络变化,当没网状态下,理论上上报请求会失败,此时根据是否开启了enable_cache这个参数(2.14.3版本开始,这个参数默认开启),有如下相应处理:

  • 在开启这个参数时,事件(失败请求的)会被缓存到storage中,并等待下次SDK再执行初始化后,会尝试会从storage中查看是否有缓存的事件,有的话,就进行补充上报;
  • 没有开启这个参数时,请求失败就不做任何处理。

注意:小程序中的storage是有大小限制的,超出限制时事件会丢掉。
场景举例:
当小程序目前在运行中,此时没有网络,然后突然有网络了,那么后续的行为是正常上报的,而之前已存在storage里面那些,现在是不会去传的,在小程序重新走初始化了才会执行那种去storage里面看看有没有的步骤。

小程序SDK可以延迟上报事件吗?希望所有上报事件能携带从接口获取到信息,该怎么做?

答:可以通过控制send方法的调用时机。比如场景是等待用户接口请求完成后,获得到了用户昵称后设置给SDK作为事件公共属性,然后希望SDK的所有事件都能带上这个用户昵称,那么做法就是在设置为SDK公共属性后再调用send方法。

// 类似如下处理

// SDK初始化
$$sdk.init(/**/) 

// 在某个地方请求用户接口去获取信息了
fetch('用户接口').then((user) => {
    $$sdk.config({
        'nickname': user.nickname,
    })
    // 在config之后调用send
    $$sdk.send()
});

注意:send是用来控制SDK从什么时间点开始上报事件,但是如果不调用send的话SDK就不上报事件了,所以一定要保证send被调用。

上报数据异常

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

答:小程序SDK会匿名到实名切换时(本质是重新设置了user_unique_id)上报app_terminate事件,是SDK的内部处理逻辑。

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

答:小程序的机制是需要客户项目中实现相应的事件处理函数才会有产生相应的交互能力,SDK这边也才能触发相关的事件上报,具体可以看下小程序平台官方文档中的描述及实现https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onAddToFavorites-Object-object
Image

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

答:可能原因是onShareAppMessage定义promise了(使用promise进行了异步返回),目前SDK还不支持获取这种异步场景下的分享相关的信息。

小程序集成GrowingIO (gio) 和Finder SDK,Finder没有请求上报数据,如何排查?

答:需要先import引入gio sdk,并对gio sdk初始化完成后,再import引入finder sdk,然后对finder sdk进行初始化(init调用)。

小程序端SDK会自动上报predefine_pageview吗?没有收到predefine_pageview的埋点上报。

答:默认不会,如果希望自动上报predefine_pageview事件,需要在初始化时开启auto_report参数。

更多FAQ

更多关于数据接入的FAQ请参见SDK集成&数据上报