答:可以,在初始化把“auto_report”参数置为false就关闭了预置事件的采集,包括应用启动,应用退出,页面访问,小程序分享等相关预置事件。
小程序端支持采集点击事件——“bav2b_click”事件,此事件与其他端的全埋点事件的事件名类似,但是实际的集成操作上有一些差异,采集点击事件时:
click: true
。答:目前支持微信小程序、支付宝小程序、抖音小程序等平台。
答:在组件上设置id,id设置的值可以区分点击的view,还可以添加自定义属性:格式data-xxx,可添加多个,且必须设置bindtap才能生效
答:默认导出的实例是全局唯一的。但是如果你们分包了或者构建上有特别之处的话,可能不是同一个。建议把SDK这个默认实例挂载到全局对象上,在使用时通过全局对象获取到这个默认实例后再进行调用相应的方法。
答:如何在小程序分包中集成SDK,可以参考“SDK集成场景实践”文档中“在小程序分包中使用”这一部分。
答:小程序SDK默认会尝试从小程序启动参数上获取utm相关参数:utm_source、utm_medium、utm_campaign、utm_term、utm_content。如果获取到了,就将这些参数放入事件公共属性中,后续所有事件上报时都会携带上。该能力自动开启,业务不需要做任何处理。
答:on_share和on_addtofavorites是小程序本身的预置事件,触发这些事件需要客户小程序项目本身实现。如实现onShareAppMessage和onAddToFavorites这些生命周期方法,具体可以查看小程序平台官方文档中关于Page的生命周期那部分内容。
答:web_id在sdk初始化即调用init方法时,会向服务器发起webid的请求(https://xxxx/webid)
请求参数为:app_id,当前URL,URL的referer,当前浏览器的useragent,以及user_unique_id(一般为空值),主要依赖的是appid和当前所处环境,请求会在服务端生成一个唯一的webid返回,如下图:
拿到web_id后会缓存在本地,只要appid和域名不变,不手动清除缓存,都不再请求服务器获取web_id。
答:预置属性$current_path是在SDK在页面的onShow生命周期中获取的当前页面的路径。
答:通过enable_buffer参数开启缓冲,默认5秒5个,可以通过buffer_interval和buffer_number修改,建议不要太大。
答:小程序SDK默认实时上报,开启enable_buffer支持缓冲和开启enable_cache支持缓存。
在开启缓冲时,SDK会将多个事件合并到一次请求上报,可以达到批量上报的目标,buffer_interval用来控制缓冲间隔时间、buffer_number用来控制缓冲数量:
更多参数细节,可以查看“SDK API说明”文档中关于init的说明。
答:小程序SDK没有主动监测网络变化,当没网状态下,理论上上报请求会失败,此时根据是否开启了enable_cache这个参数(2.14.3版本开始,这个参数默认开启),有如下相应处理:
注意:小程序中的storage是有大小限制的,超出限制时事件会丢掉。
场景举例:
当小程序目前在运行中,此时没有网络,然后突然有网络了,那么后续的行为是正常上报的,而之前已存在storage里面那些,现在是不会去传的,在小程序重新走初始化了才会执行那种去storage里面看看有没有的步骤。
答:可以通过控制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被调用。
答:小程序SDK会匿名到实名切换时(本质是重新设置了user_unique_id)上报app_terminate事件,是SDK的内部处理逻辑。
答:小程序的机制是需要客户项目中实现相应的事件处理函数才会有产生相应的交互能力,SDK这边也才能触发相关的事件上报,具体可以看下小程序平台官方文档中的描述及实现https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onAddToFavorites-Object-object
答:可能原因是onShareAppMessage定义promise了(使用promise进行了异步返回),目前SDK还不支持获取这种异步场景下的分享相关的信息。
答:需要先import引入gio sdk,并对gio sdk初始化完成后,再import引入finder sdk,然后对finder sdk进行初始化(init调用)。
答:默认不会,如果希望自动上报predefine_pageview事件,需要在初始化时开启auto_report参数。
更多关于数据接入的FAQ请参见SDK集成&数据上报。