2

我有一个项目,其中包含标准的、边界不可读的 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 -->

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

这个项目需要iframe到我们的CMS中,也就是说CMS中的容器页面已经生成了一个pageview。我们希望能够跟踪项目中的点击(例如,点击特定按钮),但是现在,这会导致重复的网页浏览,一个用于 CMS 页面,一个用于 iframe 内的页面。

Adobe 文档说s.t()必须始终在之前调用它,s.tl()但模糊地暗示s.t()可以修改,这样它就不会生成页面浏览量,而是生成一个跟踪链接。

快速谷歌搜索出现了这个几乎难以理解的 Twitter 对话,似乎暗示了作为参数发送的解决方案pev1pev2并且pe=lnk_o. 但这仍然超出了我的理解。

这是真的?那里有任何 Omniture 大师可以帮助我弄清楚我将如何做到这一点?

4

4 回答 4

3

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

于 2012-12-04T22:23:10.870 回答
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发送一个自定义链接,并使用值Custom Link Name填充自定义链接报告。请务必将 rsid 更改为您打算将数据发送到的实际报表包。

s.tl函数的参数如下:

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

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

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

此外,如果您向我提供它说 st() 必须在 s.tl() 之前调用的来源,我很可能会安排更正该问题。

于 2012-12-05T00:32:21.797 回答
0

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

于 2012-12-04T22:03:55.697 回答
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)
}
于 2012-12-04T23:31:51.477 回答