加载站点后向Piwik添加自定义会话参数

Add custom session parameter to Piwik after the site has been loaded

本文关键字:自定义 会话 参数 添加 Piwik 站点 加载      更新时间:2023-09-26

是否有任何经过验证的方法可以在Piwik跟踪代码执行后向当前会话添加自定义会话参数?

目前,我正在使用这个代码:

window._paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);

问题是这段代码不能可靠地工作。我相信这可能是因为Piwik跟踪代码已经被执行并发送到服务器,但我不确定。

来自JavaScript API:

对于异步跟踪,配置和跟踪调用被推送到全局_paq数组中执行,独立于piwik.js的异步加载。格式为:

_paq.push([ 'API_method_name', parameter_list ]);

看来你这边没问题了。

当您谈论不可靠的行为时,刷新页面(只需bash F5)时,您可能会绕过脚本文件的加载,因为它已经被先前的请求缓存。然后对_paq的调用可以是undefined。试着用ctrl+F5看看行为是否改变。

还要注意初始化部分:var _paq = _paq || [];,它定义了先前填充的数组或空数组。把它放在代码前面并没有什么害处,但是你必须注意闭包:

(function(){
    var _paq = _paq || [];
    _paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);
}());

现在你通常会做的是先获取当前跟踪器:

var piwikTracker = Piwik.getTracker(12, 'http://example.com/piwik/');
//piwikTracker.setSiteId(12);
//piwikTracker.setTrackerUrl('http://example.com/piwik/');
piwikTracker.trackEvent('vendor', 'VND001' ,'value');

但我不完全确定是否这是只有与Piwik 2.16.1或更早的版本相关。请随意测试并告诉我^^