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 之前加载,则可以应用相同的概念。您可以中止初始调用、监听回调并通过直接调用规则发送数据。
希望对您有所帮助。
我 运行 遇到 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 之前加载,则可以应用相同的概念。您可以中止初始调用、监听回调并通过直接调用规则发送数据。
希望对您有所帮助。