自动 SiteCatalyst s_code页内和 DTM 调用

Automatic SiteCatalyst s_code call in-page and by DTM

本文关键字:DTM 调用 code SiteCatalyst 自动      更新时间:2023-09-26


我怀疑在SiteCatalyst s_code中,究竟是什么在页面加载时触发了第一个自动调用。

事实上,我面临着两种不同的场景,让我有点困惑。
通常,s_code库会消失,页面底部代码如下所示:

<!-- SiteCatalyst code version: H.26.0.
Copyright 1996-2011 Adobe, Inc. All Rights Reserved
More info available at http://www.omniture.com -->
<script language="JavaScript" type="text/javascript" src="path_to/s_code.js"></script>
<script language="JavaScript" type="text/javascript">
/* You may give each page an identifying name, server, and channel on the next lines. */
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code)</script>
<script language="JavaScript" type="text/javascript">
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+''!-'+'-')</script><noscript><img src="http://metrics...." height="1" width="1" border="0" alt=""/></noscript><!--/DO NOT REMOVE/-->
<!-- End SiteCatalyst code version: H.26.0. --><br/><br/>

我最终得到了这部分:var s_code=s.t();触发了第一次自动调用(通过 t() 方法),但我想知道为什么需要if(s_code)document.write(s_code)
删除这两个指令将导致停止对页面加载的任何自动调用。

相反,当 DTM 提供s_code时,似乎在没有页底代码的情况下触发了第一次调用,只是通过加载s_code库。
独立s_code和DTM都是H.x版本。

所以我的最后一个问题是:
- 为什么这部分var s_code=s.t();if(s_code)document.write(s_code)需要在页面底部?
- 究竟是什么触发了自动s_code调用?
多谢。

s.t()是构建请求URL的实际"触发器",并且在大多数情况下,也会发出请求。 但是,非常旧的IE版本(实际上没有人再关心了),它无法通过制作img对象来发出请求。 因此,添加了额外的代码来document.write,以迎合那些非常旧的IE版本(实际上没有人再关心了)。

因此,除非您真的仍然想迎合非常旧版本的IE(我们说的是IE1-IE4),否则页面上的代码可以简化为:

<script language="JavaScript" type="text/javascript" src="path_to/s_code.js"></script>
<script language="JavaScript" type="text/javascript">
/* custom vars here */
/* end custom vars */
s.t();
</script>

另一方面,使用 DTM,您有"顶部"代码,即脚本包含,然后是"底部"代码,即_satellite.pageBottom()调用。

然后,当您将 Adobe Analytics 作为工具实施时(无论您是将 DTM 配置为自动处理库,还是希望自己将库代码放在代码框中,还是将其托管在您自己的位置),DTM 都会自行进行s.t()调用。

DTM 实际进行s.t()调用的时间取决于您是将其配置为在页面顶部还是页面底部触发。