在执行Piwik跟踪代码后,有没有经过验证的方法将自定义会话参数添加到当前会话?
目前,我正在使用此代码:
window._paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);
问题是此代码无法可靠地运行。我相信这可能是因为Piwik跟踪代码已经执行并发送到服务器但我不确定。
答案 0 :(得分:0)
对于异步跟踪,配置和跟踪调用将被推送到全局_paq数组以供执行,而与piwik.js的异步加载无关。格式为:
_paq.push([ 'API_method_name', parameter_list ]);
所以这似乎没有问题。
当你谈到不可靠的行为时,当你刷新页面时(简单地猛击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或更早版本相关 。随意测试它们,让我知道^^