</script>
<script>
var setSite={
siteType:"a20160711xxx",
pageType:"index",
pageName:"首页",
project:"other",
osact:0
if(typeof(pgvMain)=='function')pgvMain();
</script>
[warning] 注意
siteType
要么填写os
要么填写文件夹名称,不要直接复制照搬,必须全小写。
PTT所有埋点如有多个单词拼接,请使用英文中横线(-),禁止所有其他写法例如点(.)、下划线(_)、英文逗号(,)、驼峰式(大小写)等,包括但不限于siteType、pageType、pageName、PTTSendClick、exposure。
一般只需要改的是前三项siteType、pageType、pageName,其中pageType和pageName可以自定义,可参考上面代码中的注释。
[danger] 不要遗漏
不要忘了在加载完PTT组件后,执行if(typeof(pgvMain)=='function')pgvMain();
如果使用PTT上报方式,以下组件由于PTT上报已经集成故不能使用,会冲突:
js/comm/stayTime.min.js 停留时间统计组件
js/comm/pagecount.min.js 停留时间统计组件
js/comm/exposure.min.js 触达率/曝光次数统计组件
关于setSite.project
选填,目的是区分官网类型,在官网体系内是必填项。
例如隶属于官网体系的赛事中心,会有自己的主页、资讯列表页详情页等,这个时候需要细化官网体系,就需要project区分;
按照模块内容,填写固定的对应值;
project值
PC端和移动端用法一样;
在官网模块dom结构上添加exposure-tag="英文名,中文解释"
属性及值;
<div class="news" exposure-tag="英文名,中文解释"></div>
<div class="news" exposure-tag="news,新闻"></div>
官网曝光埋点案例:
<a href="#" onclick="PTTSendClick('btn','start','开始游戏');">开始游戏</a>
<a href="#" onclick="PTTSendClick('btn','share','分享');">分享给朋友</a>
<a href="#" onclick="PTTSendClick('btn','order','预约');">预约</a>
<a href="#" onclick="PTTSendClick('btn','download','下载游戏');">下载游戏</a>
<a href="#" onclick="PTTSendClick('btn','playvideo','播放视频');">播放视频</a>
<a href="javascript:;" id="btnStart">开始游戏</a>
<script src="//ossweb-img.qq.com/images/js/mobile_build/util/zepto.js"></script>
<script>
$("#btnStart").tap(function(){
PTTSendClick('btn','start','开始游戏');
</script>
[info] 提示
直接在dom元素上增加onclick事件,在传递参数的时候,请确保双引号和单引号的嵌套使用正确。
页面中,PTTSendClick传递的第二个参数不能重复,必须是唯一值
如页面为翻屏形式,在每次翻屏结束时的回调函数中执行上报,其中e.nowpage为当前页,e.nextpage为翻屏触达的页
PTTSendClick('page','page' + e.nowpage + 'to' + 'page' + e.nextpage,'翻屏');
H5专题中,如需要统计页面加载流失等,可以将PTT组件前置放在head中,JS脚本执行
PTTSendClick('page','loadstart','开始加载');
在页面加载完成的回调函数中执行
PTTSendClick('page','loadend','加载结束');
[info] 提示
如在脚本中使用到PTTSendClick,比方说统计流失率。
在页面的进入执行PTTSendClick('loading','loadstart','开始加载');
以及加载完成执行PTTSendClick('loading','loadend','加载完成')
进行数据上报时候,需要确保在此之前PTT组件已经加载完成且已经执行过pgvMain
这个函数,不然执行PTTSendClick
会报错。
ADTAG上报
数据上报还有另外一种方式是在链接上加一个参数,用于特定渠道访问量统计。比如链接是http://pvp.qq.com
,那在后面拼接参数ADTAG=专题名称.位置.描述
注:用英文句号.
做分割,最多不可超过4个
最终为:http://pvp.qq.com?ADTAG=a20170505.btn.logo
[info] Tips
如果原链接本来就带参数,比如http://pvp.qq.com/path/page.html?id=123
,加上&
再拼接即可,和平常的url传参方式一样。
最终为:http://pvp.qq.com/path/page.html?id=123&ADTAG=a20170505.btn.logo
虚拟上报分为虚拟域名和虚拟页面
如果一个页面需要区分多种情况,可以构造不同的虚拟URL,这样就可以使用虚拟后的URL查看此页面的数据,
其中virtualURL:虚拟URL,注意不要包含域名,要以"/"开头。
if(typeof(pgvMain) == 'function') pgvMain({virtualURL: "/path/xxx.html"});
适用情形:如果一个页面需要上报数据到另外的域名,可以构造虚拟域名,构造虚拟域名后需在虚拟域名下查看该页面的数据
virtualDomain:虚拟域名,会发送这个域名到点击流服务器
if(typeof(pgvMain) == 'function') pgvMain({virtualDomain: "xxx.qq.com"});
内嵌页面上报(iframe)
如果页面有iframe,且页面和iframe都使用了PTT上报,默认情况下,iframe上报的是父页面的pv,而不是iframe自己url的pv。
如果需要iframe上报自己url的pv,则需要在iframe页面(不是父页面)数据上报初始化时添加配置statIframe: true。
if(typeof(pgvMain) == 'function') pgvMain({statIframe: true});
父页面和iframe页面不同域名的话,则没有影响。
单页面重复上报,无刷新切换
单页面多次上报,适用于单页面的异步请求或者单页面需要多次上报等业务场景;例如微社区的交互,页签的切换不会让整个页面重新加载,而是只请求内容然后插入或者 替换到对应区域。
添加参数说明:repeatApplay:"true"
<script>
setSite={...pageType:"page1"...}
if(typeof(pgvMain) == 'function')pgvMain({repeatApplay: "true"});
function route(N){
setSite={...pageType:"page"+N...};
pgvMain({repeatApplay: "true", virtualURL : path[N] });
...
</script>
其他上报方式
除非项目指定使用以下ping_tcss_ied
上报数据,否则统一使用上面的 PTT统计代码组件
页面PV统计
<script src="//pingjs.qq.com/ping_tcss_ied.js"></script>
<script>if (typeof (pgvMain) == 'function') { pgvMain(); }</script>
<a href="javascript:;" onclick="pgvSendClick({hottag:'a20150825file.index.btn.open'});"></a>
使用ping_tcss_ied
上报时候,虚拟上报和ADTAG使用同PTT统计代码组件。
点击流的上报JS有多个版本,不同项目可能会有不同的要求。
页面中记得不要重复引用多个上报JS,比如引用了ping_tcss_ied.js又引用了ping_tcss_tgideas_https_min.js。