Adobe DTM 和引用对象的时间

Adobe DTM and the timing of referencing an object

我 运行 遇到 DTM 问题和引用 js 对象的时间问题。我注意到,有时 DTM 无法访问 Web 应用程序(ASP.net MVC 框架)创建的 js 对象。 js 对象是在 DTM 加载任何 js 之前创建的,但我开始不得不在几个地方使用 "settimeouts" 以确保我有对象的上下文,但现在这变得越来越难以管理,因为我必须在许多地方这样做。

我想知道是否有人对如何延迟加载 DTM 文件有任何建议,直到我知道我可以访问该对象为止?我有一个 bootstrap 文件,可以加载相应的 DTM 文件。我正在考虑可能将延迟放在 bootstrap 加载程序文件中,但我仍然不喜欢该解决方案,因为我还担心页面的加载时间。想法?

-谢谢!

你是对的。这可能很棘手。本质上是 DTM 页面加载和代码执行之间的竞争。

如果这是您需要在页面加载时控制的内容,一种解决方案是 "abort" 页面加载时的原始 AA 请求,然后,当您的对象存在时,调用将发送的直接调用规则数据。

我可能会尝试这样的事情:

//Page Load Rule - Adobe Analytics Custom Code Section

s.abort = true // cancel the initial image request on page load

//Check for ASP Object 
//Can be done within AA custom code or a custom JS tag

if (MY_OBJ_EXISTS) {

_satellite.track('MY_RULE_TO_SEND_DATA_TO_AA')

}

如果您有 ajax 需要在将数据发送到 AA 之前加载,则可以应用相同的概念。您可以中止初始调用、监听回调并通过直接调用规则发送数据。

希望对您有所帮助。