pjax CNZZ统计失效解决(小指亲测)
实际上CNZZ自带解决AJAX的方法:虚拟PV跟踪部署。
虚拟PV跟踪部署流程
功能说明
本API用于发送某个URL的PV统计请求,适用于统计AJAX、异步加载页面,友情链接,下载链接的流量。
通过该API发送统计请求的页面,将会像普通受访页面一样被统计,即该页面的PV、UV、访问时长等数据均会记录到全站数据中,并且在访问明细、受访页面等报表中也可以看到该页面的浏览结果数据。
部署前准备
在部署该API之前,需要您:
1)拥有CNZZ统计帐号。
2)在网站上部署了CNZZ统计的JS统计代码。
3)在页面上部署预配置代码。
具体流程可参考代码部署流程。
代码语法
_czc.push([ "_trackPageview",content_url,referer_url]); //本代码仅为语法范例,请勿直接粘贴使用。部署时需要您替换参数值。
content_url:为需要统计PV的页面、弹层指定URL地址。
referer_url:该受访页面的来源页URL地址。
查看API详细说明
使用小工具生成代码
应用举例
1.例如访客下拉页面到最底部时会自动加载更多内容,我们希望将这部分新出现的内容统计为PV,则可以在加载内容完成时调用该API,形式如下:
_czc.push(["_trackPageview","/content/getmore.html"]);
这样就相当于有一个地址为http://www.mysite.com/content/getmore.html的页面被浏览了,这一次浏览的PV会记录到总PV中,并且在“受访页面”功能中也可以看到该页面的浏览情况。
2.再例如页面上给出了下载链接,下载时不打开新页面,如果希望统计下载PV,并且希望知道用户都是从哪些页面下载的软件,则可以在点击下载链接时调用:
_czc.push(["_trackPageview","/download/thunder5.0.exe","http://www.mysite.com/list/"]);
其中'/download/thunder5.0.exe'同上面的例子相同,是下载链接的地址。
不同的是,后面还增加了一段'http://www.mysite.com/list/',表示下载链接所在的母页面地址,如果填写了此项,则这个下载PV的来路页面就会被记录为http://www.mysite.com/list/。此处若不填,则下载PV的来路会按http://www.mysite.com/list/的来路进行统计,如果填写成'',则来路按“直接输入网址或书签”进行统计。
来路十分重要,会在像“页面访问轨迹”这样的功能中帮助您更好的分析下载PV是从哪些地方产生的,所以CNZZ建议您填写,并且按照母页面的URL原样填写。
3、当然,为了便于阅读,URL可以直接用中文填写,例如:
_czc.push(["_trackPageview","/下载迅雷5.0.exe","http://www.mysite.com/list/"]);
则当您查看”受访页面”功能时,该页面的地址就会显示成http://www.mysite.com/下载迅雷5.0.exe
4、如果您要应用_trackPageview改写已有URL,则建议您在页面中CNZZ统计代码之前(且建议您放到</head>之前)先调用_setAutoPageView关闭默认PV的跟踪。
调用语法如下:
<script> _czc.push(["_setAutoPageview",false]); </script>
再调用_trackPageview,改写已有页面URL:
_czc.push(["_trackPageview","/新URL","http://来源页面"]);
查看报告方式
虚拟受访页面的流量会记录到全站流量中,在“趋势分析”功能中显示的浏览次数、独立访客等数据中,都会包括此部分流量。
在“受访页面”、“访问明细”等功能中看到虚拟受访页面的URL及相关统计数据。
在页面访问轨迹中,可以将虚拟受访页面作为“观察焦点页面”,查看虚拟页面的来源页面和去向页面。
注意事项
1、content_url需要填写为以’/’开头的相对路径,支持中文。
2、referer_url需要填写带有域名的完整URL地址,若不填,则虚拟PV的来路会按它母页面的来路进行统计,如果填写成空,则来路按“直接输入网址或书签”进行统计
3、如果您使用_trackPageview改写了已有页面的URL,那么建议您在CNZZ的JS统计代码执行前先调用_setAutoPageview,将该页面的自动PV统计关闭,防止页面的流量被统计双倍。
以上就是CNZZ虚拟PV跟踪部署的教程。
如何解决PJAX的CNZZ统计:
1.首先确定已部署CNZZ统计
2.找到pjax触发的容器,如本站为
<div id="contentleft">...</div>
3.在容器结束之前即</div>之前输入:
<?php if (strpos($_SERVER['REQUEST_URI'],'?_pjax=%23contentleft')!==false): ?> <script> var _czc = _czc || []; _czc.push(["_setAccount", "这里是CNZZ账号"]); _czc.push(["_setAutoPageview",false]); _czc.push([ "_trackPageview",<?php echo '"'.str_replace('?_pjax=%23contentleft','',$_SERVER['REQUEST_URI']).'"'; ?>,<?php echo '"'.$_SERVER['HTTP_REFERER'].'"'; ?>]); </script> <?php endif; ?>
里面的contentleft为pjax触发的容器,根据实际情况修改~
搞定~