Omniture的基本页面跟踪功能st()不是为AJAX实现而设计的.与onclick s.tl()函数不同,它具有s.linkTrackVars和s.linkTrackEvents的一些门控指令,st()函数只是将每个缓存的属性延续到下一个调用以及更远的调用.
我曾经能够使用ClearVars函数来清空所有s对象的属性,但现在我正在使用AppMeasurement并让DTM使用该库的最新版本管理我的实现 - 我想继续这样做 - 我无法调用s对象.我得到了另一个人在这里问到的"ReferenceError:s未定义" !
我尝试在该帖子中遵循Crayon Violent的说明,但我似乎无法找到DTM在Adobe调用之间存储缓存值的位置.这段代码:
window.s = new AppMeasurement();
Run Code Online (Sandbox Code Playgroud)
让我改变/清除s的属性,但这不是我想要的.当我调用下一个AJAX st()函数时,所有缓存的值仍然存在.
根据我使用DTM和AA的经验,DTM的"原生集成"AA的漏洞,警告和解决方法已经无穷无尽.这就是为什么我或多或少地决定我能做的最好的事情就是自己管理lib或者将AA视为第三方脚本(100%通过规则实现它,只是忽略它作为工具可用).
正如我在你回答的链接中提到的那样,window如果你自己管理库,那行代码只能在命名空间中公开AA对象.当您配置DTM来管理库时,它将实例化AA对象本身,它将被隐藏在自己的代码中(老实说,我不知道为什么DTM会这样做,考虑到AA在全局命名空间中放置了许多其他变量DTM没有做任何事情).
AFAIK没有文件记载方法可以参考它,但我发现有一件事似乎对我有用 - 作为免责声明我自己的屁股我没有正式认可:使用风险自负 - 是使用以下内容得到它的参考:
var s = _satellite.getToolsByType('sc')[0].getS();
Run Code Online (Sandbox Code Playgroud)
这使用getToolsByType方法将SiteCatalyst(Adobe Analytics)对象的数组设置为DTM中的工具.它通过循环_satellite.tools并与_satellite.tools[n].settings.engine您传递的内容进行比较来实现此目的getToolsByType.
然后我[0]用来获取数组中的第一个,假设只有一个配置(大多数人只做一个).然后,getS()对象s根据DTM中的设置将对象拉到一起.所以,从那里,你可以用它来做事,包括利用它s.clearVars()
| 归档时间: |
|
| 查看次数: |
2396 次 |
| 最近记录: |