如何配置缩短Matomo内容印象追踪请求的3秒延迟?
Matomo内容追踪上报3秒延迟调整方案
问题背景
尝试使用Matomo tracking-client实现内容追踪功能,客户端初始化代码如下:
window.matomoAsyncInit = function () { console.log('track start'); try { var contentTracker = Matomo.getTracker('...Host...', '...'); contentTracker.trackAllContentImpressions(); } catch( err ) {} };
功能运行整体正常,但控制台输出track start后,需要等待3秒才会向Matomo服务端发起上报请求,需要确认是否有配置项可以缩短该延迟。
解决方案
这个3秒等待是Matomo JS追踪器的默认行为,设计目的是合并页面初始化阶段产生的多个追踪请求,减少重复请求开销。你可以通过内置配置项自定义这个延迟时长:
- 对应配置方法为
setTrackerRequestQueueInterval(),参数单位为毫秒,默认值为3000,也就是观察到的3秒延迟。 - 配置需要在初始化追踪器实例后、调用追踪方法前执行,调整后的示例代码如下:
window.matomoAsyncInit = function () { console.log('track start'); try { var contentTracker = Matomo.getTracker('...Host...', '...'); // 按需调整间隔数值,示例为设置为500毫秒即0.5秒后发起上报 contentTracker.setTrackerRequestQueueInterval(500); // 如果需要触发追踪后立刻上报,将参数设为0即可 // contentTracker.setTrackerRequestQueueInterval(0); contentTracker.trackAllContentImpressions(); } catch( err ) {} };
注意:不建议将间隔设置得过小(低于100毫秒)。如果页面初始化阶段同时调用了页面浏览、事件、内容等多个追踪接口,过小的间隔会导致请求无法被有效合并,产生大量冗余请求,额外增加客户端和服务端的性能开销。
内容的提问来源于stack exchange,提问作者SeliusX
相关产品推荐
相关产品推荐

