如何在使用Adobe Dynamic Tag Manager(DTM)时编写页面级代码?

问题描述:

我正在从静态实现迁移到Adobe DTM。有一些页面级代码,例如s.prop14 = 文章名称。但是现在,当我给出DTM的引用时,页面级代码不会触发,并且在控制台中出现对象“s”未定义的错误。如何在使用Adobe Dynamic Tag Manager(DTM)时编写页面级代码?

这是什么解决方案?

谢谢!

默认情况下,DTM不会在全局(window)范围内放置s对象(或您在配置中指定的任何其他名称空间),并且DTM本身不允许您。您必须更新自己的工具配置才能自己完成工作,顺便说一下,这也意味着您必须自己维护核心库,而不是使用“受Adobe管理的”功能,以避免DTM尝试自动执行。

图书馆管理>代码配置部分,选择自定义,并使用下面自定义代码检查组报告套房。然后,您需要将该库设置为“在DTM中”(单击“打开编辑器”并将其复制/粘贴到那里)或“在URL”(自己托管该文件)。在顶部(无论是在编辑器还是在文件中),您都需要在窗口名称空间下实例化对象。举例AppMeasurement:

window.s = new AppMeasurement();

或者,您可以留下您的设置原样,并改变对网页语法了一下,然后添加一些代码来DTM寻找它。例如,上面你对网页自定义代码,只是做

var s = {}; 
s.prop1 = 'foobar'; 
//etc.. 

然后在DTM中,相同的代码编辑器(或在规则..很多内DTM地方,你可以做到这一点),你可以做例如:

for (var v in window.s) { 
    s[v] = window.s[v]; 
} 
+0

嗨,那里,谢谢你的解决方案。尽管window.s并不适用于我,但我必须创建一个临时变量才能将页面上的对象复制到临时变量,然后在页面加载结束时将temp变量复制回s对象。 – 2015-07-13 04:02:08