背景
我们目前在数据层中有一个标志,当它设置为false
时,Adobe Analytics代码将无法运行。
我们这样做有很多原因,包括我们在产品中或我们捕获的数据中发现任何安全问题。我们将flag
设置为false,它不再从我们的页面中提取Adobe Analytics脚本。
理想情况下,我们试图在DTM中模仿这个确切的功能,而无需批准和发布任何内容。我们只是希望能够在数据库中设置一些内容,并且它可以立即在所有页面上使用,我们不必担心公司的软件升级策略。
那就是说,我在想,因为首先在页面上加载数据元素,我可以从数据层中获取值,然后在{{1}中使用if
语句和_satellite.getVar()
确定s_code
是否已实例化。
这是一个令人沮丧的失败。不仅AppMeasurement
不可用,而且即使只设置_satellite.getVar()
也不起作用。虽然我认为只有if(false)
会实例化s_code
,但显然只是让工具在DTM中处于活动状态意味着可以直接调用AppMeasurement函数。
更熟悉此工具的人是否有任何想法可以让我们根据某种内容更改确定AppMeasurement
是否运行(我们使用数据层,但我对所有建议持开放态度) )在页面上。
非常感谢你的时间, 麦克
答案 0 :(得分:8)
DTM目前没有任何页面加载规则,不输出任何代码,也没有任何方式有条件地抑制调用。
AM本身虽然有一个s.abort
变量,您可以设置为true
,但它会取消下一个s.t
或s.tl
来电。但DTM并没有将var纳入其界面,因此您必须将其放在规则的自定义代码部分中。
更新:重申一点,s.abort
并非全部禁止所有AM来电;它会抑制下一次调用。通话结束后,AM会将s.abort
重置为false
。因此,这对于初始页面加载规则非常有用,但是例如,如果您在页面加载后弹出任何代码(例如退出/下载链接跟踪或您可能拥有的其他一些自定义代码),它将不抑制那。
即使您没有在页面跟踪后进行自定义,也可以在工具配置中指定一个地方,您可以在其中指定下载跟踪和内部/外部链接跟踪,如果您启用了AM本机弹出的内容(基本上) DTM的linkInternalFilters
,trackDownloadLinks
,trackExternalLinks
,linkDownloadFileTypes
和trackInlineStats
的界面。除非通过这些设置保持这些功能,否则没有简单的方法,所以我认为最好的办法是禁用它们并使用基于事件的规则复制它,以便您可以合并{ {1}}进入那里。
要考虑的另一个注意事项:s.abort
会抑制对Adobe的最终请求,但几乎所有导致实际请求的内容都会被执行。最值得注意的是,如果您启用了s.abort
(DTM目前在界面中没有此功能,但没有什么能阻止您启用它并在自定义代码中自行定义) ,它会被执行。这可能会对您在那里的任何逻辑产生影响,特别是那些进行cookie读/写的东西。
例如,让我们说你有一个"参与的访客"在访问者查看了3个页面后设置为弹出的度量标准,您可以通过使用cookie来存储和增加值并读取cookie并在事件达到3时弹出事件来实现此目的,这一切都在您的{{1}中函数(或页面加载规则中的其他位置),doPlugins
将不抑制其中任何一项。