1、先决条件:使用新版本的JavaScript跟踪代码
2、JavaScript跟踪代码的功能
(1)自定义在Piwik中显示的页面名称
(2)手动触发目标转化
(3)考虑一个主机的“别名”,不将这个域名的链接记录为“出站链接”
(4)禁用下载及出站链接跟踪
(5)禁用特定CSS类的下载及出站链接跟踪
(6)禁用特定链接上的下载及出站链接跟踪
(7)将一个链接的点击在Piwik中强制记录为下载
(8)将一个链接的点击在Piwik中强制记录出站链接
(9)修改暂停定时器
(10)修改跟踪为“下载”的文件扩展名列表
3、其他函数
(1)自定义发送到Piwik.php跟踪脚本的JASON数据
(2)多个Piwik跟踪代码
(3)异步跟踪
(4)覆盖Piwik.js的单元测试
4、跟踪API可用的所有方法列表
5、相关文档
Piwik配备了相当强大的JavaScript跟踪API。高级用户能使用Piwik跟踪代码定制一些网站分析数据记录在Piwik中的方式。插件开发者也能向Piwik跟踪脚本发送定制化的JSON数据,并且在插件中使用这些数据。
1、先决条件:使用新版本的JavaScript跟踪代码
基本的Piwik跟踪代码如下:
<!– Piwik –>
<script type=”text/javascript”>
var pkBaseURL = ((“https:” == document.location.protocol) ? “https://{$PIWIK_URL}”
: “http://{$PIWIK_URL}”);
document.write(unescape(“%3Cscript src=’” + pkBaseURL + “piwik.js’ type=’text/javascript’%3E%3C/script%3E”));
</script><script type=”text/javascript”>
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + “piwik.php”, {$IDSITE});
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script>
<!– End Piwik Tag –>
在Piwik跟踪代码中,{$PIWIK_URL}将被替换为你的Piwik
URL,{$IDSITE}将被替换为你在Piwik中跟踪的网站ID。
如果你的Piwik跟踪代码不是这样的,那么,你可能正在使用过时的旧版本。旧版本仍将按期望工作,继续跟踪你的访问者。但是,为了使用这个页面中所介绍的所有功能,你将需要使用新版本的跟踪代码。请访问你的Piwik管理部分,请求给定网站的JavaScript代码,并且将你的页面更新为新的代码。
2、JavaScript跟踪代码的功能
(1)定制Piwik中显示的页面名称
默认情况下,Piwik在Piwik界面中使用当前页面的URL作为页面的名称。如果您的URL很复杂,或者如果你想要定制Piwik跟踪页面的方式,你能在JavaScript标签中指定页面名称。
常用的方法是使用HTML标题的值:
[...]
piwikTracker.setDocumentTitle(document.title);
piwikTracker.trackPageView();
[...]
高级用户也能动态产生页面名称,例如在PHP中:
[...]
piwikTracker.setDocumentTitle("<?php
echo $myPageTitle; ?>");
piwikTracker.trackPageView();
[...]
(2)手动触发目标转化
默认情况下,目标在Piwik被定义为部分URL的“匹配”(开始、包含或正则式匹配)。你也能默认将特定页面查看、下载或出站链接跟踪为目标。
在一些情况下,你想要将其他类型的动作登记为转化,例如:
•访问者提交一个表单:
•访问者在页面上停留超过给定时间
•访问者与你的Flash应用程序进行了一些交互
•用户提交了购物车并完成了支付:你能将Piwik跟踪代码提供给支付网站,这个网站将在稍后在你的Piwik数据库中登记这个转化以及自定义的收入。
•等等
使用Piwik JavaScript跟踪手动触发一个目标,你可以简单的这样做:
[...]
piwikTracker.trackGoal(1);
// 记录目标1的一次转化
[...]
你也能为这个目标记录自定义收入,例如,你可以生成对跟踪目标的动态调用,以便设置这笔交易的收入:
[...]
piwikTracker.trackGoal(1,
<?php echo $cart->getCartValue(); ?>); // 记录设置了自定义收入的目标1的一次转化
[...]
目标跟踪的更多信息见跟踪目标文档。
(3)考虑一个主机的“别名”,不将这个域名的链接记录为“出站链接”
默认情况下,所有域名不是当前域名的连接都被认为是出站链接。如果你有多个域名,不希望将指向这些网站的链接被认为是“出站链接”,那么你可以在一个域名数组中指定。如果你想要忽略特定域的二级域的所有点击,那么可以使用通配符。
[...]
piwikTracker.setDomains(["*.hostname1.com",
"hostname2.com"]); // 至少目前跟踪的网站应添加到这个数组中
piwikTracker.trackPageView();
[...]
(4)禁用下载及出站链接跟踪
Piwik跟踪代码默认启用点击和下载跟踪。禁用所有自动下载和出站链接跟踪,你必须去掉对enableLinkTracking()函数的调用:
[...]
//
我们注释掉启用链接跟踪的函数
// piwikTracker.enableLinkTracking();
piwikTracker.trackPageView();
[...]
(5)禁用特定CSS类的下载及出站链接跟踪
你能禁用对特定CSS类的下载及出站链接的自动跟踪
[...]
piwikTracker.setIgnoreClasses(
"no-tracking" ); // 你也能传递一个字符串数组
piwikTracker.trackPageView();
[...]
这将导致链接<a href=’http://example.com’ class=’no-tracking’>Test</a>的点击不被计算。
(6)禁用特定链接的下载或出站链接的跟踪
如果你想要一直忽略特定链接的下载或出站链接跟踪,你能为它添加“piwik_ignore”CSS类:
<a href=’latest.zip’class=’piwik_ignore’>不想跟踪为下载的文件</a>
(7)将一个链接的点击在Piwik中强制记录为下载
如果你想让Piwik将一个给定链接考虑为下载,那么,你可以为这个链接添加“piwik_download”CSS类:
<a
href='last.php'class='piwik_download'>我想要跟踪为下载的链接</a>
注:你可以自定义和重命名用于强制被记录为下载的点击的CSS类:
[...]
//
现在所有“download”CSS类的链接将为记录为下载
piwikTracker.setDownloadClasses( "download" ); //你也可以传递一个字符串数组
piwikTracker.trackPageView();
[...]
(8)将一个链接的点击在Piwik中强制记录出站链接
如果你想让Piwik将一个给定的链接考虑为出站链接(指向当前域或一个别名域的链接),那么,你可以为这个链接添加“piwik_link”CSS类:
<a
href='http://mysite.com/partner/'class='piwik_link'>我想要跟踪为出站链接的链接</a>
注:你可以自定义和重命名用于强制被记录为出站链接的点击的CSS类:
[...]
//现在所有“external”CSS类的链接上的点击将被计算为出站链接
piwikTracker.setLinkClasses( "external" ); //你也可以传递一个字符串数组
piwikTracker.trackPageView();
[...]
(9)修改暂停定时器
当访问者点击文件下载,或点击出站链接时,Piwik将记录它。为了这样做,Piwik在重定向用户到请求的文件或链接之前添加了一小段延迟。我们使用的默认值是500ms,但是你可以将它设置为更短的时间。但是,需要注意的是,这样做会带来由于这段时间过短而使Piwik无法记录数据的风险。
[...]
piwikTracker.setLinkTrackingTimer(
250 ); // 250 毫秒
piwikTracker.trackPageView();
[...]
(10)修改跟踪为“下载”的文件扩展名列表
默认情况下,任何以下列这些文件扩展名之一结尾的文件在Piwik界面中都会被认为是“下载”:
7z|aac|arc|arj|asf|asx|avi|bin|csv|doc|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd||xls|xml|z|zip
为了替换你想要跟踪为文件下载的扩展名列表,你可以:
[...]
piwikTracker.setDownloadExtensions(
"jpg|png|gif" ); //我们现在只跟踪图片上的点击
piwikTracker.trackPageView();
[...]
如果你想跟踪新的文件名类型,你可以仅将它添加到这个列表中:
[...]
//点击以mp5或mp6结尾的URL将被计算为下载
piwikTracker.addDownloadExtensions( "mp5|mp6" );
piwikTracker.trackPageView();
[...]
3、其他函数
(1)向piwik.php跟踪脚本发送自定义JSON数据(插件开发者)
例如,向一个(虚构的)跟踪插件发送用户ID数据:
[...]
var
user = { 'userId' : user_id };
piwikTracker.setCustomData( user );
piwikTracker.trackPageView();
[...]
在trackLink方法中,你也可以为特定点击发送自定义数据。例如,发送交易数据供虚构的电子商务跟踪插件使用。
[...]
var
trans = { 'orderId' : order_id,
'storeId' : store_id,
'total' : total,
'city' : city,
'state' : state,
'country' : country,
'skus' : 'A;B;C',
'units' : '1;2;1'
};
piwikTracker.trackLink( '/store', 'addTransaction', trans );
[...]
所有的自定义数据能被设置为JASON对象。Piwik代码将自动编码JASON对象并且构建为一个字符串版本,随后你可以在php段使用json_decode()解码。我们使用json.org上的开源JSON工具。
注:目前,自定义数据不会记录在Piwik数据库中。插件使用的自定义数据必须在自己的表中存储数据,然后进行归档。如果你需要别人帮忙构建这样的功能,请在piwik-hacker的邮箱列表中询问你的问题(更多信息)。
(2)多个Piwik跟踪器
可以使用指向相同或不同Piwik服务器的多个Piwik跟踪器跟踪同一个页面。为了减少加载时间,你可以加载piwik.js一次。每一次调用Piwik.getTracker()都返回惟一Piwik跟踪器对象(事例),这些跟踪对象可以进行配置。
调用getTracker的第一个参数
<script
type="text/javascript">
try {
var piwikTracker = Piwik.getTracker("http://URL_1/piwik.php",
1);
piwikTracker.trackPageView();
var piwik2 = Piwik.getTracker("http://URL_2/piwik.php",
4);
piwik2.trackPageView();
} catch( err ) {}
</script>
注意你也可以手动设置网站ID和piwik跟踪器URL,而不是在getTracker调用中设置它们:
//我们替换Piwik.getTracker("http://example.com/piwik/",
12)
var piwikTracker = Piwik.getTracker();
piwikTracker.setSiteId( 12 );
piwikTracker.setTrackerUrl( "http://example.com/piwik/"
);
piwikTracker.trackPageView();
(3)异步跟踪
Piwik JavaScript跟踪API也支持异步跟踪,以便页面加载(或看起来加载)的更快。配置和跟踪调用被推送到_paq数组进行执行,与piwik.js加载异步。其形式为:
_paq.push([
'API_method_name', parameter_list ]);
异步Piwik跟踪代码应插入到<head>标签中,形式如下:
<!--
Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
(function(){
var u=(("https:" == document.location.protocol) ? "https://{$PIWIK_URL}"
: "http://{$PIWIK_URL}");
_paq.push(['setSiteId', {$IDSITE}]);
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['trackPageView']);
var d=document,
g=d.createElement('script'),
s=d.getElementsByTagName('script')[0];
g.type='text/javascript';
g.defer=true;
g.async=true;
g.src=u+'piwik.js';
s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Tag -->
(为了清晰,以上代码段没有压缩。)
(4)覆盖Piwik.js的单元测试
Piwik JavaScript跟踪API由广泛JavaScript单元测试控件来确保代码的质量尽可能高,我们永远不会破坏这种功能。测试使用QUnit-jQuery单元测试执行器写的。运行这些测试,只需要检查Piwik的SVN端口汇合,进入/path/to/piwik/tests/javascript/。测试在你的浏览器中进行。
Piwik JavaScript API经过许多web浏览器的测试:包括(但不限于)火狐2、3.0、3.1;IE 5.5、6、7、8;Opera 7.54、8.54、9.64、10;Safari 3.0、3.2、4.0;Konqueror 3.5;SeaMonkey 1.1、2.0。我们有时使用browsershots.org来帮助测试。
(5)压缩piwik.js
Piwik.js被压缩为你的网站访问者将要下载的最小尺寸。我们使用YUI压缩器在压缩JavaScript(了解更多)。你可以在/js/piwik.js找到原始的未经压缩的版本。
4、跟踪API可用的所有方法列表
从Piwik类请求跟踪器实例
•Piwik.getTracker( trackerUrl, siteId )——获得跟踪器的新实例
•[Google Analytics等价物] _getTracker(account)
•[Yahoo! Analytics等价物] getTracker(account)
使用跟踪器对象
•enableLinkTracking()——在所有可以应用的链接元素上安装链接跟踪
•addListener(element)——为特定链接元素添加链接监听器。当点击时,Piwik将自动记录点击。
•setRequestMethod(method)——将请求方法设置为“GET”或“POST”(默认是“GET”)。使用POST请求方法,Piwik的主机必须与跟踪网站的主机相同(Piwik安装在与跟踪网站相同的域上)。
•trackGoal( idGoal, [customRevenue], [customData])——手动记录idGoal目标的一个转化,如果指定了的话,传递customRevenue和customData
•trackLink( url, linkType, [customData] )——手动记录来自你自己代码的一次点击。url是点击的URL。linkType可以是“link”出站链接也可以是“download”下载。
•trackPageView([customTitle], [customData])——记录这个页面的访问
•[Google Analytics等价物] _trackPageview(opt_pageURL)
•[Yahoo! Analytics等价物] submit()
跟踪器对象的设置
•setDocumentTitle( string )——重写文档标题
•[Yahoo! Analytics 等价物] YWATracker.setDocumentName(“xxx”)
•setDomains( array)——设置当做本地处理的主机名或域名数组
•[Google Analytics 等价物] _setDomainName(“.example.com”)
•[Yahoo! Analytics equivalent] setDomains(“*.abc.net”)
•setCustomData( object|string )——向服务器传递自定义数据
•setCustomUrl( string )——重写页面报告的URL
•setReferrerUrl( string )——重写检测到的Http-Referer
•setSiteId( integer )——指定网站的ID。多余的:能在getTracker()构造函数中指定。
•setTrackerUrl( string )——指定Piwik服务器URL。多余的:能在getTracker()构造函数中指定。
•setDownloadClasses( string | array )——设置处理为下载(除了piwik_download以外)的类。
•setDownloadExtensions( string )——设置识别为下载的文件扩展名列表。例如:“doc|pdf|txt”。
•addDownloadExtensions( string )——指定更多的识别为下载的文件扩展名。;例如:“doc|pdf|txt”。
•setIgnoreClasses( string | array )——设置如果出现在链接中将被忽略的类(除了piwik_ignore以外)
•setLinkClasses( string | array )——设置被处理为出站链接的类(除了piwik_link以外)
•setLinkTrackingTimer( integer )——设置链接跟踪的延迟,以毫秒为单位。
来自:http://www.cloga.info
分享到:
相关推荐
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
MMC整流器技术解析:基于Matlab的双闭环控制策略与环流抑制性能研究,Matlab下的MMC整流器技术文档:18个子模块,双闭环控制稳定直流电压,环流抑制与最近电平逼近调制,优化桥臂电流波形,高效并网运行。,MMC整流器(Matlab),技术文档 1.MMC工作在整流侧,子模块个数N=18,直流侧电压Udc=25.2kV,交流侧电压6.6kV 2.控制器采用双闭环控制,外环控制直流电压,采用PI调节器,电流内环采用PI+前馈解耦; 3.环流抑制采用PI控制,能够抑制环流二倍频分量; 4.采用最近电平逼近调制(NLM), 5.均压排序:电容电压排序采用冒泡排序,判断桥臂电流方向确定投入切除; 结果: 1.输出的直流电压能够稳定在25.2kV; 2.有功功率,无功功率稳态时波形稳定,有功功率为3.2MW,无功稳定在0Var; 3.网侧电压电流波形均为对称的三相电压和三相电流波形,网侧电流THD=1.47%<2%,符合并网要求; 4.环流抑制后桥臂电流的波形得到改善,桥臂电流THD由9.57%降至1.93%,环流波形也可以看到得到抑制; 5.电容电压能够稳定变化 ,工作点关键词:MMC
Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构的Simulink建模与MPPT最大功率点追踪:基于功率反馈的扰动观察法调整电压方向研究,Boost二级升压光伏并网结构,Simulink建模,MPPT最大功率点追踪,扰动观察法采用功率反馈方式,若ΔP>0,说明电压调整的方向正确,可以继续按原方向进行“干扰”;若ΔP<0,说明电压调整的方向错误,需要对“干扰”的方向进行改变。 ,Boost升压;光伏并网结构;Simulink建模;MPPT最大功率点追踪;扰动观察法;功率反馈;电压调整方向。,光伏并网结构中Boost升压MPPT控制策略的Simulink建模与功率反馈扰动观察法
STM32F103C8T6 USB寄存器开发详解(12)-键盘设备
科技活动人员数专指直接从事科技活动以及专门从事科技活动管理和为科技活动提供直接服务的人员数量
Matlab Simulink仿真探究Flyback反激式开关电源性能表现与优化策略,Matlab Simulink仿真探究Flyback反激式开关电源的工作机制,Matlab Simulimk仿真,Flyback反激式开关电源仿真 ,Matlab; Simulink仿真; Flyback反激式; 开关电源仿真,Matlab Simulink在Flyback反激式开关电源仿真中的应用
基于Comsol的埋地电缆电磁加热计算模型:深度解析温度场与电磁场分布学习资料与服务,COMSOL埋地电缆电磁加热计算模型:温度场与电磁场分布的解析与学习资源,comsol 埋地电缆电磁加热计算模型,可以得到埋地电缆温度场及电磁场分布,提供学习资料和服务, ,comsol;埋地电缆电磁加热计算模型;温度场分布;电磁场分布;学习资料;服务,Comsol埋地电缆电磁加热模型:温度场与电磁场分布学习资料及服务
1、文件内容:ibus-table-chinese-yong-1.4.6-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/ibus-table-chinese-yong-1.4.6-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、更多资源/技术支持:公众号禅静编程坊
基于51单片机protues仿真的汽车智能灯光控制系统设计(仿真图、源代码) 一、设计项目 根据本次设计的要求,设计出一款基于51单片机的自动切换远近光灯的设计。 技术条件与说明: 1. 设计硬件部分,中央处理器采用了STC89C51RC单片机; 2. 使用两个灯珠代表远近光灯,感光部分采用了光敏电阻,因为光敏电阻输出的是电压模拟信号,单片机不能直接处理模拟信号,所以经过ADC0832进行转化成数字信号; 3. 显示部分采用了LCD1602液晶,还增加按键部分电路,可以选择手自动切换远近光灯; 4. 用超声模块进行检测距离;
altermanager的企业微信告警服务
MyAgent测试版本在线下载
Comsol技术:可调BIC应用的二氧化钒VO2材料探索,Comsol模拟二氧化钒VO2的可调BIC特性研究,Comsol二氧化钒VO2可调BIC。 ,Comsol; 二氧化钒VO2; 可调BIC,Comsol二氧化钒VO2材料:可调BIC技术的关键应用
C++学生成绩管理系统源码
基于Matlab与Cplex的激励型需求响应模式:负荷转移与电价响应的差异化目标函数解析,基于Matlab与CPLEX的激励型需求响应负荷转移策略探索,激励型需求响应 matlab +cplex 激励型需求响应采用激励型需求响应方式对负荷进行转移,和电价响应模式不同,具体的目标函数如下 ,激励型需求响应; matlab + cplex; 负荷转移; 目标函数。,Matlab与Cplex结合的激励型需求响应模型及其负荷转移策略
scratch介绍(scratch说明).zip
内容概要:本文全面介绍了深度学习模型的概念、工作机制和发展历程,详细探讨了神经网络的构建和训练过程,包括反向传播算法和梯度下降方法。文中还列举了深度学习在图像识别、自然语言处理、医疗和金融等多个领域的应用实例,并讨论了当前面临的挑战,如数据依赖、计算资源需求、可解释性和对抗攻击等问题。最后,文章展望了未来的发展趋势,如与量子计算和区块链的融合,以及在更多领域的应用前景。 适合人群:对该领域有兴趣的技术人员、研究人员和学者,尤其适合那些希望深入了解深度学习原理和技术细节的读者。 使用场景及目标:①理解深度学习模型的基本原理和结构;②了解深度学习模型的具体应用案例;③掌握应对当前技术挑战的方向。 阅读建议:文章内容详尽丰富,读者应在阅读过程中注意理解各个关键技术的概念和原理,尤其是神经网络的构成及训练过程。同时也建议对比不同模型的特点及其在具体应用中的表现。
该文档提供了一个关于供应链管理系统开发的详细指南,重点介绍了项目安排、技术实现和框架搭建的相关内容。 文档分为以下几个关键部分: 项目安排:主要步骤包括搭建框架(1天),基础数据模块和权限管理(4天),以及应收应付和销售管理(5天)。 供应链概念:供应链系统的核心流程是通过采购商品放入仓库,并在销售时从仓库提取商品,涉及三个主要订单:采购订单、销售订单和调拨订单。 大数据的应用:介绍了数据挖掘、ETL(数据抽取)和BI(商业智能)在供应链管理中的应用。 技术实现:讲述了DAO(数据访问对象)的重用、服务层的重用、以及前端JS的继承机制、jQuery插件开发等技术细节。 系统框架搭建:包括Maven环境的配置、Web工程的创建、持久化类和映射文件的编写,以及Spring配置文件的实现。 DAO的需求和功能:供应链管理系统的各个模块都涉及分页查询、条件查询、删除、增加、修改操作等需求。 泛型的应用:通过示例说明了在Java语言中如何使用泛型来实现模块化和可扩展性。 文档非常技术导向,适合开发人员参考,用于构建供应链管理系统的架构和功能模块。
这份长达104页的手册由清华大学新闻与传播学院新媒体研究中心元宇宙文化实验室的余梦珑博士后及其团队精心编撰,内容详尽,覆盖了从基础概念、技术原理到实战案例的全方位指导。它不仅适合初学者快速了解DeepSeek的基本操作,也为有经验的用户提供了高级技巧和优化策略。
主题说明: 1、将mxtheme目录放置根目录 | 将mxpro目录放置template文件夹中 2、苹果cms后台-系统-网站参数配置-网站模板-选择mxpro 模板目录填写html 3、网站模板选择好之后一定要先访问前台,然后再进入后台设置 4、主题后台地址: MXTU MAX图图主题,/admin.php/admin/mxpro/mxproset admin.php改成你登录后台的xxx.php 5、首页幻灯片设置视频推荐9,自行后台设置 6、追剧周表在视频数据中,节目周期添加周一至周日自行添加,格式:一,二,三,四,五,六,日
运行GUI版本,可二开