加载站点后,将自定义会话参数添加到 Piwik
Add custom session parameter to Piwik after the site has been loaded
在执行 Piwik 跟踪代码后,是否有任何经过验证的方法可以将自定义会话参数添加到当前会话?
目前,我正在使用此代码:
window._paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);
问题是这段代码不能可靠地工作。我想这可能是因为 Piwik 跟踪代码已经执行并发送到服务器,但我不确定。
对于异步跟踪,配置和跟踪调用被推送到全局 _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 或更早版本相关。随时测试它们并告诉我^^
在执行 Piwik 跟踪代码后,是否有任何经过验证的方法可以将自定义会话参数添加到当前会话?
目前,我正在使用此代码:
window._paq.push(['trackEvent', 'vendor', 'VND001' ,'value']);
问题是这段代码不能可靠地工作。我想这可能是因为 Piwik 跟踪代码已经执行并发送到服务器,但我不确定。
对于异步跟踪,配置和跟踪调用被推送到全局 _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 或更早版本相关。随时测试它们并告诉我^^