Adobe DTM 从 Class 捕获 ID

Adobe DTM Capturing ID from Class

我是 Adob​​e DTM 的新手,请多多关照!我想要做的是让数据元素保存 class "b1".

的单击按钮的 ID 值
<button type="button" class="b1" id="value 1">button 1</button>
<button type="button" class="b1" id="value 2">button 2</button>
  1. 我的数据元素不需要任何初始值,应该如何设置?
  2. 如何构造事件规则以捕获单击按钮的值?

我知道我必须在条件中将 tag/selector 设置为 .b1,事件类型为 "click" 但我如何获取单击按钮的 "ID" 值并分配给数据元素。

谢谢, 比尔

示例...

创建一个基于事件的规则,任意命名。

条件内,对于事件类型 select "click".

对于 元素标记或选择器 放置 "button.b1"(无引号)。这基本上等同于 css(或例如 jQuery)select 或者您将用于定位具有 class "b1".[= 的按钮元素25=]

注意:您可能需要也可能不需要勾选 Apply event handler directly to element 选项,具体取决于您的站点设置以及所有已经与元素挂钩的东西。

现在,在 Rule Conditions Criteria 下,选择 "Data > Custom" 并单击 "Add Criteria" 按钮,然后将显示 Custom 代码框部分。

在该代码框中,输入以下内容:

var id=this.id||'';
_satellite.setVar('b1_button_id',id);
return true;

所以它的工作方式是在一个条件下,this 应该是对被单击的按钮的引用。因此,我们将其与 DTM 的 _satellite.setVar() 方法一起使用,将名为 "b1_button_id" 的数据元素设置为按钮的 id 属性的值。然后我们returntrue保证条件永远为真,这样这个条件就不会阻止规则的触发。

从那里开始,在规则的任何部分中,您可以使用 %b1_button_id% 语法(例如在通过 DTM 设置 var 的表单字段之一中)引用数据元素,或者您可以使用_satellite.getVar('b1_button_id') 在规则的任何自定义代码块中。

注意:使用 .setVar() 方法即时创建的 数据元素仅在正在评估的规则的 duration/scope 中保留。 DTM 没有正式记录的方法来创建或更新持久数据元素或设置您可以从实际 Rules > Data Elements 部分获得的任何其他功能,但 取决于关于你想做什么。

另一个注意事项:您没有具体提到对此的需求,但由于它可能是下一步可能会出现的..如前所述,在条件,this 是对事件元素的引用(在本例中为 "click" 事件)。如果出于某种原因您需要在 Javascript / Third Pary Tags 部分的代码框中引用 this,请注意 this 将保留在context 如果你 NOT 检查 Execute Globally 选项,但是如果你 DO 检查那个选项,那么this 将不再是对事件元素的引用。

如果您需要引用 this 并且需要全局执行代码,那么您可以按照上述说明创建数据元素,除了仅使用 this 作为值,例如

_satellite.setVar("this_reference",this)

然后,在代码块中,您可以使用 _satellite.getVar("this_reference") 来获取它。