【发布时间】:2014-11-21 13:39:56
【问题描述】:
我正在从静态实施迁移到 Adobe DTM。有某些页面级代码,例如 s.prop14=文章名称。但是现在当我给出 DTM 的参考时,页面级别的代码没有触发,并且我在控制台中收到未定义对象“s”的错误。
解决办法是什么?
谢谢!
【问题讨论】:
标签: dynamic tags adobe-analytics
我正在从静态实施迁移到 Adobe DTM。有某些页面级代码,例如 s.prop14=文章名称。但是现在当我给出 DTM 的参考时,页面级别的代码没有触发,并且我在控制台中收到未定义对象“s”的错误。
解决办法是什么?
谢谢!
【问题讨论】:
标签: dynamic tags adobe-analytics
默认情况下,DTM 不会将 s 对象(或您在配置中指定的任何其他命名空间)放在全局 (window) 范围内,并且 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];
}
【讨论】: