通过生成综合浏览量来抑制Omniture s.t()调用

时间:2012-12-04 21:51:00

标签: javascript adobe-analytics

我的项目中包含标准的,边界不可读的Omniture JavaScript跟踪代码。

<script language="JavaScript">
    var s_account = "{MY ACCOUNT}";
</script>
<!-- START OMNITURE -->
<!-- SiteCatalyst code version: H.1.
Copyright 1997-2005 Omniture, Inc. More info available at
http://www.omniture.com -->
<script type="text/javascript" src="http://MYDOMAIN.com/javascripts/metrics/s_code_trb.js"></script>
<script language="JavaScript">

    s.pageName="Project name"   
    s.server="MYDOMAIN.com" 
    s.prop38="3rd Party";
    s.eVar21="3rd Party";    


/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code) 
</script>
<!--/DO NOT REMOVE/-->
<!-- End SiteCatalyst code version: H.1. -->
<!-- END Omniture code -->

但是,此代码始终生成综合浏览量。

此项目需要在我们的CMS中进行,这意味着CMS中的容器页面已经生成了综合浏览量。我们希望能够跟踪项目中的点击次数(例如点击特定按钮),但现在,这会导致重复的综合浏览量,一个用于CMS页面,另一个用于iframe中的页面。

Adob​​e文档说s.t()必须始终在s.tl()之前调用s.t(),但隐约暗示可以修改pev1,以便生成跟踪链接而不是生成综合浏览量。

快速Google搜索显示了almost incomprehensible Twitter conversation这似乎暗示了作为参数pev2pe=lnk_o和{{1}}发送的解决方案。但这仍然超出了我的理解范围。

这是真的吗?任何Omniture大师都可以帮我弄清楚我会怎么做?

4 个答案:

答案 0 :(得分:3)

在调用s.tl()之前,不需要调用s.t()。加载s_code.js文件,然后调用st()函数将生成一个页面视图,如您所见,但您可以轻松加载s_code.js文件,只从链接中的onclicks调用s.tl()需要跟踪。

答案 1 :(得分:1)

如果您只想跟踪自定义链接,并且从不跟踪网页浏览量,请删除整个代码块,但调用s_code.js文件除外。然后在要跟踪的链接中,使用此骨架:

<a href="link.html" onClick="
    var s=s_gi('rsid');
    s.tl(this,'o','Custom Link Name');">
Click this link</a>

在上面的示例中,它将向报表包 rsid 发送自定义链接,并使用值自定义链接名称填充自定义链接报表。请务必将rsid更改为您要将数据发送到的实际报表包。

s.tl函数的参数如下:

  • 第一个参数:保存 true 的值。 在继续之前给页面延迟500ms,因此图像请求有机会触发,而 true 禁用500ms延迟。
  • 第二个参数:可以是'd''e''o'。它们分别用于下载链接,退出链接或自定义链接。
  • 第三个参数:您希望在报告中填充的值,通常是他们点击的链接的说明。

您可以定义几个其他变量来启用道具,eVar和事件的跟踪。如果您可以访问SiteCatalyst,则所有这些内容都包含在链接跟踪白皮书中:

http://microsite.omniture.com/t2/help/en_US/whitepapers/link_tracking/index.html

另外,如果你向我提供s.t()必须在s.tl()之前调用的地方的来源,我很可能会做出安排来纠正。

答案 2 :(得分:0)

如果您使用的是iframe并且您在同一个域中,则可以让iframe doc调用父文档上的javascript函数,这样就不需要再次初始化omniture。我已经使用Backbone应用程序完成了此操作,如果在同一域中的页面中进行了操作。

答案 3 :(得分:0)

好吧,我不知道你的系统是如何设置的,但是你可以测试你以前的页面名称和当前页面名称。我假设父页面和通过iframe引入的页面具有相同的pageName - 否则它们是两个单独的页面......等等......如果没有,你可以修改它..

围绕该代码,您可以执行类似的操作。

s.prevPage=s.getPreviousValue(s.pageName,'gpv1','');
var s_code=s.t();
if(s.prevPage != s.pageName){
    if(s_code)document.write(s_code)
}