【问题标题】:Event to fire in DTM after async API异步 API 后在 DTM 中触发的事件
【发布时间】:2019-09-16 12:14:26
【问题描述】:

我是 Adob​​e Analytics 和 DTM 的新手。

在我的网站上,异步 API 正在页面上动态创建一个 div。这个 DIV 有一个特殊的 CSS 类,比如说“wantedClass”。

我想创建 2 条规则:

  • DIV 出现在页面上时触发的规则,我喜欢使用 Page Load Rules 如下:

在此触发器上,Adobe Analytics 中会触发 event1

我选择 onLoad 是因为我读到这是其他选项中的最后一个,并且我想确保 API 异步完成创建 DIV,以便触发此事件。

  • 当 DIV 点击时触发的规则,我使用 Event Based Rules 如下:

在此触发器上,event2 被触发。


我测试时发生了什么:

  1. 页面加载,没有触发 event1
  2. DIV 点击,没有触发 event2,但是触发了 event1。

我做错了什么?

任何帮助将不胜感激;

【问题讨论】:

    标签: css tags adobe-analytics tms adobe-dtm


    【解决方案1】:

    1.页面加载,没有触发 event1

    异步调用本质上可能发生在 DOM 就绪或窗口加载 (onLoad) 之后,因此不能保证 onLoad 在进行某些 API(异步)ajax 调用并返回某些内容后触发。

    理想情况下,您应该在 API 的 ajax 成功回调函数中触发某些内容。您可以创建和触发 DTM 可以在 基于事件的规则 中侦听的 自定义事件。注意:如果您走这条路线,请确保您在document.body 或后代上创建/触发; DTM 不会监听document 本身的自定义事件。另外,由于我在屏幕截图中看到您使用 jQuery 语法,如果您走这条路,还要注意 jQuery 自定义事件功能与本机 javascript 自定义事件不同。所以例如如果你做$( document.body ).trigger( "someEvent" ),这不会推送到正在听的东西

    document.body.addEventListener('someEvent', function (e) { /* ... */ }, false);

    DTM 使用上述内容来侦听自定义事件。所以 TL;DR - 如果您打算使用 DTM 的内置自定义事件侦听器,请不要使用 jQuery 语法来创建或广播自定义事件。

    或者,在 API 的 ajax 回调函数中,您只需执行 _satellite.track('dc_rule_value_here'); 并创建一个 直接调用 规则,其中 'dc_rule_value_here' 作为字符串条件。

    如果您无法向 API ajax 回调函数添加某些内容,那么最好的方法是创建一个 Custom Code 类型的 Data Element,其中包含您在您的屏幕截图条件(如果找到 .wantedClass,则返回 true 或 false)。然后,创建一个 Data Element Changed 类型的 Event Based Rule,其条件反映您从数据元素返回的内容。这并不理想,因为这种规则类型的工作原理是在页面查看期间每 1 秒轮询一次数据元素。这在宏伟的计划中并没有什么大不了的,但它不如其他方法有效(如果你 0 习惯于为很多规则执行此操作,那么它可能会成为一个问题)。请注意,您还应该将数据元素烘焙为仅返回一次 true,这样它就不会在找到后每隔 1 秒触发一次 EBR(DTM 没有本机的“仅触发一次”类型配置)。

    2。点击了 DIV,没有触发 event2,但触发了 event1。

    不确定这个。从表面上看,听起来 DTM 规则本身是有效的,但是设置 AA s.events 存在问题。可能是您只是打错字并将event1 放入规则中,尽管我确定您检查过......对吗?

    可能是您有其他代码(例如s.doPlugins 回调中的代码)正在覆盖它。或者可能是完全触发的其他规则,而不是上面的规则。

    如果您提供有关实际设置事件的方式/位置的更多详细信息(包括您可能同时设置这两个事件的其他地方),可能会提供更多帮助,但这听起来有点像我必须在页面上的操作以真正深入了解它的底部:/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-10
      • 2017-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多