DTM中基于事件的规则的“条件”部分中的自定义脚本

时间:2014-11-01 11:58:13

标签: javascript jquery html adobe adobe-analytics

我正在尝试在基于事件的规则中使用自定义脚本在动态标记管理中触发标记 请注意,我的目标只是在页面上触发标记,以便我可以利用此脚本在DTM中进一步使用。

请查看我的问题陈述: 在'条件'在“基于事件的规则”部分中,我选择了“事件类型”'点击'点击'。设置'元素标记或选择器'作为' div'。 现在,我可以使用'手动分配属性&属性'这里的选项,例如:设置'属性' as' id'和'价值' as' 12345' (假设是页面上id的值)。 因此,每当用户点击任何带有HTML元素标记的链接时,就会发现' div'拥有财产' id'并且值为' 12345',Omniture标签将触发此点击功能。

我现在想要的是,而不是使用'手动分配属性&属性'选项,我想通过编写脚本来做类似的事情(在规则条件 - >数据 - >海关)。 我在脚本中编写此代码(在取消选中&f 39;手动分配属性和属性'选项后):

$('#12345')。click(function(){return true;});

但这不起作用。

有人可以帮我解决这个问题。我严重陷入其中。

谢谢, 阿迪

1 个答案:

答案 0 :(得分:2)

如果你只想让规则触发id为12345的div的onclick,那么只需将div#12345作为元素标记/选择器字段(它接受一个css路径,用querySelectorAll)。

如果您希望以更“手动”的方式执行此操作,即您只希望click事件是通用的并且使用您自己的逻辑执行100%自定义条件,您必须在元素标记中输入值/ selector字段,因为DTM需要知道要将事件附加到什么内容。所以至少你需要做一些非常顶级的事情,例如: body。你需要做与事件委托相同的原则。

然后在......

规则条件 - >数据 - >海关

..你可以做任何你想做的事情,但它必须返回truefalse

例如,您有以下内容:

$('#12345').click(function() { return true ; });

这不会按预期工作,因为您只是附加一个事件处理程序。基于事件的规则已处理事件,这就是您必须指定事件的原因,即“单击”。所以代码基本上最终会返回一个假值,因为你实际上没有返回任何东西。

相反,你会做这样的事情:

将元素标记/选择器设置为div或顶级级别body,然后在自定义部分中执行以下操作:

if ( $(this).attr('id') == '12345' )
  return true;
else
  return false;

请注意,我使用jQuery语法,因为您在帖子中使用了它; DTM不输出jQuery或内置它,所以你需要确保加载jQuery才能工作。但是获得this

的id属性的“vanilla js”版本很容易

如果您希望能够指定自己的事件处理程序,就像您拥有的那样:

$('#12345').click(function() { return true ; });

然后,您可以做的最好的事情是在javascript /第三方脚本部分的页面加载规则中输出。从那里你可以使闭包调用成为直接调用规则,而不是返回true,例如:

$('#12345').click(function() { _satellite.track('doSomething'); });

然后你制作一个直接调用规则而不是基于事件的规则,对于字符串条件,你可以输入“doSomething”,然后在那里弹出你想要的任何内容。

相关问题